自动化立体仓库 - WMS系统
zhou zhou
2025-11-28 b06233aa71b70f7a30ff382ae1ba19c29b134d7c
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -19,6 +19,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -56,6 +57,8 @@
    private TaskDetlService taskDetlService;
    @Autowired
    private BasStationServiceImpl basStationService;
    @Autowired
    private CheckOrderDetlService checkOrderDetlService;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
@@ -186,7 +189,6 @@
                    }
                    // 遍历工作明细,更新库存明细和入库通知档
                    for (WrkDetl wrkDetl : wrkDetls8) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
                                , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                        if (null != locDetl) {
@@ -356,16 +358,21 @@
                    for (WrkDetl wrkDetl : wrkDetls57) {
                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                            // 更新订单完成数量
                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                            if (!Cools.isEmpty(orderDetlPakout)) {
                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("盘点入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectById(wrkDetl.getOrderId());
                            LocDetl locDetl = locDetlService.selectById(checkOrderDetl.getLocDetlId());
                            BigDecimal oriAnfme = new BigDecimal(locDetl.getAnfme());
                            locDetl.setAnfme(checkOrderDetl.getDiffQty()
                                    .compareTo(BigDecimal.ZERO) == 0 || checkOrderDetl.getDiffQty()
                                    .compareTo(BigDecimal.ZERO) > 0
                                    ? oriAnfme.doubleValue()
                                    : oriAnfme.add(checkOrderDetl.getDiffQty()).doubleValue());
                            locDetl.setBookQty(oriAnfme);
                            locDetl.setDiffQty(checkOrderDetl.getDiffQty());
                            if (!locDetlService.updateById(locDetl)){
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("盘点入库 ===>> 修改库存差异数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        }
                    }
                    // 修改库位状态 Q ====>> F
@@ -656,10 +663,10 @@
            if (!basStationService.updateById(devNo)) {
                throw new CoolException("站点信息修改失败!!");
            }
//            task.setWrkSts(15L);
//            if (!taskService.updateById(task)) {
//                throw new CoolException("任务状态修改失败!!");
//            }
            task.setWrkSts(15L);
            if (!taskService.updateById(task)) {
                throw new CoolException("任务状态修改失败!!");
            }
        } else {
        }
@@ -702,7 +709,7 @@
        locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
        locCache.setModiTime(new Date());
        locCache.setBarcode("");
        locCache.setBarcode(wrkMast.getBarcode());
        locCache.setModiTime(new Date());
        locCache.setIoTime(new Date());
        if (!locCacheService.updateById(locCache)) {