From f4756eb3081fe22aee7bad094539b44bac94e4af Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期三, 23 十一月 2022 09:40:24 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   48 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 6351c95..cd96c3e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1367,7 +1367,13 @@
         if (wrkMast.getWrkSts() == 17) {
             //鏌ユ壘搴撲綅
             boolean flag = false;
-            String[] deeplocs  = Utils.getDeepLocs(wrkMast.getSourceLocNo());
+//            append
+            Integer row = Utils.getGroupRow(wrkMast.getSourceLocNo());
+            Integer bay = Utils.getBay(wrkMast.getSourceLocNo());
+            Integer lev = Utils.getLev(wrkMast.getSourceLocNo());
+
+            String locNo = Utils.append(row, bay, lev);
+            String[] deeplocs  = Utils.getDeepLocs(locNo);
             if(!Cools.isEmpty(deeplocs)){
                 for(String deepLocNo : deeplocs) {
                     LocMast deepLoc = locMastService.selectById(deepLocNo);
@@ -1383,7 +1389,7 @@
                         wrkMast.setIoPri((double)9999);
                         wrkMast.setWrkSts(2L);
                         wrkMast.setLocNo(deepLocNo);
-                        wrkMast.setSteNo(null);
+                        wrkMast.setSteNo(0);
                         wrkMast.setModiTime(new Date());
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
                             log.error("淇敼宸ヤ綔妗g姸鎬� 17.绉诲簱瀹屾垚 => 2.绉诲簱鍐嶅叆搴撲腑 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
@@ -1461,10 +1467,23 @@
                 // 鏈夊皬杞�
                 if (steNo != null) {
                     // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣
-                    if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
+                    if (wrkMast.getWrkSts() == 2L && (wrkMast.getSteNo() == null || wrkMast.getSteNo() == 0)) {
                         // 娌℃湁鍏朵粬浠诲姟
                         if (null == wrkMastMapper.selectPakin(slave.getId(), steNo)) {
-                            this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo());
+                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                            SteProtocol steProtocol = steThread.getSteProtocol();
+                            if (steProtocol == null) { return; }
+                            if(steProtocol.getLoca()==3 || steProtocol.getLoca()==4){
+                                //灏忚溅宸茬粡鍦ㄥ緟鏈轰綅鏃讹紝鏃犻渶涓嬪彂鍒板緟鏈轰綅浠诲姟锛岀洿鎺ユ洿鏂扮姸鎬佸井3锛屽悓鏃剁粦瀹氬皬杞�
+                                wrkMast.setWrkSts(3L);
+                                wrkMast.setSteNo(steNo);
+                                wrkMast.setModiTime(new Date());
+                                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                    log.error("淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                }
+                            } else {
+                                this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo());
+                            }
                         }
                     }
                     // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 3.灏忚溅寰呮惉锛堝皬杞︿笉鐢ㄦ惉杩愶紝宸茬粡鍦ㄥ綋鍓嶇粍搴撲綅锛� / 6.灏忚溅寰呭叆  ===>> 7.鍚婅溅鍏ュ簱涓�
@@ -1509,7 +1528,7 @@
                     }
                     // 娌℃湁灏忚溅
                 } else {
-                    if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
+                    if (wrkMast.getWrkSts() == 2L && (wrkMast.getSteNo() == null || wrkMast.getSteNo() == 0)) {
                         // 瀵绘壘褰撳墠鍫嗗灈鏈哄搴旂殑灏忚溅
                         SteThread steThread = queryIdleCar(wrkMast);
                         if (steThread != null) {
@@ -2472,8 +2491,9 @@
 //                        }
                         if (locMastService.isOutMost(wrkMast.getLocNo())) {
                             wrkMast.setWrkSts(17L);
+                            wrkMast.setSteNo(0);
                             // 榛樿鐩爣搴撲綅鏄┖鏉�
-                            String locSts = "D";
+                            String locSts = "";
                             // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
                             if (wrkMast.getEmptyMk().equals("N")) {
                                 locSts = "F";
@@ -2483,6 +2503,11 @@
                                     continue;
                                 }
                             }
+                            if(Cools.isEmpty(locSts)){
+                                log.error("搴撲綅绉昏浆 ===>> 搴撳瓨鐘舵�佷负绌猴紱[婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+                                continue;
+                            }
+
                             // 淇敼婧愬簱浣嶇姸鎬� ==> O
                             LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
                             if (null != sourceLoc) {
@@ -3577,10 +3602,19 @@
                     rows = "18,19";
                     break;
             }
-            LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no",crn.getId())
+            LocMast loc = null;
+            List<LocMast> locs = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no",crn.getId())
                                                 .eq("loc_type1",shallowLoc.getLocType1())
                                                 .eq("loc_sts","O")
                                                 .last(" and row1 in (" + rows + ") order by bay1,lev1"));
+            for (LocMast one : locs){
+                if(Utils.getGroupRow(one.getLocNo()) != Utils.getGroupRow(shallowLoc.getLocNo())
+                    || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
+                    || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
+                    loc = one;
+                    break;
+                }
+            }
 
             if (null == loc) {
                 log.error("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());

--
Gitblit v1.9.1