From 2ded9514aa9a93ee440af0b1437d788fb052028b Mon Sep 17 00:00:00 2001 From: pjb <pjb123456> Date: 星期六, 23 八月 2025 08:36:59 +0800 Subject: [PATCH] wms功能完善 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 124 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index eb267a2..a713524 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -24,6 +24,8 @@ import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import com.zy.common.web.WcsController; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -97,6 +99,9 @@ @Resource private OrderDetlPakoutMapper orderDetlPakoutMapper; + + @Resource + private ConfigService configService; @Override @Transactional @@ -184,6 +189,16 @@ public void startupFullTakeStore(StockOutParam param, Long userId) { // 鐩爣绔欑偣鐘舵�佹娴� BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮� + if (param.getOutSite() == 1016 || param.getOutSite() == 1043) { + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inOrOutBoundMode").eq("status", 1)); + if (config != null && !Cools.isEmpty(config.getValue())) { + int value = Integer.parseInt(config.getValue()); + if (value != 2) { + throw new CoolException("鐩爣绔欑偣" + param.getOutSite() + "涓嶆槸鍑哄簱妯″紡锛屽綋鍓嶆ā寮忎负锛�" + value); + } + } + } // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { @@ -823,7 +838,7 @@ if (wrkMast.getStaNo() == 1090 && wrkMast.getLocNo() == null) { throw new CoolException(workNo+"宸ヤ綔妗f棤娉曞畬鎴�,搴撲綅鍙蜂负绌猴紒"); } - if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) { + if (wrkMast.getWrkSts() == 4L || wrkMast.getWrkSts() == 14L || wrkMast.getWrkSts() == 54L) { throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚"); } // 瀹屾垚绌烘《搴撳叆鍑哄簱浠诲姟鍙︿竴涓换鍔� @@ -843,6 +858,9 @@ workNoOther = wrkMast.getWorkNoOther(); } else if(wrkMast.getIoType() == 1 && wrkMast.getWrkSts() == 10) { wrkMast.setWrkSts(2L); + wrkMast.setRgvFinishTime(new Date()); + } else if(wrkMast.getIoType() == 120) { + wrkMast.setWrkSts(54L); wrkMast.setRgvFinishTime(new Date()); } Date now = new Date(); @@ -894,7 +912,7 @@ wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locMast.getLocNo()); wrkMast.setLocNo(locMast.getLocNo()); - wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮� + wrkMast.setBarcode(list.get(0).getZpallet()); // 鎵樼洏鐮� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� @@ -911,6 +929,10 @@ boolean deleteFlag = true; boolean addFlag = true; + // 搴撲綅鐘舵�佹槸绌猴紝鍒欐坊鍔� + // 搴撲綅鐘舵�佸湪搴擄紝鏈夋彁浜ゆ暟鎹紝鍒欎慨鏀� + // 搴撲綅鐘舵�佸湪搴擄紝娌℃湁鎻愪氦鏁版嵁锛屽垯鍒犻櫎 + // 淇敼鏁伴噺 Iterator<LocDetl> iterator = locDetls.iterator(); while (iterator.hasNext()) { @@ -921,13 +943,20 @@ LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { - if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), - locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) { - throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); - } +// if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), +// locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) { +// throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); +// } + locDetl.setAnfme(adjust.getCount()); + locDetl.setZpallet(adjust.getZpallet()); + locDetl.setModel(adjust.getModel()); + locDetl.setManuDate(adjust.getManuDate()); + locDetl.setWeight(adjust.getWeight()); + locDetl.setManLength(adjust.getManLength()); + locDetl.setVolume(adjust.getVolume()); + locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no",locDetl.getLocNo()).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getBatch())); // 淇濆瓨璋冩暣璁板綍 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); @@ -957,6 +986,13 @@ wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setIoTime(wrkMast.getIoTime()); wrkDetl.setAnfme(adjust.getCount()); + wrkDetl.setAnfme(adjust.getCount()); + wrkDetl.setZpallet(adjust.getZpallet()); + wrkDetl.setModel(adjust.getModel()); + wrkDetl.setManuDate(adjust.getManuDate()); + wrkDetl.setWeight(adjust.getWeight()); + wrkDetl.setManLength(adjust.getManLength()); + wrkDetl.setVolume(adjust.getVolume()); wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); wrkMast.setAppeUser(userId); @@ -964,7 +1000,6 @@ if (!wrkDetlLogService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } - } iterator.remove(); iterator1.remove(); } @@ -1024,8 +1059,13 @@ locDetl.sync(mat); locDetl.setBatch(adjust.getBatch()); locDetl.setLocNo(locMast.getLocNo()); - locDetl.setZpallet(locMast.getBarcode()); + locDetl.setZpallet(adjust.getZpallet()); locDetl.setAnfme(adjust.getCount()); // 鏁伴噺 + locDetl.setModel(adjust.getModel()); + locDetl.setManuDate(adjust.getManuDate()); + locDetl.setWeight(adjust.getWeight()); + locDetl.setManLength(adjust.getManLength()); + locDetl.setVolume(adjust.getVolume()); locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅 locDetl.setModiTime(now); locDetl.setAppeUser(userId); @@ -1074,12 +1114,15 @@ int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); if (locMast.getLocSts().equals("F")) { if (count == 0) { - locMast.setLocSts("D"); + locMast.setLocSts("O"); + } else { + locMast.setBarcode(wrkMast.getBarcode()); } } if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) { if (count > 0) { locMast.setLocSts("F"); + locMast.setBarcode(wrkMast.getBarcode()); } } locMast.setModiUser(userId); @@ -1100,8 +1143,53 @@ } String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� + Long wrkSts = wrkMast.getWrkSts(); + Integer ioType = wrkMast.getIoType(); + + // 浠诲姟瀹屾垚锛屾棤娉曞彇娑� + if(wrkSts == 4 || wrkSts == 5 || wrkSts == 14 || wrkSts == 15 || wrkSts == 54) { + throw new CoolException(workNo+"浠诲姟宸插畬鎴愶紝鏃犳硶鍙栨秷"); + } + + if(ioType == 101 || ioType == 110) { + if(wrkSts == 11 || wrkSts == 12) { + + } else { + throw new CoolException(workNo+"搴撳瓨淇℃伅宸叉洿鏂帮紝鏃犳硶鍙栨秷"); + } + } // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 - if (wrkMast.getWrkSts() <= 10) { +// if(ioType == 1 || ioType == 10) { +// if(wrkSts == 1 || wrkSts == 2|| wrkSts == 3 || wrkSts == 9 || wrkSts == 10) { +// locNo = wrkMast.getLocNo(); +// locSts = "O"; +// } else { +// throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts); +// } +// } else if(ioType == 11){ +// if(wrkSts <= 10) { +// locNo = wrkMast.getLocNo(); +// locSts = "O"; +// // 搴撲綅杞Щ锛氭簮搴撲綅 +// LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); +// if (Cools.isEmpty(locMast)) { +// throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo()); +// } +// locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F"); +// locMast.setModiTime(now); +// locMast.setModiUser(userId); +// locMastService.updateById(locMast); +// } else { +// throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts); +// } +// } else if(ioType == 3) { +// +// } else if(ioType == 101) { +// +// } else if(ioType == 110) { +// +// } + if (wrkMast.getWrkSts() <= 10 && wrkMast.getIoType()!=120) { locNo = wrkMast.getLocNo(); locSts = "O"; @@ -1118,7 +1206,7 @@ locMastService.updateById(locMast); } // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) { + } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=120) { locNo = wrkMast.getSourceLocNo(); if (wrkMast.getIoType() == 110) { if(wrkMast.getStaNo() == 1035) { // 瀛愭媶鐩樻満绔欑偣 @@ -1132,7 +1220,7 @@ locSts = "F"; // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉� } else if (wrkMast.getIoType() == 11) { - locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F"; + locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F"; // 搴撲綅杞Щ锛氱洰鏍囧簱浣� LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); if (Cools.isEmpty(locMast)) { @@ -1143,6 +1231,16 @@ locMast.setModiUser(userId); locMastService.updateById(locMast); } + } else if (wrkMast.getIoType()==120){ + // 鍙栨秷鎿嶄綔浜哄憳璁板綍 + wrkMast.setWrkSts(54L); + wrkMast.setManuType("鎵嬪姩鍙栨秷"); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + if (!wrkMastService.updateById(wrkMast)) { + throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�"); + } + return; } else { throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } -- Gitblit v1.9.1