From be99dea0c47c9a86eae906b46d67e14081191ad8 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期六, 12 四月 2025 12:53:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java |   14 --
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |  202 ++++++++++++++++++---------------------
 src/main/java/com/zy/asrs/entity/WrkMast.java                  |    5 +
 src/main/java/com/zy/core/MainProcess.java                     |    5 
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java           |   31 +++--
 5 files changed, 125 insertions(+), 132 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index f32251e..a7bb018 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -139,6 +139,11 @@
      */
     @ApiModelProperty(value= "鏉$爜")
     private String barcode;
+    /**
+     *
+     */
+    @ApiModelProperty(value= "")
+    private Integer mainWrkNo;
 
     /**
      * 鍥涘悜绌挎杞﹀彿
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 1c9de47..c60f1f9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.domain.enums.NotifyMsgType;
@@ -10,8 +9,6 @@
 import com.zy.asrs.utils.NotifyUtils;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.MapNode;
-import com.zy.common.model.SearchLocParam;
-import com.zy.common.model.StartupDto;
 import com.zy.common.model.enums.NavigationMapType;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.*;
@@ -38,7 +35,6 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -92,6 +88,11 @@
     @Autowired
     private NoLiftOutServiceImpl noLiftOutService;
 
+
+    public static List<Integer> staNosIn = new ArrayList<Integer>() {{
+        add(1015);
+        add(1026);
+    }};
 
     private boolean isInEnable(DevpThread devpThread, Integer staNo) {
         if (staNo == null) {
@@ -216,32 +217,33 @@
                     continue;
                 }
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing() && staProtocol.isLoading()
-                        && isInEnable(devpThread, inSta.getStaNo())
-                        && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
-                        && staProtocol.isPakMk()
-                ) {
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) {
                     String barcode = staProtocol.getBarcode();
                     if (!Cools.isEmpty(barcode)) {
                         News.info("鏉$爜鎵弿鍣ㄦ娴嬫潯鐮佷俊鎭細{}", barcode);
                     }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
-                            .eq("source_sta_no", inSta.getStaNo())
-                            .eq("wrk_sts", WrkStsType.NEW_INBOUND)
-                            .eq("barcode", barcode));
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("wrk_sts", WrkStsType.NEW_INBOUND).eq("barcode", barcode));
                     if (wrkMast != null) {
                         News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
                         if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) {
-                            MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol));
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
+                            //鍒ゆ柇鏃舵彁鍗囨満渚э紝杩樻槸鏃犳彁鍗囨満娴�
+                            if (inSta.getStaNo() == 1014 || inSta.getStaNo() == 1025) {
+                                staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
+                                staProtocol.setStaNo(Short.parseShort(String.valueOf(wrkMast.getStaNo())));
+                                MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol));
+                                News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
+                                wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
+                                wrkMast.setModiTime(new Date());
+                                wrkMastService.updateById(wrkMast);
+                            } else {
+
+                            }
                         }
                         continue;
                     }
-
                     try {
-                        String wmsUrl = "127.0.0.1:8080/fyxcwms";
+                        /*String wmsUrl = "127.0.0.1:8080/fyxcwms";
                         SearchLocParam param = new SearchLocParam();
                         param.setBarcode(barcode);
                         param.setIoType(1);
@@ -256,10 +258,6 @@
                         JSONObject jsonObject = JSON.parseObject(response);
                         Integer code = jsonObject.getInteger("code");
                         if (code.equals(200)) {
-                            MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol));
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
-
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
 //                                String wmsLocNo = dto.getLocNo();
@@ -304,7 +302,7 @@
                                     .build()
                                     .doPost();
                             News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
-                        }
+                        }*/
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
@@ -315,6 +313,38 @@
         }
     }
 
