From 0d81063735b221b81413784db00aff62e77f637b Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 29 九月 2025 13:24:20 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 38 insertions(+), 12 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 baa398a..6e13098 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -974,6 +974,8 @@
                         } else {
                             this.inPut(crn, crnProtocol, mark);
                         }
+                    } else {
+                        log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗�  ===銆嬪紓甯�");
                     }
                 } else if (crnProtocol.getLoaded() == 1 && crnProtocol.getLoadedTwo() == 0) {
                     // 鍫嗗灈鏈哄伐浣�1鏈夌墿鏂�
@@ -996,6 +998,8 @@
                                 this.inPut(crn, crnProtocol, mark);
                             }
                         }
+                    } else {
+                        log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗�  ===銆嬪紓甯�");
                     }
                 } else if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 1) {
                     // 鍫嗗灈鏈哄伐浣�2鏈夌墿鏂�
@@ -1018,6 +1022,8 @@
                                 this.inPut(crn, crnProtocol, mark);
                             }
                         }
+                    } else {
+                        log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗�  ===銆嬪紓甯�");
                     }
                 }
             }
@@ -1169,8 +1175,8 @@
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             boolean flag = false;
 
-            // 鑾峰彇宸ヤ綔鐘舵�佷负103锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
-            WrkMast wrkMast = wrkMastMapper.selectPakInStep103(slave.getId());
+            // 鑾峰彇宸ヤ綔鐘舵�佷负104锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+            WrkMast wrkMast = wrkMastMapper.selectPakInStep104(slave.getId());
             if (null == wrkMast) {
                 News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}");
 //                log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
@@ -1231,9 +1237,9 @@
                 News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
 
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 104.鍚婅溅鍏ュ簱鍙栬揣涓�
+                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 105.鍚婅溅鍏ュ簱鍙栬揣涓�
                 Date now = new Date();
-                wrkMast.setWrkSts(104L);
+                wrkMast.setWrkSts(105L);
                 wrkMast.setCrnStrTime(now);
                 wrkMast.setModiTime(now);
                 if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -1366,7 +1372,7 @@
                     crnCommand.setPltType(crnStation);
                     crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
 //                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                    crnCommand.setTaskMode(CrnTaskModeType.TAKE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
                     crnCommand.setSourcePosX((short) (sourceSta.getRow1() + slave.getOffset()));     // 婧愬簱浣嶆帓
                     crnCommand.setSourcePosY((short) (sourceSta.getBay1() + slave.getOffset()));     // 婧愬簱浣嶅垪
                     crnCommand.setSourcePosZ((short) (sourceSta.getLev1() + slave.getOffset()));     // 婧愬簱浣嶅眰
@@ -1379,7 +1385,7 @@
                     } else {
                         // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                         Date now = new Date();
-                        wrkMast.setWrkSts(105L);
+                        wrkMast.setWrkSts(106L);
                         wrkMast.setCrnStrTime(now);
                         wrkMast.setModiTime(now);
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -1394,13 +1400,13 @@
     }
 
     /**
-     * 鍑哄簱鍙栬揣
+     * 鍑哄簱鏀捐揣
      */
     public synchronized void outPut(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
         News.warnNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-            List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep105(slave.getId(), crnStn.getStaNo());
+            List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep107(slave.getId(), crnStn.getStaNo());
             for (WrkMast wrkMast : wrkMasts) {
                 if (wrkMast == null) {
                     continue;
@@ -1494,6 +1500,11 @@
                         }
                     }
 
+                    if (wrkMastMapper.selectByPltType(slave.getId(), wrkMast.getPltType()) == null) {
+                        News.error("" + mark + " - 1" + " - 9" + " - 鍫嗗灈鏈烘敼宸ヤ綅瀛樺湪宸ヤ綔妗�,宸ヤ綅={}", wrkMast.getPltType());
+                    }
+
+
                     // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                         break;
@@ -1510,7 +1521,7 @@
                     crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
                     crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
 //                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                    crnCommand.setTaskMode(CrnTaskModeType.PUT); // 浠诲姟妯″紡:  搴撲綅绉昏浆
 //                    crnCommand.setSourcePosX((short) (sourceSta.getRow1() + slave.getOffset()));     // 婧愬簱浣嶆帓
 //                    crnCommand.setSourcePosY((short) (sourceSta.getBay1() + slave.getOffset()));     // 婧愬簱浣嶅垪
 //                    crnCommand.setSourcePosZ((short) (sourceSta.getLev1() + slave.getOffset()));     // 婧愬簱浣嶅眰
@@ -1523,7 +1534,7 @@
                     } else {
                         // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                         Date now = new Date();
-                        wrkMast.setWrkSts(106L);
+                        wrkMast.setWrkSts(108L);
                         wrkMast.setCrnStrTime(now);
                         wrkMast.setModiTime(now);
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -2088,6 +2099,7 @@
 
         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
         CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setPltType(getCrnStation(wrkMast.getSourceLocNo()));
         crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
         crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
@@ -2660,7 +2672,14 @@
             LocMast loc = null;
             for (Integer row : rows) {
                 if (Utils.isDeepLoc(slaveProperties, row)) {
-                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                    if (shallowLoc.getBay1() == 1) {
+                        loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1(), 1);
+                    } else if (shallowLoc.getRow1() == 29) {
+                        loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1(), 29);
+                    } else {
+                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                    }
+
 
                     if (loc != null) {
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -2679,7 +2698,14 @@
             if (null == loc) {
                 for (Integer row : rows) {
                     if (Utils.isShallowLoc(slaveProperties, row)) {
-                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        if (shallowLoc.getBay1() == 1) {
+                            loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1(), 1);
+                        } else if (shallowLoc.getRow1() == 29) {
+                            loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1(), 29);
+                        } else {
+                            loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        }
+
 
                         if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());

--
Gitblit v1.9.1