From b453fa6c987210616dfab066cc097cf9f742999e Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 25 十月 2024 09:24:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 115 insertions(+), 30 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 9380c83..528ac3f 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(), matnrs, locTypeDto); + StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto,0); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -167,22 +167,36 @@ for(StockOutParam.LocDetl one : param.getLocDetls()){ locs.add(one.getLocNo()); } - boolean sign = true; - for (StockOutParam.LocDetl locDetl : param.getLocDetls()) { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo())); - //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙� - List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo()); - if (locMast.getLocType2().equals((short)3)){ - groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo()); - } + List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls()); + boolean sign = true; + boolean isfull = false; // 鏄惁澶熸暟閲� + Double isOut = 0.0; + List<String> locNoWeighting = new ArrayList<>(); + for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) { + if (Cools.isEmpty(locNoWeighting)){ + locNoWeighting.add(locDetl.getLocNo()); + }else { + if (!Utils.getLocNoWeighting(locNoWeighting,locDetl.getLocNo())){ + locNoWeighting.add(locDetl.getLocNo()); + sign = true; + } + } if (sign){ - if (locMast.getLocType2().equals((short)3)) { + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo())); + //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙� + List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo()); + if (locMast.getLocType2().equals((short)3)){ + groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo()); sign = false; } for (String locNo : groupOuterSingleLoc) { //姣忎釜搴撲綅鐨勫簱浣嶆槑缁� if(locs.contains(locNo)) continue; + LocMast mast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo)); + if (mast.getLocSts().equals("P") || mast.getLocSts().equals("Q")){ + throw new CoolException("褰撳墠搴撲綅鐨勬祬搴撲綅鐘舵�佷负" + mast.getLocSts() + "鏆備笉鏀寔鍑哄簱锛�"); + } for (LocDetl detl : locDetlService.selectByLocNo(locNo)) { if (!detl.getMatnr().equals(locDetl.getMatnr())) { //涓嶆槸鐩稿悓鐗╂枡 @@ -191,11 +205,28 @@ } continue; } - locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme())); + if (!param.getOutSite().equals(214) && !param.getOutSite().equals(114)){ + if (detl.getAnfme() >= locDetl.getCount()) { + locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), locDetl.getCount())); + isOut = locDetl.getCount(); + isfull = true; + break; + } else { + locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme())); + isOut = detl.getAnfme(); + } + } else { + //寮哄埗涓嶆槸鐩稿悓鐗╂枡 + locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme())); + } } } } - locDetls.add(locDetl); + if (!isfull) { + + locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut)); +// locDetls.add(locDetl); + } } //鍑哄簱鏃讹紝濡傛灉褰撳墠搴撲綅缁勬湁鐩稿悓鐨勭墿鏂欙紝鍒欏厛鍑哄渚х墿鏂� 6.30鏃� 娉ㄩ噴 //for (StockOutParam.LocDetl locDetl : param.getLocDetls()) { @@ -470,21 +501,44 @@ Date now = new Date(); // 鍚堝苟鍚岀被椤� Set<String> locNos = new HashSet<>(); + ArrayList<String> locNos2 = new ArrayList<String>(); List<OutLocDto> dtos = new ArrayList<>(); for (LocDetlDto locDetlDto : locDetlDtos) { String locNo = locDetlDto.getLocDetl().getLocNo(); - if (locNos.contains(locNo)) { - for (OutLocDto dto : dtos) { - if (dto.getLocNo().equals(locNo)) { - dto.getLocDetlDtos().add(locDetlDto); - break; + locNos2.add(locNo); + //if (locNos.contains(locNo)) { + //for (OutLocDto dto : dtos) { + // if (dto.getLocNo().equals(locNo)) { + // dto.getLocDetlDtos().add(locDetlDto); + // break; + // } + //} + //} else { + //locNos.add(locNo); + + //dtos.add(new OutLocDto(locNo, locDetlDto)); + //} + } + List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true); + System.out.println(innermostSideLoc); + for (LocDetlDto locDetlDto : locDetlDtos) { + String locNo = locDetlDto.getLocDetl().getLocNo(); + if(innermostSideLoc.contains(locNo)) { + if (locNos.contains(locNo)) { + for (OutLocDto dto : dtos) { + if (dto.getLocNo().equals(locNo)) { + dto.getLocDetlDtos().add(locDetlDto); + break; + } } + } else { + locNos.add(locNo); + dtos.add(new OutLocDto(locNo, locDetlDto)); } - } else { - locNos.add(locNo); - dtos.add(new OutLocDto(locNo, locDetlDto)); + //dtos.add(new OutLocDto(locNo,locDetlDto)); } } + Integer ioType = null; List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList()); // 鐢熸垚宸ヤ綔妗� @@ -763,8 +817,17 @@ if (locNos.contains(locNo)) { for (OutLocDto dto : dtos) { if (dto.getLocNo().equals(locNo)) { - dto.getLocDetlDtos().add(locDetlDto); - break; + boolean signDto = false; + for (LocDetlDto locDetlDto1 : dto.getLocDetlDtos()){ + if (locDetlDto1.getLocDetl().getBatch().equals(locDetlDto.getLocDetl().getBatch()) + && locDetlDto1.getLocDetl().getMatnr().equals(locDetlDto.getLocDetl().getMatnr())){ + signDto = true; + } + } + if (!signDto){ + dto.getLocDetlDtos().add(locDetlDto); + break; + } } } } else { @@ -782,7 +845,6 @@ continue; } } - //-----------------2023.5.31涓婃灦鍖哄煙鐗堟湰鍏煎浠g爜----------------------- //鍒ゆ柇褰撳墠搴撲綅缁勬槸鍚﹀潎涓哄悓涓�绉嶇墿鏂欙紝濡備笉鏄紝鍒欒瀹氶渶瑕佹墽琛屽吋瀹逛唬鐮� //闇�瑕佸皢寰呭嚭搴撳簱浣嶅墠渚у簱浣�(涓嶅寘鍚渶澶栦晶楂橀搴撲綅)鎵ц101鍏ㄦ澘鍑哄簱 @@ -815,7 +877,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setBatch(""); + //waitPakin.setBatch(""); waitPakin.setZpallet(locDetl.getZpallet()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� waitPakin.setAnfme(locDetl.getAnfme()); // 鏁伴噺 @@ -845,6 +907,12 @@ // throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�"); // } } + if (ioType!=101){ + if (basDevp==114 || basDevp==214){ + throw new CoolException("2妤煎彧鍏佽鍏ㄦ澘鍑哄簱锛岃閫夋嫨鍏ㄩ儴鐗╂枡"); + } + } + assert ioType != null; // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(dto.getLocNo()); @@ -860,13 +928,30 @@ // } //} if (ioType == 101) { - if (staNo.getDevNo()==300){ + if (basDevp==300){ if(locMast.getCrnNo() == 1) { staNo.setDevNo(100); } else { staNo.setDevNo(200); } - + } else if (basDevp == 114){ + if (!dto.isSign()){ + staNo.setDevNo(100); + } else { + staNo.setDevNo(basDevp); + } + } else if (basDevp == 214){ + if (!dto.isSign()){ + staNo.setDevNo(200); + } else { + staNo.setDevNo(basDevp); + } + } else { + if(locMast.getCrnNo() == 1) { + staNo.setDevNo(100); + } else { + staNo.setDevNo(200); + } } } else { staNo.setDevNo(basDevp); @@ -1193,7 +1278,7 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); - StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto); + StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto,0); int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); @@ -1504,6 +1589,7 @@ AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatnr(locDetl.getMatnr()); + adjDetl.setSpecs(locDetl.getSpecs()); adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(locDetl.getAnfme()); adjDetl.setAdjQty(adjust.getCount()); @@ -1655,7 +1741,7 @@ for (WrkDetl wrkDetl : wrkDetls) { if (!Cools.isEmpty(wrkDetl.getOrderNo())){ String[] orderNos = GetOrderNo(wrkDetl.getOrderNo()); - if (!Cools.isEmpty(orderNos)){ + if (!Cools.isEmpty(orderNos) && orderNos.length!=0){ String[] anfmes = GetAnfme(wrkDetl.getOrderNo()); int i = 0; for (String orderNo : orderNos) { @@ -1729,8 +1815,7 @@ if (!wrkMastRes || !locMastRes) { throw new CoolException("淇濆瓨鏁版嵁澶辫触"); } - WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode())); - waitPakinService.delete(new EntityWrapper<>(waitPakin)); + waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode())); } @Override -- Gitblit v1.9.1