From c9e446957405d666a3fb45d8cbfa434625fa960d Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 26 五月 2023 10:47:13 +0800
Subject: [PATCH] 检测当前库位外侧库位是否为O

---
 src/main/java/com/zy/common/service/CommonService.java |   63 ++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 37b6c9c..a080000 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -118,27 +118,29 @@
             case 103://103鍏ュ簱绔�
                 whsType = 1;
                 start = 1;
-                end = 11;
+                end = 14;
 
                 //103绔欏垎閰�1锛�2鍫嗗灈鏈�
                 crnNos.add(1);
                 crnNos.add(2);
 
-                //鍒嗛厤1锛�7锛�8鎺�
+                //鍒嗛厤1锛�7锛�8锛�14鎺�
                 rows.add(1);
                 rows.add(7);
                 rows.add(8);
+                rows.add(14);
                 break;
             case 203://203鍏ュ簱绔�
                 whsType = 2;
-                start = 12;
+                start = 8;
                 end = 21;
 
-                //203绔欏垎閰�3锛�4鍫嗗灈鏈�
+                //203绔欏垎閰�2锛�3鍫嗗灈鏈�
+                crnNos.add(2);
                 crnNos.add(3);
-                crnNos.add(4);
 
-                //鍒嗛厤14锛�15锛�21鎺�
+                //鍒嗛厤8锛�14锛�15锛�21鎺�
+                rows.add(8);
                 rows.add(14);
                 rows.add(15);
                 rows.add(21);
@@ -267,8 +269,23 @@
     private LocMast getLocNoStep3(LocTypeDto locTypeDto, List<Integer> crnNos) {
         LocMast locMast = null;
         //鎵炬渶澶栦晶绌哄簱浣�
-        LocMast locMast0 = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
-        if (locMast0 != null) {
+        List<LocMast> locMasts = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
+        for (LocMast locMast0 : locMasts) {
+            //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�)
+            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鎴朣(鍑哄叆搴撻绾︾姸鎬侊紝涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
+                    flag = true;
+                    break;
+                }
+            }
+            if (flag) {
+                continue;
+            }
+
             // 娴呭簱浣嶇鍚堝昂瀵告娴�
             if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                 // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父
@@ -287,8 +304,34 @@
     //浣庨绫诲瀷锛岀洿鎺ユ壘娣锋斁鍖哄煙
     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) {
+            //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�)
+            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鎴朣(鍑哄叆搴撻绾︾姸鎬侊紝涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
+                    flag = true;
+                    break;
+                }
+            }
+            //妫�娴嬪綋鍓嶅簱浣嶅渚у簱浣嶆槸鍚︿负O(绌哄簱浣�)
+            List<String> outerLoc = Utils.getGroupOuterLoc(locMast0.getLocNo());
+            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