From 6f1daffee3b65b5943dad26e1af3cbcafa46fd90 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期日, 18 二月 2024 16:57:26 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 186 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 174 insertions(+), 12 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 cc39e1c..075d879 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -94,7 +94,7 @@ // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); // List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); - StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto, 1); + StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -185,8 +185,11 @@ @Override @Transactional public void startupFullTakeStoreOrder(StockOutParam param, Long userId) { - if (Cools.isEmpty(param) || Cools.isEmpty(param.getOrderNo()) || Cools.isEmpty(param.getLocDetls())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){ throw new CoolException("鍙傛暟涓虹┖"); + } + if (Cools.isEmpty(param.getOrderNo())){ + throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�"); } DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE); Order order = orderService.selectByNo(param.getOrderNo()); @@ -220,7 +223,8 @@ null, // 鍙戣揣鏃堕棿 null, // 鐗╂祦鍚嶇О null, // 鐗╂祦鍗曞彿 - 2L, // 璁㈠崟鐘舵�� +// 2L, // 璁㈠崟鐘舵�� + 1L, // 璁㈠崟鐘舵�� 1, // 鐘舵�� userId, // 娣诲姞浜哄憳 now, // 娣诲姞鏃堕棿 @@ -250,9 +254,13 @@ orderDetl.setModel(locDetl.getModel());//鎵规 orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸 orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷 - orderDetl.setWorkQty(locDetl.getAnfme()); + orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷 + orderDetl.setWeight(locDetl.getWeight()); +// orderDetl.setWorkQty(locDetl.getAnfme()); + orderDetl.setWorkQty(0.0); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setOrigin(locDetl.getOrigin()); orderDetl.setCreateBy(userId); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(userId); @@ -264,10 +272,10 @@ } } - List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param); - for (StockOutParam stockOutParam : stockOutParams){ - startupFullTakeStore(stockOutParam,userId); - } +// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param); +// for (StockOutParam stockOutParam : stockOutParams){ +// startupFullTakeStore(stockOutParam,userId); +// } } else { throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒"); @@ -336,6 +344,10 @@ wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("N"); + wrkMast.setSheetNo("0"); + if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){ + wrkMast.setSheetNo("3"); + } wrkMast.setBarcode(locMast.getBarcode()); wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(now); @@ -467,7 +479,7 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); - StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto, 1); + StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -524,7 +536,17 @@ if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("绔欑偣涓嶅瓨鍦�"); } + List<String> locNoOtherListOne = new ArrayList<>(); for (String locNo : param.getLocNos()) { + + //灏忔枡绠变即鐢熷嚭搴� + if (Utils.getRow(locNo)<=8){ + String locNoOther = staNoOther(locNo); + if (!param.getLocNos().contains(locNoOther)){ + locNoOtherListOne.add(locNoOther); + } + } + // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); // 鑾峰彇搴撲綅 @@ -579,6 +601,139 @@ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); } } + } + + for (String locNo:locNoOtherListOne){ + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); + + //浼寸敓鍏ュ簱宸ヤ綔鍙� + int workNoRu = commonService.getWorkNo(0); + + // 鑾峰彇搴撲綅 + LocMast locMast = locMastService.selectById(locNo); + if (Cools.isEmpty(locMast)) { + throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�"); + } + if (!locMast.getLocSts().equals("D")){ + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$()); + } + // 鑾峰彇婧愮珯 + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 110) + .eq("stn_no", param.getOutSite()) + .eq("crn_no", locMast.getCrnNo()); + StaDesc staDesc = staDescService.selectOne(wrapper); + Integer sourceStaNo = staDesc.getCrnStn(); + if (Cools.isEmpty(sourceStaNo)) { + throw new CoolException("妫�绱㈡簮绔欏け璐�"); + } + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 + wrkMast.setIoPri(10D); + wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 + wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛 + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� + wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + wrkMast.setWorkNoOther(workNoRu); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害 + if (locMast.getLocSts().equals("D")){ + locMast.setLocSts("R"); + locMast.setModiUser(userId); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); + } + } + + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMastRu = new WrkMast(); + wrkMastRu.setWrkNo(workNoRu); + wrkMastRu.setIoTime(new Date()); + wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMastRu.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱 + wrkMastRu.setIoPri(13D); // 浼樺厛绾� + wrkMastRu.setCrnNo(wrkMast.getCrnNo()); + wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo()); + wrkMastRu.setStaNo(wrkMast.getStaNo()); +// wrkMast.setLocNo(dto.getLocNo()); + wrkMastRu.setFullPlt("N"); // 婊℃澘 + wrkMastRu.setPicking("N"); // 鎷f枡 + wrkMastRu.setExitMk("N"); // 閫�鍑� + wrkMastRu.setEmptyMk("Y"); // 绌烘澘 + wrkMastRu.setLinkMis("Y"); + wrkMastRu.setCtnType(wrkMast.getCtnType()); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMastRu.setAppeTime(new Date()); + wrkMastRu.setModiTime(new Date()); + boolean resOther = wrkMastService.insert(wrkMastRu); + if (!resOther) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + } + } + + public Integer crnStaRu(Integer crnNo){ + switch (crnNo){ + case 1: + return 153; + case 2: + return 145; + default: + return null; + } + } + + public String staNoOther(String locNo){ + int row = Utils.getRow(locNo); + if (row%4==0 || row%4==1){ + return getDeepLoc2(locNo,row); + }else { + return getDeepLoc(locNo,row); + } + } + + /** + * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿 + */ + public static String getDeepLoc(String shallowLoc,int row) { + if (row == 2 || row == 6) { + return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); + } else if (row == 3 || row == 7) { + return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); + }else { + return shallowLoc; + } + } + + /** + * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 + */ + public static String getDeepLoc2(String shallowLoc,int row) { + if (row == 1 || row == 5) { + return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); + } else if (row == 4 || row == 8) { + return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); + }else { + return null; } } @@ -770,14 +925,17 @@ if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { wrkMast.setWrkSts(4L); // 鍑哄簱 - } else if (wrkMast.getWrkSts() > 10) { + } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=202) { wrkMast.setWrkSts(14L); + }else if (wrkMast.getIoType()==202){ + wrkMast.setWrkSts(57L); } Date now = new Date(); wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true)); wrkMast.setCrnEndTime(now); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); + wrkMast.setSheetNo("3"); // 瀹屾垚鎿嶄綔浜哄憳璁板綍 wrkMast.setManuType("鎵嬪姩瀹屾垚"); if (!wrkMastService.updateById(wrkMast)) { @@ -934,7 +1092,7 @@ locMastService.updateById(locMast); } // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) { + } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) { locNo = wrkMast.getSourceLocNo(); // 鍑哄簱 ===>> F.鍦ㄥ簱 if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) { @@ -955,6 +1113,7 @@ locMast.setModiUser(userId); locMastService.updateById(locMast); } + } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){ } else { throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } @@ -1041,6 +1200,9 @@ } // 鍒犻櫎宸ヤ綔妗f槑缁� boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo)); + } + if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){ + return; } // 淇敼搴撲綅鐘舵�� @@ -1228,7 +1390,7 @@ } List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr())); if (Cools.isEmpty(locDetls) || locDetls.size()<1){ - throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr()); + throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr()); } try { locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr()); -- Gitblit v1.9.1