From bafb86306b03d36a8c192253b3f3f1d14db02eac Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期五, 11 四月 2025 13:43:49 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  126 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 103 insertions(+), 23 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 162bc07..c43df73 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -90,24 +90,8 @@
     private BasLiftOptService basLiftOptService;
     @Autowired
     private LiftAction liftAction;
-
-    //鍏ュ簱绔欑偣
-    public static final ArrayList<Integer> inSta = new ArrayList<Integer>() {{
-        add(1012);
-        add(1014);
-        add(1022);
-        add(1025);
-        add(1032);
-    }};
-
-    //鍑哄簱绔欑偣
-    public static final ArrayList<Integer> outSta = new ArrayList<Integer>() {{
-        add(1012);
-        add(1014);
-        add(1022);
-        add(1025);
-        add(1032);
-    }};
+    @Autowired
+    private NoLiftInServiceImpl noLiftInService;
 
 
     private boolean isInEnable(DevpThread devpThread, Integer staNo) {
@@ -180,7 +164,7 @@
      */
     public synchronized void generateInboundWrk() {
         try {
-            DevpSlave devpSlave = slaveProperties.getDevpSlave().get(0);
+            DevpSlave devpSlave = slaveProperties.getDevp().get(0);
             // 閬嶅巻鍏ュ簱鍙�
             for (DevpSlave.Sta inSta : devpSlave.getInSta()) {
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
@@ -232,7 +216,6 @@
                     }
                     continue;
                 }
-
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && isInEnable(devpThread, inSta.getStaNo())
@@ -243,7 +226,6 @@
                     if (!Cools.isEmpty(barcode)) {
                         News.info("鏉$爜鎵弿鍣ㄦ娴嬫潯鐮佷俊鎭細{}", barcode);
                     }
-
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                             .eq("source_sta_no", inSta.getStaNo())
@@ -331,6 +313,74 @@
             }
         } catch (Exception e) {
             e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鍑哄簱鍒板嚭搴撳彛
+     */
+    public synchronized void stnToOutStn() {
+        DevpSlave devpSlave = slaveProperties.getDevp().get(0);
+        // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+        for (DevpSlave.Sta outSta : devpSlave.getOutSta()) {
+            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
+            StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo());
+            if (staProtocol == null) {
+                continue;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+                // 鏌ヨ宸ヤ綔妗�
+//                WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+//                if (wrkMast == null) {
+//                    continue;
+//                }
+//                // 鍒ゆ柇宸ヤ綔妗f潯浠�
+//                if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+//
+//                }
+
+                //  鍒ゆ柇杈撻�佺嚎鍜屽皬杞︾姸鎬佺姸鎬佺瓑寰呯‘璁�
+//                if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
+//                        && crnProtocol.statusType == CrnStatusType.WAITING
+//                        && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+//                    log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+//
+//                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//
+//                    // 涓嬪彂绔欑偣淇℃伅
+//                    staProtocol.setWorkNo(wrkMast.getWrkNo());
+//                    staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(), wrkMast.getSourceStaNo()));
+//                    if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+//                        log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+//                        continue;
+//                    } else {
+//                        log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+//                    }
+//
+//                    // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+//                    wrkMast.setWrkSts(14L);
+//                    wrkMast.setCrnEndTime(new Date());
+//                    if (wrkMastMapper.updateById(wrkMast) != 0) {
+//                        // 澶嶄綅鍫嗗灈鏈�
+//                        log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo());
+//                        crnThread.setResetFlag(true);
+//                    } else {
+//                        News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+//                    }
+//
+//                } else {
+//                    News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+//                            + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO
+//                            + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue()
+//                            + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+//                            + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0  // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+//                }
+
+            }
         }
     }
 
@@ -737,7 +787,30 @@
                             wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
                             shuttleThread.setSyncTaskNo(0);
                             notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
-                        } else {
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_1.sts) {
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_2.sts);
+                            shuttleThread.setSyncTaskNo(0);
+                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_3.sts) {
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_4.sts);
+                            shuttleThread.setSyncTaskNo(0);
+                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_7.sts) {
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_8.sts);
+                            shuttleThread.setSyncTaskNo(0);
+                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_11.sts) {
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_12.sts);
+                            shuttleThread.setSyncTaskNo(0);
+                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_13.sts) {
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_14.sts);
+                            shuttleThread.setSyncTaskNo(0);
+                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
+                        }
+
+
+                        else {
                             continue;
                         }
 
@@ -1389,6 +1462,12 @@
                         } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_LIFT_TO_SHUTTLE_TRANSPORT_LIFT_OUT.sts) {
                             //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                             wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_TO_SHUTTLE_COMPLETE_TRANSPORT_LIFT_OUT.sts);
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_5.sts) {
+                            //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_6.sts);
+                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_9.sts) {
+                            //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
+                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_10.sts);
                         }
 
                         wrkMast.setModiTime(new Date());
@@ -1891,7 +1970,7 @@
                 if ("TRANSPORT_LIFT".equals(wrkMast.getMk())) {
                     this.shuttleMoveExecuteTransportLift(wrkMast);
                 } else if ("TRANSPORT_DEVP".equals(wrkMast.getMk())) {
-
+                    noLiftInService.shuttleMoveExecute(wrkMast);
                 } else {
                     this.shuttleMoveExecuteMove(wrkMast);
                 }
@@ -1928,6 +2007,7 @@
         }
     }
 
+
     private void shuttleMoveExecuteTransportLift(WrkMast wrkMast) {
         LiftThread liftThread = LiftUtils.getRecentLift(wrkMast.getLocNo());
         if (liftThread == null) {

--
Gitblit v1.9.1