From baf4037cd0078c6ba1e30dfb949e0a6287f1b022 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期五, 08 十二月 2023 15:11:55 +0800 Subject: [PATCH] 增加自动补货开关 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 57 insertions(+), 3 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 87a71e8..9ab7e0c 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -221,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(), paramLocDetl.getContainerCode()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getSuppCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -281,6 +281,53 @@ dtos.add(new OutLocDto(locNo, locDetlDto)); } } + + //妫�娴嬫槸鍚︿负娴呭簱浣� + boolean sign=false; + String th = ""; + for (String locNo : locNos) { + if (sign) { + break; + } + + 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", outerLoc)); + if (locMast != null) { + if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) { + sign = true; + th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + } + } + if (sign){ + throw new CoolException("鍑哄簱澶辫触锛�"+th); + } + + //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜************** + HashMap<String, Object> tmpMap = new HashMap<>(); + if (staNo.getDevNo() == 325 || staNo.getDevNo() == 331 || staNo.getDevNo() == 333 || staNo.getDevNo() == 339) { + int[] data = {325,331,333,339}; + for (String locNo : locNos) { + List<String> groupOuterLoc = Utils.getGroupDeepLoc(locNo); + if (groupOuterLoc.isEmpty()) { + continue; + } + int index = 0; + for (String loc : groupOuterLoc) { + tmpMap.put(loc, data[index++]); + } + } + } + //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜************** + Integer ioType = null; List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList()); // 鐢熸垚宸ヤ綔妗� @@ -314,6 +361,13 @@ if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) { stnNo = staDesc.getCrnStn(); sourceStaNo = staDesc.getStnNo(); + + //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜************** + Object autoStnNo = tmpMap.get(dto.getLocNo());//鑾峰彇绯荤粺鑷姩鍒嗛厤绔欑偣 + if (autoStnNo != null) { + sourceStaNo = Integer.parseInt(autoStnNo.toString()); + } + //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜************** } int lev = Utils.getLev(dto.getLocNo()); @@ -698,7 +752,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(),paramLocDetl.getContainerCode()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getSuppCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -854,7 +908,7 @@ while (iterator1.hasNext()) { LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } - if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { + if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(),adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(),adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(),adjust.getDeadTime())) { if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 -- Gitblit v1.9.1