自动化立体仓库 - WMS系统
#1
dubin
2025-12-20 db11805d2209fd37b24037fce159c7d5a39d8177
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -569,6 +569,7 @@
            wrkMast.setExitMk("N"); // 退出
            wrkMast.setEmptyMk("Y"); // 空板
            wrkMast.setLinkMis("N");
            wrkMast.setBarcode(locMast.getBarcode());//托盘条码
            wrkMast.setAppeUser(userId);
            wrkMast.setAppeTime(now);
            wrkMast.setModiUser(userId);
@@ -772,16 +773,21 @@
        if (Cools.isEmpty(wrkMast)) {
            throw new CoolException(workNo + "工作档不存在");
        }
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() >= 14) {
        if (wrkMast.getWrkSts() == 4 || (wrkMast.getWrkSts() >= 14 && wrkMast.getWrkSts() <= 15)) {
            throw new CoolException("当前工作档已完成");
        }
        // 入库 + 库位转移
        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
            wrkMast.setWrkSts(4L);
            // 出库
        } else if (wrkMast.getWrkSts() > 10) {
        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() < 15) {
            wrkMast.setWrkSts(14L);
        }else if(wrkMast.getWrkSts() >= 103 && wrkMast.getWrkSts() <= 105){
            wrkMast.setWrkSts(4L);
        }else if (wrkMast.getWrkSts() >= 106 && wrkMast.getWrkSts() <=108){
            wrkMast.setWrkSts(14L);
        }
        wrkMast.setPltType(0);
        Date now = new Date();
        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
        wrkMast.setCrnEndTime(now);
@@ -930,7 +936,7 @@
        String locNo = ""; // 待修改目标库位
        String locSts = ""; // 待修改目标库位状态
        // 入库取消(修改目标库位)
        if (wrkMast.getWrkSts() < 4) {
        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts()>= 103 && wrkMast.getWrkSts() <= 105)) {
            locNo = wrkMast.getLocNo();
            locSts = "O";
@@ -947,7 +953,7 @@
                locMastService.updateById(locMast);
            }
            // 出库取消(修改源库位)
        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
        } else if ((wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14)) {
            locNo = wrkMast.getSourceLocNo();
            // 出库 ===>> F.在库
            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -1343,25 +1349,25 @@
                throw new CoolException("保存工作档失败,出库库位号:" + dto.getLocNo());
            }
            // 生成工作档明细
            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
                if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) {
                    continue;
                }
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(detlDto.getLocDetl());
                wrkDetl.setOrderNo(""); // 手动出库不需要带出库存中的单据编号
                wrkDetl.setWrkNo(workNo);
                wrkDetl.setIoTime(now);
                Double anfme = ioType == 101 ? detlDto.getLocDetl().getAnfme() : detlDto.getCount();
                wrkDetl.setAnfme(anfme); // 数量
                wrkDetl.setAppeTime(now);
                wrkDetl.setAppeUser(userId);
                wrkDetl.setModiTime(now);
                wrkDetl.setModiUser(userId);
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作档明细失败");
                }
            }
//            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
//                if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) {
//                    continue;
//                }
//                WrkDetl wrkDetl = new WrkDetl();
//                wrkDetl.sync(detlDto.getLocDetl());
//                wrkDetl.setOrderNo(""); // 手动出库不需要带出库存中的单据编号
//                wrkDetl.setWrkNo(workNo);
//                wrkDetl.setIoTime(now);
//                Double anfme = ioType == 101 ? detlDto.getLocDetl().getAnfme() : detlDto.getCount();
//                wrkDetl.setAnfme(anfme); // 数量
//                wrkDetl.setAppeTime(now);
//                wrkDetl.setAppeUser(userId);
//                wrkDetl.setModiTime(now);
//                wrkDetl.setModiUser(userId);
//                if (!wrkDetlService.insert(wrkDetl)) {
//                    throw new CoolException("保存工作档明细失败");
//                }
//            }
            // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
            locMast = locMastService.selectById(dto.getLocNo());
            if (locMast.getLocSts().equals("F")) {