From b1786c43535c920c905c2ed7a1d3d2f78b48e4a5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 26 五月 2023 11:16:25 +0800 Subject: [PATCH] 高频入库找不到库位后找低频库位 --- src/main/java/com/zy/common/service/CommonService.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 613ad1b..097f83e 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -188,6 +188,9 @@ } } else if (matType == 2) {//楂橀绫诲瀷鍏ユ渶澶栦晶搴撲綅 locMast = getLocNoStep3(locTypeDto, crnNos); + if (locMast == null) { + locMast = getLocNoStep4(locTypeDto); + } if (locMast != null) { //鎵惧埌搴撲綅锛岃繑鍥瀌to return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto @@ -271,14 +274,23 @@ //鎵炬渶澶栦晶绌哄簱浣� List<LocMast> locMasts = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos); for (LocMast locMast0 : locMasts) { - //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�) + //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆 + boolean flag = false; List<String> insideLoc = Utils.getGroupInsideLoc(locMast0.getLocNo()); - List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc); - for (LocMast mast : insideLocMast) { - if (mast.getLocSts().equals("R") || mast.getLocSts().equals("S")) { - //R鎴朣(鍑哄叆搴撻绾︾姸鎬侊紝涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅) - continue; + if (insideLoc.size() > 0) { + List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc); + for (LocMast mast : insideLocMast) { + if (!mast.getLocSts().equals("D") + && !mast.getLocSts().equals("F") + && !mast.getLocSts().equals("X")) { + //D銆丗銆乆(涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅) + flag = true; + break; + } } + } + if (flag) { + continue; } // 娴呭簱浣嶇鍚堝昂瀵告娴� @@ -299,8 +311,39 @@ //浣庨绫诲瀷锛岀洿鎺ユ壘娣锋斁鍖哄煙 private LocMast getLocNoStep4(LocTypeDto locTypeDto) { LocMast locMast = null; - LocMast locMast0 = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1()); - if (locMast0 != null) { + List<LocMast> locMasts = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1()); + for (LocMast locMast0 : locMasts) { + //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆 + boolean flag = false; + List<String> insideLoc = Utils.getGroupInsideLoc(locMast0.getLocNo()); + if (insideLoc.size() > 0) { + List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc); + for (LocMast mast : insideLocMast) { + if (!mast.getLocSts().equals("D") + && !mast.getLocSts().equals("F") + && !mast.getLocSts().equals("X")) { + //D銆丗銆乆(涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅) + flag = true; + break; + } + } + } + //妫�娴嬪綋鍓嶅簱浣嶅渚у簱浣嶆槸鍚︿负O(绌哄簱浣�) + List<String> outerLoc = Utils.getGroupOuterLoc(locMast0.getLocNo()); + if (outerLoc.size() > 0) { + List<LocMast> outerLocMast = locMastService.selectByLocNos(outerLoc); + for (LocMast mast : outerLocMast) { + if (!mast.getLocSts().equals("O")) { + //涓嶆槸绌哄簱浣嶏紝鎵句笅涓�涓� + flag = true; + break; + } + } + } + if (flag) { + continue; + } + // 娴呭簱浣嶇鍚堝昂瀵告娴� if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父 -- Gitblit v1.9.1