自动化立体仓库 - WMS系统
#
LSH
2023-02-14 c46f9c28f8d40d2a4efcc7ef6e528661d97a4be0
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -130,6 +130,7 @@
                        locMast.setFrozen(wrkMast.getFrozen());
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        locMast.setFrozenMemo(wrkMast.getMemo());
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("全板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                        }
@@ -208,6 +209,24 @@
                    if (wrkDetls57.isEmpty()) {
                        exceptionHandle("盘点入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
                    }
                    if(!Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
                    }
                    if (Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
                        for (WrkDetl wrkDetl:wrkDetls57){
                            LocDetl locDetl = new LocDetl();
                            locDetl.sync(wrkDetl);
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
                                exceptionHandle("盘点入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                            }
                        }
                    }
                    // 修改库位状态 Q ====>> F
                    if (locMast.getLocSts().equals("Q")) {
                        locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
@@ -278,6 +297,36 @@
            }
            assert locMast != null;
            switch (wrkMast.getIoType()) {
                case 11://移库再回原库位
                    String locSts = "R";
                    // 库位移转判断是否为空板移转
                    if (wrkMast.getEmptyMk().equals("N")) {
                        // 转移库存明细数据: 库存号 由工作档源库位变为目标库位
                        if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
                            exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
                        }
                    }
                    // 修改源库位状态 ==> O
                    LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
                    if (null != sourceLoc && !sourceLoc.getLocSts().equals("O")) {
                        sourceLoc.setBarcode("");
                        sourceLoc.setLocSts("O");
                        sourceLoc.setModiTime(now);
                        sourceLoc.setIoTime(now);
                        if (!locMastService.updateById(sourceLoc)) {
                            exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                        }
                        // 修改目标库位状态 ==> .locSts
                        locMast.setLocSts(locSts);
                        locMast.setBarcode(wrkMast.getBarcode());
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("库位移转 ===>> 修改目标库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                        }
                    }
                    break;
                // 全板出库
                case 101:
                    // 出库确认信号位
@@ -303,6 +352,7 @@
                        locMast.setFrozen(0);
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        locMast.setFrozenMemo("");
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                        }
@@ -324,11 +374,13 @@
                default:
                    break;
            }
            // 修改工作主档状态
            wrkMast.setWrkSts(18L);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
            if(wrkMast.getIoType()!=11) {
                // 修改工作主档状态
                wrkMast.setWrkSts(18L);
                wrkMast.setModiTime(now);
                if (!wrkMastService.updateById(wrkMast)) {
                    exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
                }
            }
        } catch (Exception e) {
            log.error("fail", e);