From afdf7d86cffe39c24b55936321bd3b3133adaf40 Mon Sep 17 00:00:00 2001 From: bfwms <1> Date: 星期六, 29 三月 2025 16:51:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/bfasrs6' into bfasrs6 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 141 ++++++++++++++++++++++++---------------------- 1 files changed, 74 insertions(+), 67 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 10640fe..1bd9ff9 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -161,112 +161,118 @@ public void startupFullTakeStore(StockOutParam param, Long userId) { List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); List<String> locs = new ArrayList<>(); - List<SameMatCount> sameMatCounts = new ArrayList<>(); - for (StockOutParam.LocDetl one : param.getLocDetls()) { + for(StockOutParam.LocDetl one : param.getLocDetls()){ + locs.add(one.getLocNo()); + } + + for (String loc : locs) { + List<LocDetl> detls = locDetlService.selectByLocNo(loc); + for (LocDetl detl : detls) { + for (StockOutParam.LocDetl paramDetls : param.getLocDetls()) { + if (paramDetls.getMatnr().equals(detl.getMatnr()) && paramDetls.getBatch().equals(detl.getBatch()) && paramDetls.getLocNo().equals(detl.getLocNo())) { + locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), paramDetls.getCount())); + } + } + + } + } + + + // 鐩爣绔欑偣鐘舵�佹娴� + BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + // 鑾峰彇搴撲綅鏄庣粏 + List<LocDetlDto> locDetlDtos = new ArrayList<>(); + for (StockOutParam.LocDetl paramLocDetl : locDetls) { + if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); + } + } + for (LocDetlDto locDetlDto:locDetlDtos){ + if (locs.contains(locDetlDto.getLocDetl().getLocNo())){ + locDetlDto.setSign(true); + } + } + if (!locDetlDtos.isEmpty()) { + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){ + // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 + stockOut2(staNo, locDetlDtos, null, userId); + }else { + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$()); + } + } else { + throw new CoolException("搴撳瓨涓嶅瓨鍦�"); + } + } + + // 澶囦唤涔嬪墠 startupFullTakeStore 鏂规硶 + @Override + @Transactional + public void startupFullTakeStore2(StockOutParam param, Long userId) { + List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); + List<String> locs = new ArrayList<>(); + for(StockOutParam.LocDetl one : param.getLocDetls()){ locs.add(one.getLocNo()); } List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls()); boolean sign = true; boolean isfull = false; // 鏄惁澶熸暟閲� - //Double isOut = 0.0; - Map<String, Double> isOuts = new HashMap<>(); + Double isOut = 0.0; List<String> locNoWeighting = new ArrayList<>(); - log.info("canshu:{}", stockOutParamLocDetlSort); for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) { - if (isOuts.get(locDetl.getMatnr()) == null) { - isOuts.put(locDetl.getMatnr(), locDetl.getCount()); - } else { - isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) + locDetl.getCount()); - } - } - log.info("canshu:{}", JSON.toJSONString(isOuts)); - - for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) { - -// SameMatCount smc = new SameMatCount(); -// if (Cools.isEmpty(sameMatCounts)) { -// smc.setMatnr(locDetl.getMatnr()); -// smc.setNeedOutCount(locDetl.getCount()); -// sameMatCounts.add(smc); -// } else { -// for (SameMatCount sameMatCount : sameMatCounts) { -// if (sameMatCount.getMatnr().equals(locDetl.getMatnr())) { -// sameMatCount.setNeedOutCount(locDetl.getCount() + sameMatCount.getNeedOutCount()); -// //smc.setMatnr(sameMatCount.getMatnr()); -// smc.setNeedOutCount(sameMatCount.getNeedOutCount()); -// } -// } -// } - - - if (Cools.isEmpty(locNoWeighting)) { + if (Cools.isEmpty(locNoWeighting)){ locNoWeighting.add(locDetl.getLocNo()); - } else { - if (!Utils.getLocNoWeighting(locNoWeighting, locDetl.getLocNo())) { + }else { + if (!Utils.getLocNoWeighting(locNoWeighting,locDetl.getLocNo())){ locNoWeighting.add(locDetl.getLocNo()); sign = true; } } - - if (sign) { + if (sign){ 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)) { + if (locMast.getLocType2().equals((short)3)){ groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo()); sign = false; } for (String locNo : groupOuterSingleLoc) { //姣忎釜搴撲綅鐨勫簱浣嶆槑缁� - if (locs.contains(locNo)) continue; + 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")) { + 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())) { //涓嶆槸鐩稿悓鐗╂枡 - if (!sign) { + if (!sign){ locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme())); - System.out.println("1"); } continue; } - if (!param.getOutSite().equals(214) && !param.getOutSite().equals(114)) { - if (detl.getAnfme() >= isOuts.get(detl.getMatnr())) { - // if (detl.getAnfme() >= locDetl.getCount()) { - locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), isOuts.get(detl.getMatnr()))); - System.out.println("2"); - //isOut = locDetl.getCount(); + 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())); - isOuts.put(detl.getMatnr(), isOuts.get(detl.getMatnr()) - detl.getAnfme()); - System.out.println(isOuts.get(locDetl.getMatnr())); + isOut = detl.getAnfme(); } } else { //寮哄埗涓嶆槸鐩稿悓鐗╂枡 locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme())); -// System.out.println("4"); } } } } - if (!isfull && isOuts.get(locDetl.getMatnr()) != null && isOuts.get(locDetl.getMatnr()) > 0) { - if (locDetl.getCount() >= isOuts.get(locDetl.getMatnr())) { - locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), isOuts.get(locDetl.getMatnr()))); - isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) - locDetl.getCount()); -// System.out.println(23); - } else { - locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount())); - isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) - locDetl.getCount()); -// System.out.println("1222"); - } + if (!isfull) { - - //locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut)); + locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut)); // locDetls.add(locDetl); } } @@ -331,6 +337,7 @@ // List<StockOutParam.LocDetl> locDetls = param.getLocDetls(); + // ArrayList<String> locNos = new ArrayList<>(); // List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); // ArrayList<String> matnrs = new ArrayList<>();//鐩殑鍋氭暟鎹幓閲� @@ -381,18 +388,18 @@ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } - for (LocDetlDto locDetlDto : locDetlDtos) { - if (locs.contains(locDetlDto.getLocDetl().getLocNo())) { + for (LocDetlDto locDetlDto:locDetlDtos){ + if (locs.contains(locDetlDto.getLocDetl().getLocNo())){ locDetlDto.setSign(true); } } if (!locDetlDtos.isEmpty()) { LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); - if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 stockOut2(staNo, locDetlDtos, null, userId); - } else { - throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); + }else { + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$()); } } else { throw new CoolException("搴撳瓨涓嶅瓨鍦�"); -- Gitblit v1.9.1