skyouc
2025-05-07 dc60b3451a2984722c01a5991e5b904b8bd44f0d
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -154,7 +154,7 @@
        for (WaitPakinItem pakinItem : items) {
            WarehouseAreasItem one = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                            .eq(WarehouseAreasItem::getId, pakinItem.getSource()));
                    .eq(WarehouseAreasItem::getId, pakinItem.getSource()));
            if (Objects.isNull(one)) {
                throw new CoolException("收货区数据错误!!");
            }
@@ -190,7 +190,7 @@
    public synchronized WaitPakin unBind(WaitPakinParam param) {
        String barcode = param.getBarcode();
        if (StringUtils.isNotBlank(barcode)) {
            WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode), false);
            WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode));
            if (Objects.isNull(waitPakins)) {
                throw new CoolException("组托不存在!!");
            }
@@ -198,10 +198,10 @@
            if (Objects.isNull(paramItems) || paramItems.isEmpty()) {
                throw new CoolException("解绑物料不能为空!!");
            }
            List<Long> list = paramItems.stream().map(PakinItem::getMatnrId).collect(Collectors.toList());
            List<Long> list = paramItems.stream().map(PakinItem::getId).collect(Collectors.toList());
            List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>()
                    .eq(WaitPakinItem::getPakinId, waitPakins.getId())
                    .in(WaitPakinItem::getMatnrId, list));
                    .in(WaitPakinItem::getSource, list));
            if (pakinItems.isEmpty()) {
                throw new CoolException("数据错误:组托明细不存在!!");
            }
@@ -209,6 +209,31 @@
            if (!waitPakinItemService.removeByIds(ids)) {
                throw new CoolException("组托明细解绑失败!!");
            }
            List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.listByIds(list);
            for (int i1 = 0; i1 < pakinItems.size(); i1++) {
                for (int i = 0; i < warehouseAreasItems.size(); i++) {
                    if (warehouseAreasItems.get(i).getId().equals(pakinItems.get(i1).getId())) {
                        double v = warehouseAreasItems.get(i).getWorkQty() - pakinItems.get(i1).getAnfme();
                        warehouseAreasItems.get(i).setWorkQty(v);
                        if (!warehouseAreasItemService.updateById(warehouseAreasItems.get(i))) {
                            throw new CoolException("收货区数量修改失败!!");
                        }
                    }
                }
            }
            double anfmes = warehouseAreasItems.stream().mapToDouble(WarehouseAreasItem::getAnfme).sum();
            if (waitPakins.getAnfme().compareTo(anfmes) <= 0) {
                if (!waitPakinService.removeById(waitPakins.getId())) {
                    throw new CoolException("组托删除失败!!");
                }
            } else {
                waitPakins.setAnfme(waitPakins.getAnfme() - anfmes);
                if (!waitPakinService.updateById(waitPakins)) {
                    throw new CoolException("组托数据修改失败!!");
                }
            }
            return waitPakins;
        }
        return new WaitPakin();