+    public synchronized void generateInboundWrk2() {
+        DevpSlave devpSlave = slaveProperties.getDevp().get(0);
+        // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+        for (DevpSlave.Sta inSta : devpSlave.getInSta()) {
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocol = devpThread.getStation().get(inSta);
+            if (staProtocol == null) {
+                return;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            Short finishWorkNo = staProtocol.getFinishWorkNo();
+            WrkMast wrkMast = wrkMastService.selectByWorkNo(Integer.valueOf(finishWorkNo));
+            if (wrkMast != null) {
+                if (wrkMast.getSourceStaNo() == 1015 || wrkMast.getSourceStaNo() == 1026) {
+
+                    //璋冨害杞﹁締
+//                    boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(null, staProtocol.getLocNo(), wrkMast.getLocNo(), param.getShuttleNo(), "TRANSPORT_DEVP");
+//                    if (!dispatchShuttle) {
+//                        News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃皟搴﹁嚦鍙栬揣鐐瑰け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                        return;
+//                    }
+                } else {
+                    //鍒ゆ柇鎻愬崌鏈�
+
+
+                }
+            }
+        }
+
+    }
+
 
     /**
      * 鍑哄簱鍒板嚭搴撳彛
@@ -322,62 +352,33 @@
     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) {
-//
-//                }
+        for (DevpSlave.Sta inSta : devpSlave.getInSta()) {
+            if (inSta.getStaNo() == 1014 || inSta.getStaNo() == 1025) {
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
+                List<WrkMast> wrkSts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts));
+                for (WrkMast wrkMast : wrkSts) {
+                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+                        // 鏌ヨ宸ヤ綔妗�
+                        if (wrkMast == null) {
+                            continue;
+                        }
+                        staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
+                        staProtocol.setStaNo(Short.parseShort(String.valueOf(wrkMast.getStaNo())));
+                        MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol));
+                        News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
+                        wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
+                        wrkMast.setModiTime(new Date());
+                        wrkMastService.updateById(wrkMast);
 
-                //  鍒ゆ柇杈撻�佺嚎鍜屽皬杞︾姸鎬佺姸鎬佺瓑寰呯‘璁�
-//                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);
-//                }
+                    }
+                }
+            } else {
 
             }
         }
@@ -421,10 +422,7 @@
      */
     public synchronized void shuttleInExecute() {
         try {
-            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-                    .in("wrk_sts"
-                            , WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts
-                    ));
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts));
             for (WrkMast wrkMast : wrkMasts) {
                 boolean step1 = this.shuttleInExecuteStep1(wrkMast);//灏忚溅鎼叆搴撲腑
                 if (!step1) {
@@ -534,10 +532,7 @@
      */
     public synchronized void shuttleOutExecute() {
         try {
-            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-                    .in("wrk_sts"
-                            , WrkStsType.NEW_OUTBOUND.sts
-                    ));
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_OUTBOUND.sts));
             for (WrkMast wrkMast : wrkMasts) {
                 boolean step1 = this.shuttleOutExecuteStep1(wrkMast);//灏忚溅鎼嚭搴撲腑
                 if (!step1) {
@@ -720,8 +715,7 @@
 
                 //鍥涘悜绌挎杞︾姸鎬佷负绛夊緟纭銆佸皬杞﹀浜庣┖闂茬姸鎬�
                 if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id  //浠诲姟瀹屾垚绛夊緟纭
-                        && shuttleProtocol.getTaskNo() != 0
-                ) {
+                        && shuttleProtocol.getTaskNo() != 0) {
                     //灏嗕换鍔℃。鏍囪涓哄畬鎴�
                     WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo());
                     if (wrkMast != null) {
@@ -808,35 +802,31 @@
                             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 if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_12.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_12.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_13.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_OUT_NO_LIFT_10.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_10.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_11.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_OUT_NO_LIFT_8.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_9.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_OUT_NO_LIFT_6.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_6.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_7.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_OUT_NO_LIFT_4.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.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_OUT_NO_LIFT_2.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_2.sts) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_3.sts);
                             shuttleThread.setSyncTaskNo(0);
                             notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡
-                        }
-
-
-
-                        else {
+                        } else {
                             continue;
                         }
 
@@ -1029,9 +1019,7 @@
                 }
 
                 //鎻愬崌鏈轰负绛夊緟纭涓旂┖闂�
