From ed361165f4518ab5eaa94bfc5fc97f30603619f4 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期四, 29 六月 2023 14:45:09 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index e2be8c9..f70ed5b 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
@@ -16,6 +17,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Random;
 
@@ -111,6 +113,7 @@
         int start;
         int end;
         Integer matType = null;//鐗╂枡绫诲瀷
+        Integer crnNo  = 0;
         //鏍规嵁鍏ュ簱绔欙紝鍐冲畾鎼滅储鎸囧畾鍫嗗灈鏈�
         ArrayList<Integer> crnNos = new ArrayList<>();
         //鏍规嵁鍏ュ簱绔欙紝鎵惧埌搴撲綅缁勬渶鍐呬晶鎺�
@@ -130,6 +133,7 @@
                 rows.add(7);
                 rows.add(8);
                 rows.add(14);
+                crnNo = 1;
                 break;
             case 203://203鍏ュ簱绔�
                 whsType = 2;
@@ -145,6 +149,7 @@
                 rows.add(14);
                 rows.add(15);
                 rows.add(21);
+                crnNo = 3;
                 break;
             default:
                 throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
@@ -156,13 +161,23 @@
         // 鐩爣搴撲綅
         LocMast locMast = null;
 
+        boolean sign = false;
+
+        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+        locMast = getLocNoStep1(staDescId, locTypeDto, start, end);
+        if (locMast != null) {
+            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+            sign=true;
+        }
+
+        //3鍙峰彲浠ュ叆搴撳墠蹇呴』鎵撳紑鎺у埗
         if (!Cools.isEmpty(matNos)) {
             for (String matNo : matNos) {
                 Mat mat = matService.selectByMatnr(matNo);
                 if (matType == null) {
                     matType = mat.getMatType();
                 }
-                if (matType != mat.getMatType()) {
+                if (!matType.equals(mat.getMatType())) {
                     throw new CoolException("娣锋斁鐗╂枡绫诲瀷涓嶄竴鑷�");
                 }
             }
@@ -173,19 +188,19 @@
             }
         }
 
-        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
-        locMast = getLocNoStep1(staDescId, locTypeDto, start, end);
-        if (locMast != null) {
-            //鎵惧埌搴撲綅锛岃繑鍥瀌to
-            return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto
-        }
-
-        if (matType != null) {
+        if (!sign && matType != null) {
             if (matType == 1) {//鍗曞搧绫诲瀷鍏ュ簱
                 locMast = getLocNoStep2(locTypeDto, matNos, rows, crnNos);
                 if (locMast != null) {
                     //鎵惧埌搴撲綅锛岃繑鍥瀌to
-                    return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto
+                    sign=true;
+                } else {
+                    //鍗曞搧娌℃湁鎵惧埌搴撲綅锛屾壘楂橀娣锋斁鍖哄煙搴撲綅
+                    locMast = getLocNoStep3(locTypeDto, crnNos);
+                    if (locMast != null) {
+                        //鎵惧埌搴撲綅锛岃繑鍥瀌to
+                        sign=true;
+                    }
                 }
             } else if (matType == 2) {//楂橀绫诲瀷鍏ユ渶澶栦晶搴撲綅
                 locMast = getLocNoStep3(locTypeDto, crnNos);
@@ -195,33 +210,44 @@
                 }
                 if (locMast != null) {
                     //鎵惧埌搴撲綅锛岃繑鍥瀌to
-                    return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto
+                    sign=true;
                 }
             } else if (matType == 3) {//浣庨娣锋斁绫诲瀷
                 locMast = getLocNoStep4(locTypeDto, crnNos);
                 if (locMast != null) {
                     //鎵惧埌搴撲綅锛岃繑鍥瀌to
-                    return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto
+                    sign=true;
                 }
             }
         }
 
