From 98b1835a279fd8c9ed2a21fae3501f24c470c39b Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期四, 09 十一月 2023 09:37:36 +0800 Subject: [PATCH] 修复权限无法修改bug 组托时检测料箱码是否存在库存中 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 118 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 91 insertions(+), 27 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 7bc7e6a..36fe8aa 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -23,6 +23,7 @@ import com.zy.common.web.BaseController; import com.zy.common.web.WcsController; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,6 +78,10 @@ private RowLastnoService rowLastnoService; @Autowired private SlaveProperties slaveProperties; + @Autowired + private DocTypeService docTypeService; + @Autowired + private AgvWaitPakinService agvWaitPakinService; @Override @Transactional @@ -124,8 +129,7 @@ // 鐢熸垚宸ヤ綔妗f槑缁� List<DetlDto> detlDtos = new ArrayList<>(); param.getList().forEach(elem -> { - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq()); - detlDto.setContainerCode(elem.getContainerCode()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); assert detlDto1 != null; @@ -191,13 +195,13 @@ } } - List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo); - if (!Cools.isEmpty(groupInnerLoc)) { - for (String insideLoc : groupInnerLoc) { - if (locNos.contains(insideLoc)){ + List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo); + if (!Cools.isEmpty(groupOuterLoc)) { + for (String outerLoc : groupOuterLoc) { + if (locNos.contains(outerLoc)){ continue; } - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc)); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc)); if (locMast != null) { if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){ sign=true; @@ -217,7 +221,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getContainerCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -304,6 +308,21 @@ StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo()); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + + Integer stnNo = staDesc.getStnNo();//鐩爣绔� + Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯 + if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) { + stnNo = staDesc.getCrnStn(); + sourceStaNo = staDesc.getStnNo(); + } + + int lev = Utils.getLev(dto.getLocNo()); + if (lev == 1 || lev == 2) { + if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) { + throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�"); + } + } + // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); @@ -314,8 +333,8 @@ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 wrkMast.setOutMost(outMost?1:0);; wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); - wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 - wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 + wrkMast.setStaNo(stnNo); // 鐩爣绔� wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -382,6 +401,21 @@ StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, outCrnNo, staNo.getDevNo()); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + + Integer stnNo = staDesc.getStnNo();//鐩爣绔� + Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯 + if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) { + stnNo = staDesc.getCrnStn(); + sourceStaNo = staDesc.getStnNo(); + } + + int lev = Utils.getLev(taskDto.getLocNo()); + if (lev == 1 || lev == 2) { + if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) { + throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�"); + } + } + // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); @@ -392,8 +426,12 @@ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 wrkMast.setOutMost(outMost?1:0);; wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); - wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 - wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 + wrkMast.setStaNo(stnNo); // 鐩爣绔� + if(ioType == 101 && taskDto.getStaNo()>=300){ + wrkMast.setSourceStaNo(346); // 婧愮珯 + wrkMast.setStaNo(346); // 鐩爣绔� + } wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -411,7 +449,7 @@ // 鐢熸垚宸ヤ綔妗f槑缁� for (LocDto locDto : taskDto.getLocDtos()) { if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; } - LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch()); + LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getContainerCode()); if (locDetl == null || locDetl.getAnfme() < locDto.getAnfme()) { throw new CoolException(locDto.getLocNo() + "搴撲綅涓�" + locDto.getMatnr() + "鍟嗗搧搴撳瓨涓嶈冻锛�"); } @@ -429,9 +467,15 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setSuppCode(locDto.getContainerCode()); + wrkDetl.setThreeCode(locDto.getCsocode()); + wrkDetl.setDeadTime(locDto.getIsoseq()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } + //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗� + generateAgvWaitpakin(wrkDetl); + // 淇敼璁㈠崟鏄庣粏 if (!BaseController.isJSON(locDto.getOrderNo())) { OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); @@ -654,7 +698,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getContainerCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -755,15 +799,22 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 17) { + + if (wrkMast.getIoType() == 200) { + //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。 + wrkMastService.deleteById(wrkMast); + return; + } + + if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) { throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚"); } // 鍏ュ簱 + 搴撲綅杞Щ if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { wrkMast.setWrkSts(9L); // 鍑哄簱 - } else if (wrkMast.getWrkSts() > 10) { - wrkMast.setWrkSts(17L); + } else if (wrkMast.getWrkSts() > 20) { + wrkMast.setWrkSts(29L); } Date now = new Date(); wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true)); @@ -807,7 +858,7 @@ if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -821,9 +872,7 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); @@ -838,7 +887,7 @@ // 鍒犻櫎搴撳瓨 for (LocDetl locDetl : locDetls) { // todo 鐩樼偣璁板綍 - if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -852,7 +901,7 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetlService.save(adjDetl, userId); } @@ -885,11 +934,9 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetlService.save(adjDetl, userId); } @@ -920,6 +967,13 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } + + if (wrkMast.getIoType() == 200) { + //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。 + wrkMastService.deleteById(wrkMast); + return; + } + String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 @@ -940,7 +994,7 @@ locMastService.updateById(locMast); } // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 19) { + } else if (wrkMast.getWrkSts() > 20) { locNo = wrkMast.getSourceLocNo(); // 鍑哄簱 ===>> F.鍦ㄥ簱 if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) { @@ -1104,4 +1158,14 @@ return ""; } + private void generateAgvWaitpakin(WrkDetl wrkDetl){ + Order order = orderService.selectByNo(wrkDetl.getOrderNo()); + DocType docType = docTypeService.selectById(order.getDocType()); + if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){ + AgvWaitPakin agvWaitPakin = new AgvWaitPakin(); + BeanUtils.copyProperties(wrkDetl,agvWaitPakin); + agvWaitPakinService.insert(agvWaitPakin); + } + } + } -- Gitblit v1.9.1