zjj
7 天以前 85e327943d8a241c80a5d9f59c430e2fea955055
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -44,7 +44,7 @@
     * @param userId
     * @return
     * @author Ryan
     * @description 组拖
     * @description 组托
     * @time 2025/3/29 14:42
     */
    @Override
@@ -61,13 +61,13 @@
                .notIn(WaitPakin::getIoStatus, asList)
                .eq(WaitPakin::getBarcode, waitPakin.getBarcode()));
        if (!Objects.isNull(list)) {
            throw new CoolException("拖盘码:" + waitPakin.getBarcode() + "已被组拖单:" + list.getCode() + "使用!!");
            throw new CoolException("托盘码:" + waitPakin.getBarcode() + "已被组托单:" + list.getCode() + "使用!!");
        }
        List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, waitPakin.getBarcode()));
        if (!locs.isEmpty()) {
            List<String> locCodes = locs.stream().map(Loc::getCode).collect(Collectors.toList());
            String join = StringUtils.join(locCodes, ",");
            throw new CoolException("拖盘码:" + waitPakin.getBarcode() + "已被库位:" + join + "使用!!");
            throw new CoolException("托盘码:" + waitPakin.getBarcode() + "已被库位:" + join + "使用!!");
        }
        double sum = waitPakin.getItems().stream().mapToDouble(PakinItem::getReceiptQty).sum();
@@ -139,7 +139,7 @@
                for (PakinItem waitPakinItem : waitPakin.getItems()) {
                    if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) {
                        if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) >= 0) {
                            throw new CoolException("组拖数量不能大于收货数量!!");
                            throw new CoolException("组托数量不能大于收货数量!!");
                        }
                        pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode());
                    }
@@ -151,6 +151,7 @@
                    .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, unit, stock_unit, work_qty, matnr_code, matnr_id, maktx")
                    .lambda()
                    .in(WarehouseAreasItem::getTrackCode, tracks)
                    .eq(StringUtils.isNotBlank(waitPakin.getBatch()),  WarehouseAreasItem::getSplrBatch, waitPakin.getBatch())
                    .groupBy(WarehouseAreasItem::getSplrBatch,
                            WarehouseAreasItem::getTrackCode);
            List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper);
@@ -181,7 +182,7 @@
                for (PakinItem waitPakinItem : waitPakin.getItems()) {
                    if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) {
                        if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) {
                            throw new CoolException("组拖数量不能大于收货数量且不能小于零!!");
                            throw new CoolException("组托数量不能大于收货数量且不能小于零!!");
                        }
                        pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode());
                    }
@@ -194,7 +195,7 @@
        double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum();
        if (!waitPakinItemService.saveBatch(items)) {
            throw new CoolException("组拖明细保存失败!!");
            throw new CoolException("组托明细保存失败!!");
        }
        for (WaitPakinItem pakinItem : items) {
@@ -217,17 +218,17 @@
        waitPakin1.setAnfme(sum1);
        if (!this.updateById(waitPakin1)) {
            throw new CoolException("组拖数量修改失败!!");
            throw new CoolException("组托数量修改失败!!");
        }
        //TODO 组拖完成后,扣减收货区库存
        //TODO 组托完成后,扣减收货区库存
        return pakin;
    }
    /**
     * @author Ryan
     * @description 组拖解绑
     * @description 组托解绑
     * @param
     * @return
     * @time 2025/3/29 14:42
@@ -239,7 +240,7 @@
        if (StringUtils.isNotBlank(barcode)) {
            WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode), false);
            if (Objects.isNull(waitPakins)) {
                throw new CoolException("组拖不存在!!");
                throw new CoolException("组托不存在!!");
            }
            List<PakinItem> paramItems = param.getItems();
            if (Objects.isNull(paramItems) || paramItems.isEmpty()) {
@@ -250,11 +251,11 @@
                    .eq(WaitPakinItem::getPakinId, waitPakins.getId())
                    .in(WaitPakinItem::getMatnrId, list));
            if (pakinItems.isEmpty()) {
                throw new CoolException("数据错误:组拖明细不存在!!");
                throw new CoolException("数据错误:组托明细不存在!!");
            }
            List<Long> ids = pakinItems.stream().map(WaitPakinItem::getId).collect(Collectors.toList());
            if (!waitPakinItemService.removeByIds(ids)) {
                throw new CoolException("组拖明细解绑失败!!");
                throw new CoolException("组托明细解绑失败!!");
            }
            return waitPakins;
        }