-        //----------------2023.06.02鍏煎浠g爜锛屽悗鏈熷簱浣嶈鍒欑鍚堣姹傚悗鍙垹闄�------------------------
-        //濡傛灉浠ヤ笂閮芥壘涓嶅埌搴撲綅锛屽垯寮哄埗鎼滅储1銆�2鍫嗗灈鏈虹┖搴撲綅杩涜鍏ュ簱锛屼繚闅�3鍙峰爢鍨涙満搴撲綅閮芥槸绗﹀悎瑕佹眰鐨�
-        EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
-        wrapper.eq("loc_type1", locTypeDto.getLocType1());
-        wrapper.in("crn_no", "1,2");
-        wrapper.eq("loc_sts", "O");
-        List<LocMast> locMasts = locMastService.selectList(wrapper);
-        for (LocMast mast : locMasts) {
-            //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
-            if (Utils.checkInsideLocIsDFX(mast.getLocNo())) {
-                //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
-                continue;
-            }
 
-            //鎵惧埌搴撲綅锛岃繑鍥瀌to
-            return getLocNoFinalStep(staDescId, sourceStaNo, mast);//杩斿洖dto
+
+//        if (!sign){
+//            //----------------2023.06.02鍏煎浠g爜锛屽悗鏈熷簱浣嶈鍒欑鍚堣姹傚悗鍙垹闄�------------------------
+//            //濡傛灉浠ヤ笂閮芥壘涓嶅埌搴撲綅锛屽垯寮哄埗鎼滅储2鍫嗗灈鏈虹┖搴撲綅杩涜鍏ュ簱锛屼繚闅�3鍙峰爢鍨涙満搴撲綅閮芥槸绗﹀悎瑕佹眰鐨�
+//            EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+//            wrapper.eq("loc_type1", locTypeDto.getLocType1());
+//            wrapper.in("crn_no", "2");
+//            wrapper.eq("loc_sts", "O");
+//            List<LocMast> locMasts = locMastService.selectList(wrapper);
+//            for (LocMast mast : locMasts) {
+//                //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
+//                if (Utils.checkInsideLocIsDFX(mast.getLocNo())) {
+//                    //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
+//                    continue;
+//                }
+//                if(sourceStaNo==103 && mast.getRow1()>14) continue;
+//                if(sourceStaNo==103 && mast.getRow1()<8) continue;
+//                if(sourceStaNo==203 && mast.getRow1()<15) continue;
+//                //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//                locMast=mast;
+//                sign = true;
+//            }
+//        }
+
+        if (sign){
+            return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//杩斿洖dto
         }
         //----------------2023.06.02鍏煎浠g爜end---------------------
 
@@ -307,7 +333,7 @@
                         // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父
                         if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) {
                             // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                            if (locMastService.checkEmptyCount(locMast0, 10)) {
+                            if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()!=2) {
                                 locMast = locMast0;
                                 break;
                             }
@@ -334,7 +360,7 @@
                     // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父
                     if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) {
                         // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                        if (locMastService.checkEmptyCount(locMast0, 10)) {
+                        if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()!=2) {
                             locMast = locMast0;
                             break;
                         }
@@ -392,7 +418,7 @@
         List<LocMast> locMasts = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1(), randomCrnNo);
         for (LocMast locMast0 : locMasts) {
             //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
-            if (Utils.checkInsideLocIsDFX(locMast0.getLocNo())) {
+            if (Utils.checkInsideLocIsDFX2(locMast0.getLocNo())) {
                 //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
                 continue;
             }
@@ -439,7 +465,13 @@
         StaDesc staDesc = staDescService.selectOne(wrapper);
         if (Cools.isEmpty(staDesc)) {
             log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}, crnNo={}", staDescId, sourceStaNo, locMast.getCrnNo());
-            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+            if (sourceStaNo==103 &&  locMast.getCrnNo()==3){
+                throw new CoolException("璇锋斁鍒�203鍏ュ簱鍙�");
+            }else if (sourceStaNo==203 &&  locMast.getCrnNo()==1){
+                throw new CoolException("璇锋斁鍒�103鍏ュ簱鍙�");
+            }else {
+                throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+            }
         }
 
         // 妫�娴嬬洰鏍囩珯

--
Gitblit v1.9.1