-                if (liftProtocol.getProtocolStatus() == LiftProtocolStatusType.WAITING.id
-                        && liftProtocol.getTaskNo() != 0
-                ) {
+                if (liftProtocol.getProtocolStatus() == LiftProtocolStatusType.WAITING.id && liftProtocol.getTaskNo() != 0) {
                     //灏嗕换鍔℃。鏍囪涓哄畬鎴�
                     WrkMast wrkMast = wrkMastService.selectByWorkNo(liftProtocol.getTaskNo());
                     if (wrkMast != null) {
@@ -1061,10 +1049,10 @@
                         } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_9.sts) {
                             //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                             wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_10.sts);
-                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) {
                             //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_9.sts);
-                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) {
+                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) {
                             //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts);
                         }
@@ -1126,8 +1114,7 @@
                         int errorCode = Integer.parseInt(shuttleProtocol.getErrorCode());
                         BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(errorCode);
                         String errName = basShuttleErr == null ? "鏈煡寮傚父" : basShuttleErr.getErrName();
-                        BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(
-                                null,    // 缂栧彿
+                        BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(null,    // 缂栧彿
                                 wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
                                 now,    // 鍙戠敓鏃堕棿
                                 null,    // 缁撴潫鏃堕棿
@@ -1199,8 +1186,7 @@
                         BasLiftErr basLiftErr = basLiftErrService.queryByCode(Integer.parseInt(liftProtocol.getErrorCode()));
                         String errName = basLiftErr == null ? "鏈煡寮傚父" : basLiftErr.getErrName();
 
-                        BasLiftErrLog basLiftErrLog = new BasLiftErrLog(
-                                null,    // 缂栧彿
+                        BasLiftErrLog basLiftErrLog = new BasLiftErrLog(null,    // 缂栧彿
                                 wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
                                 now,    // 鍙戠敓鏃堕棿
                                 null,    // 缁撴潫鏃堕棿
diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index e2eceb7..5c4a431 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.task;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.domain.enums.NotifyMsgType;
 import com.zy.asrs.entity.LocMast;
@@ -10,13 +9,9 @@
 import com.zy.asrs.service.WrkMastLogService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.utils.NotifyUtils;
-import com.zy.common.utils.HttpHandler;
 import com.zy.core.enums.LocStsType;
-import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -42,7 +37,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeIn(){
+    public void executeIn() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_INBOUND.sts));
         if (wrkMasts.isEmpty()) {
             return;
@@ -85,7 +80,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeOut(){
+    public void executeOut() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_OUTBOUND.sts));
         if (wrkMasts.isEmpty()) {
             return;
@@ -128,7 +123,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeLocMove(){
+    public void executeLocMove() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_LOC_MOVE.sts));
         if (wrkMasts.isEmpty()) {
             return;
@@ -148,7 +143,7 @@
                 continue;
             }
 
-            LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo);
+            LocMast sourceLocMast = locMastService.queryByLoc(sourceLocNo);
             if (sourceLocMast == null) {
                 log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
                 continue;
@@ -191,7 +186,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeMove(){
+    public void executeMove() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                 .in("wrk_sts"
                         , WrkStsType.COMPLETE_MOVE.sts
@@ -205,6 +200,18 @@
         }
 
         for (WrkMast wrkMast : wrkMasts) {
+            WrkMast main = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
+            if (main != null) {
+                if (main.getIoType() == WrkIoType.IN.id) {
+                    main.setWrkSts(WrkStsType.INBOUND_SHUTTLE_RUN_COMPLETE.sts);
+                } else if (main.getIoType() == WrkIoType.OUT.id) {
+                    main.setWrkSts(WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts);
+                }
+                main.setModiTime(new Date());
+                if (wrkMastService.updateById(main)) {
+                    log.info("鏇存柊涓诲伐浣滄。[workNo={}]澶辫触", wrkMast.getWrkNo());
+                }
+            }
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                 log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
@@ -218,7 +225,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeCharge(){
+    public void executeCharge() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts));
         if (wrkMasts.isEmpty()) {
             return;
@@ -241,7 +248,7 @@
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeCancelTask(){
+    public void executeCancelTask() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "taskCancel"));
         if (wrkMasts.isEmpty()) {
             return;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 51ace7f..084bd25 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -43,9 +43,10 @@
                     //zhangc
                     //杈撻�佺嚎
                     // 鍏ュ簱
-                   // mainService.generateInboundWrk();
+                    mainService.generateInboundWrk();
+                    mainService.generateInboundWrk2();
                     // 鍑哄簱
-                  //  mainService.stnToOutStn();
+                    mainService.stnToOutStn();
 
                     //鍒濆鍖栧疄鏃跺湴鍥�
                     mainService.initRealtimeBasMap();
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 3c7c31d..c5e2346 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -14,21 +14,15 @@
 import com.zy.common.model.NavigateNode;
 import com.zy.common.model.enums.NavigationMapType;
 import com.zy.common.service.CommonService;
-import com.zy.common.utils.ForkLiftUtils;
-import com.zy.common.utils.LiftUtils;
 import com.zy.common.utils.NavigateUtils;
 import com.zy.core.News;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.LiftSlave;
 import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.protocol.*;
+import com.zy.core.model.protocol.ShuttleProtocol;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.ForkLiftThread;
-import com.zy.core.thread.LiftThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
@@ -119,7 +113,7 @@
             if (currentLev == Utils.getLev(locNo)) {
                 //宸ヤ綔妗fゼ灞傜浉鍚岀殑绌挎杞�
                 sameLev.add(shuttleThread);
-            }else {
+            } else {
                 //宸ヤ綔妗d笉鍚屾ゼ灞傜殑绌挎杞�
                 diffLev.add(shuttleThread);
             }
@@ -284,6 +278,7 @@
         wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
+        wrkMast.setMainWrkNo(mainWrkMast.getWrkNo());
         boolean res = wrkMastService.insert(wrkMast);
         if (!res) {
             News.error("灏忚溅杩佺Щ --- 淇濆瓨宸ヤ綔妗eけ璐ワ紒 绌挎杞﹀彿锛�" + shuttleNo);
@@ -314,7 +309,7 @@
         List<ShuttleGatherResult> list = new ArrayList<>();
         for (BasShuttle basShuttle : basShuttles) {
             String idleLoc = basShuttle.getIdleLoc();
-            if(Cools.isEmpty(idleLoc)) {
+            if (Cools.isEmpty(idleLoc)) {
                 continue;
             }
 
@@ -395,7 +390,6 @@
 
         return levCount < Integer.parseInt(config.getValue());
     }
-
 
 
     /**

--
Gitblit v1.9.1