skyouc
2025-04-30 6f4f866484c956cfbe3de3d4d60a723d4f2ba6c7
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.PakinItem;
import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
@@ -147,7 +148,7 @@
            }
        } else {
            LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>()
                    .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx")
                    .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)
                    .groupBy(WarehouseAreasItem::getSplrBatch,
@@ -187,11 +188,33 @@
                }
                items.add(pakinItem);
            }
        }
        double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum();
        if (!waitPakinItemService.saveBatch(items)) {
            throw new CoolException("组拖明细保存失败!!");
        }
        for (WaitPakinItem pakinItem : items) {
            WarehouseAreasItem one = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                    .eq(WarehouseAreasItem::getTrackCode, pakinItem.getTrackCode())
                    .eq(WarehouseAreasItem::getSplrBatch, pakinItem.getBatch()));
            if (Objects.isNull(one)) {
                throw new CoolException("收货区数据错误!!");
            }
            one.setWorkQty(one.getWorkQty() + pakinItem.getAnfme() + one.getQty()) ;
            if (one.getWorkQty() > one.getAnfme()) {
                throw new CoolException("组托数量不能大于收货数量!!");
            }
            if (!warehouseAreasItemService.saveOrUpdate(one)) {
                throw new CoolException("收货区执行数量修改失败!!");
            }
        }
        waitPakin1.setAnfme(sum1);
        if (!this.updateById(waitPakin1)) {
            throw new CoolException("组拖数量修改失败!!");