From 3614fc3249b3de228000234d384e07b97c0079ec Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期三, 11 十月 2023 16:48:03 +0800 Subject: [PATCH] 单据自动完结 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 185 ++++++++++------------------------------------ 1 files changed, 41 insertions(+), 144 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 5efb6d0..066d20a 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -191,9 +191,9 @@ } } - List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo); - if (!Cools.isEmpty(groupInsideLoc)) { - for (String insideLoc : groupInsideLoc) { + List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo); + if (!Cools.isEmpty(groupInnerLoc)) { + for (String insideLoc : groupInnerLoc) { if (locNos.contains(insideLoc)){ continue; } @@ -217,7 +217,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(), null); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -304,6 +304,14 @@ 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(); + } + // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); @@ -314,8 +322,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枡 @@ -360,7 +368,6 @@ } else { throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } - locMastService.breakUp(dto.getLocNo(), excludeLocNos); } } @@ -383,6 +390,14 @@ 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(); + } + // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); @@ -393,8 +408,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(taskDto.getLocNo()); // 婧愬簱浣� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -412,7 +427,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() + "鍟嗗搧搴撳瓨涓嶈冻锛�"); } @@ -556,9 +571,9 @@ if (sign){ break; } - List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo); - if (!Cools.isEmpty(groupInsideLoc)) { - for (String insideLoc : groupInsideLoc) { + List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo); + if (!Cools.isEmpty(groupInnerLoc)) { + for (String insideLoc : groupInnerLoc) { if (locNos.contains(insideLoc)){ continue; } @@ -599,8 +614,7 @@ // 鑾峰彇婧愮珯 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 110) - .eq("stn_no", param.getOutSite()) - .eq("crn_no", outCrnNo); + .eq("stn_no", param.getOutSite()); StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { throw new CoolException("闈炴硶璺緞锛�"); @@ -656,7 +670,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())); } } @@ -757,15 +771,15 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 17) { + 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)); @@ -922,6 +936,13 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } + + if (wrkMast.getWrkSts() == 200) { + //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。 + wrkMastService.deleteById(wrkMast); + return; + } + String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 @@ -942,7 +963,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,130 +1125,6 @@ throw new CoolException("鍔熻兘鍋滅敤"); } return ""; - } - - @Override - @Transactional - public void shuttleTransfer(List<String> locNos) { - if (Cools.isEmpty(locNos)) { - return; - } - if (true && !Cools.isEmpty(locNos)) { - throw new CoolException("鏆備笉鏀寔绉诲簱浠诲姟"); // todo:luxiaotao 绉诲簱寮�鍏� - } - LocMast one = locMastService.selectById(locNos.get(0)); - List<Integer> rows = Utils.getGroupLoc(Integer.parseInt(locNos.get(0).substring(0, 2))); - List<LocMast> locMasts = locMastService.queryFreeLocMast(rows, rows.size(), one.getLocType1()); - if (Cools.isEmpty(locMasts)) { - throw new CoolException("搴撲綅绉昏浆澶辫触锛屽凡鏃犵┖搴撲綅"); - } - // 鍏ュ簱鎺掑簭 娣卞簱浣� ==> 娴呭簱浣� - switch (locMasts.get(0).getRow1()) { - case 4: - case 5: - case 6: - case 7: - case 12: - case 13: - case 14: - case 19: - case 20: - case 21: - Collections.reverse(locMasts); - break; - default: - break; - } - if (locNos.size() > locMasts.size()) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇�"); - } - Date now = new Date(); - // 鐢熸垚绉诲簱宸ヤ綔妗� - Iterator<LocMast> iterator = locMasts.iterator(); - for (String sourceLocNo : locNos) { - - while (iterator.hasNext()) { - LocMast sourceLoc = locMastService.selectById(sourceLocNo); - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); - if (Cools.isEmpty(sourceLoc)){ - throw new CoolException("鏈壘鍒板簱浣�"); - } - LocMast loc = iterator.next(); - if (Cools.isEmpty(loc)){ - throw new CoolException("鏈壘鍒板簱浣�"); - } - if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { -// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); todo:luxiaotao - } - // 鑾峰彇宸ヤ綔鍙� - int workNo = commonService.getWorkNo(WorkNoType.PICK.type); - // 淇濆瓨宸ヤ綔妗� - WrkMast wrkMast = new WrkMast(); - wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(now); - wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟 - wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 - wrkMast.setIoPri(15D); - wrkMast.setOutMost(locMastService.isOutMost(loc.getLocNo(), false)?1:0);; - wrkMast.setCrnNo(sourceLoc.getCrnNo()); - wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣� - wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 - wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒 - wrkMast.setPicking("N"); // 鎷f枡 - wrkMast.setExitMk("N"); // 閫�鍑� - wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘 - wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� - wrkMast.setLinkMis("N"); - wrkMast.setAppeUser(9527L); - wrkMast.setAppeTime(now); - wrkMast.setModiUser(9527L); - wrkMast.setModiTime(now); - boolean res = wrkMastService.insert(wrkMast); - if (!res) { - throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); - } - // 宸ヤ綔妗f槑缁嗕繚瀛� - for (LocDetl locDetl : locDetls) { - WrkDetl wrkDetl = new WrkDetl(); - wrkDetl.sync(locDetl); - wrkDetl.setWrkNo(workNo); - wrkDetl.setIoTime(now); - wrkDetl.setAnfme(locDetl.getAnfme()); - wrkDetl.setAppeTime(now); - wrkDetl.setAppeUser(9527L); - wrkDetl.setModiTime(now); - wrkDetl.setModiUser(9527L); - if (!wrkDetlService.insert(wrkDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); - } - } - // 淇敼婧愬簱浣嶇姸鎬� - if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { - sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 - sourceLoc.setModiUser(9527L); - sourceLoc.setModiTime(now); - if (!locMastService.updateById(sourceLoc)){ - throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); - } - } else { - throw new CoolException(sourceLoc.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$()); - } - // 淇敼鐩爣搴撲綅鐘舵�� - if (loc.getLocSts().equals("O")) { - loc.setLocSts("S"); // S.鍏ュ簱棰勭害 - loc.setModiTime(now); - loc.setModiUser(9527L); - if (!locMastService.updateById(loc)) { - throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); - } - } else { - throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$()); - } - - iterator.remove(); - break; - } - } } } -- Gitblit v1.9.1