From fcb71b8fc63f74cd00d3faa76c73f4c5566ee352 Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期三, 07 五月 2025 23:23:09 +0800
Subject: [PATCH] 解决提升机在本层,而没有锁提升机的问题

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  331 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 236 insertions(+), 95 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 98bd691..eb854c2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
@@ -21,14 +22,8 @@
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.dispatcher.ShuttleDispatchUtils;
 import com.zy.core.enums.*;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LiftSlave;
-import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.LiftAssignCommand;
-import com.zy.core.model.command.LiftCommand;
-import com.zy.core.model.command.ShuttleAssignCommand;
-import com.zy.core.model.command.ShuttleCommand;
+import com.zy.core.model.*;
+import com.zy.core.model.command.*;
 import com.zy.core.model.protocol.ForkLiftStaProtocol;
 import com.zy.core.model.protocol.LiftProtocol;
 import com.zy.core.model.protocol.ShuttleProtocol;
@@ -39,6 +34,7 @@
 import com.zy.core.thread.LiftThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.core.thread.impl.FyDevpThread;
+import com.zy.core.thread.impl.NormalLedThread;
 import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -184,32 +180,33 @@
                     LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                     String errMsg = "";
                     if (!back && staProtocol.isBackErr()) {
-                        errMsg = "瓒呭寮傚父";
+                        errMsg = "鍚庤秴闄�";
                         back = true;
                     }
                     if (!back && staProtocol.isHighErr()) {
                         errMsg = "瓒呴珮寮傚父";
                         back = true;
                     }
-                    if (!back && staProtocol.isRightErr()) {
-                        errMsg = "瓒呴暱寮傚父";
+                    if (!back && staProtocol.isWeightErr()) {
+                        errMsg = "瓒呴噸寮傚父";
                         back = true;
                     }
-                    if (!back && staProtocol.isWeightErr()) {
-                        errMsg = "瓒呴噸";
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "鍙宠秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isLeftErr()) {
+                        errMsg = "宸﹁秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBarcodeErr()) {
+                        errMsg = "鎵爜寮傚父";
                         back = true;
                     }
                     // 閫�鍥�
                     if (back) {
-                        if (!staProtocol.isLoading()) {
-                            continue;
-                        }
-                        if (!staProtocol.isPakMk()) {
-                            continue;
-                        }
                         // led 寮傚父鏄剧ず
                         if (ledThread != null) {
-                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                             ledThread.error(errMsg);
                         }
                     }
@@ -228,7 +225,7 @@
                             staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
                             staProtocol.setStaNo(Short.parseShort(String.valueOf(inSta.getStaNo() + 1)));
                             MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
+                            News.taskInfo(wrkMast.getWrkNo(), "杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
                             wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
                             wrkMast.setModiTime(new Date());
                             wrkMastService.updateById(wrkMast);
@@ -266,7 +263,7 @@
 //                                createInTaskParam.setBarcode(barcode);
 //
 //                                R result = openUtils.createInTask(createInTaskParam);
-//                                News.info("鍒涘缓鍏ュ簱浠诲姟锛屼换鍔℃暟鎹�={}锛學MS鍝嶅簲={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject), JSON.toJSON(result));
+//                                 News.taskInfo(wrkMast.getWrkNo(),"鍒涘缓鍏ュ簱浠诲姟锛屼换鍔℃暟鎹�={}锛學MS鍝嶅簲={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject), JSON.toJSON(result));
 //                                try{
 //                                    String msg = "";
 //                                    HashMap<String, String> hashMap = new HashMap<>();
@@ -292,6 +289,9 @@
                                         .setJson(JSON.toJSONString(hashMap))
                                         .build()
                                         .doPost();
+                                if (!Cools.isEmpty(msg) && "璇峰厛缁勬墭".equalsIgnoreCase(msg)) {
+                                    ledThread.error(msg);
+                                }
                                 News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
                             }
                         } catch (Exception e) {
@@ -307,6 +307,42 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
+                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                    String errMsg = "";
+                    boolean back = false;
+                    if (!back && staProtocol.isBackErr()) {
+                        errMsg = "鍚庤秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isHighErr()) {
+                        errMsg = "瓒呴珮寮傚父";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isWeightErr()) {
+                        errMsg = "瓒呴噸寮傚父";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "鍙宠秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isLeftErr()) {
+                        errMsg = "宸﹁秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBarcodeErr()) {
+                        errMsg = "鎵爜寮傚父";
+                        back = true;
+                    }
+                    // 閫�鍥�
+                    if (back) {
+
+                        // led 寮傚父鏄剧ず
+                        if (ledThread != null) {
+                            ledThread.error(errMsg);
+                        }
+                    }
+
                     Short workNo = staProtocol.getWorkNo();
                     if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) {
                         String barcode = staProtocol.getBarcode();
@@ -340,6 +376,9 @@
                                             .setJson(JSON.toJSONString(hashMap))
                                             .build()
                                             .doPost();
+                                    if (!Cools.isEmpty(msg) && "璇峰厛缁勬墭".equalsIgnoreCase(msg)) {
+                                        ledThread.error(msg);
+                                    }
                                     News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
                                 }
                             } catch (Exception e) {
@@ -386,19 +425,44 @@
                 if (wrkMast.getStaNo() == 1026) {
                     locNo = "1200305";
                 }
+                //鑾峰彇鎻愬崌鏈轰俊鎭�
+                LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
+                if (liftThread == null) {
+                    continue;
+                }
+
+                LiftProtocol liftProtocol = liftThread.getStatus();
+                if (liftProtocol == null) {
+                    continue;
+                }
+
+                if (!liftThread.isIdle()) {
+                    continue;
+                }
+
+
+                //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
+                if (liftProtocol.getHasTray()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                    continue;
+                }
+
+
                 boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_DEVP");
                 if (!dispatchShuttle) {
-                    News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                     continue;
                 } else {
-                    News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け鎴愬姛", wrkMast.getWrkNo());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け鎴愬姛", wrkMast.getWrkNo());
                 }
                 wrkMast.setWrkSts(WrkStsType.INBOUND_SHUTTLE_RUN.sts);
                 wrkMast.setLiftNo(null);
                 wrkMast.setSystemMsg("");//娓呯┖娑堟伅
                 wrkMast.setModiTime(new Date());
                 if (!wrkMastService.updateById(wrkMast)) {
-                    News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+                } else {
+                    setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 }
             }
         }
@@ -420,33 +484,46 @@
             if (staProtocol == null) {
                 continue;
             }
-
+            List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.OUTBOUND_SHUTTLE_RUN.sts, WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts).in("sta_no", 1013, 1024));
+            if (wrkMastList != null && wrkMastList.size() >= 2) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃烦杩囷紝瀛樺湪2鏉″伐浣滄。", wrkMast.getWrkNo());
+                continue;
+            }
             if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 continue;
             }
             if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                continue;
+            }
+            StaProtocol staProtocol2 = station.get(wrkMast.getStaNo() + 2);
+            if (staProtocol2.isLoading()) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿222", wrkMast.getWrkNo(), wrkMast.getStaNo() + 2);
                 continue;
             }
             String locNo = "1200301";
             if (wrkMast.getStaNo() == 1024) {
                 locNo = "1200305";
             }
+
             boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP");
             if (!dispatchShuttle) {
-                News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 continue;
             }
-
+            WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);
             wrkMast.setSystemMsg("");//娓呯┖娑堟伅
             wrkMast.setModiTime(now);
+            if (wrkMast2 != null) {
+                wrkMast.setShuttleNo(wrkMast2.getShuttleNo());
+            }
             if (!wrkMastService.updateById(wrkMast)) {
-                News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
             } else {
                 WrkMast wrkMast1 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
-                News.info("{}浠诲姟锛岀Щ鍔ㄤ换鍔$敓鎴愭垚鍔熲�斺��1", wrkMast1.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀Щ鍔ㄤ换鍔$敓鎴愭垚鍔熲�斺��1", wrkMast1.getWrkNo());
             }
         }
     }
@@ -509,17 +586,44 @@
                         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));
+                        News.taskInfo(wrkMast.getWrkNo(), "杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
                         wrkMast.setWrkSts(WrkStsType.OUTBOUND_DEVP_RUN.sts);
                         wrkMast.setModiTime(new Date());
                         wrkMast.setShuttleNo(null);
                         wrkMastService.updateById(wrkMast);
+                        setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                     }
                 }
             }
         }
     }
 
+
+    private void setLedData(Integer wrkNo, Integer staNo) {
+        try {
+            Map<String, Object> param = new HashMap<>();
+            param.put("taskNo", wrkNo);
+            String response = null;
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath("/rpc/led/getTask2")
+                    .setJson(JSON.toJSONString(param))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            if (code.equals(200)) {
+                String data = jsonObject.getString("data");
+                List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
+                redisUtil.set("LED_" + staNo, wrkDetls, 30);
+                log.info("鐢佃鏈烘暟鎹缃細{},{}", staNo, data);
+            } else {
+                log.info("鐢佃鏈烘暟鎹缃紓甯革細{},{}", wrkNo, response);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
     /**
      * 鍒濆鍖栧疄鏃跺湴鍥�
@@ -629,7 +733,7 @@
             if (!shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) {
                 //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃�
                 shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), liftSta.getLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄨ緭閫佺珯鐐硅繘琛屽彇璐�
-                News.info("{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                 return false;
             }
 
@@ -855,17 +959,17 @@
             for (WrkMast wrkMast : wrkMasts) {
                 boolean step0 = this.liftInExecuteStep0(wrkMast);//璁惧涓婅蛋
                 if (!step0) {
-                    return;
+                    continue;
                 }
 
                 boolean step1 = this.liftInExecuteStep1(wrkMast);//鎻愬崌鏈烘惉杩�
                 if (!step1) {
-                    return;
+                    continue;
                 }
 
                 boolean step2 = this.liftInExecuteStep2(wrkMast);//瑙﹀彂鎼繍浠诲姟
                 if (!step2) {
-                    return;
+                    continue;
                 }
             }
         } catch (Exception e) {
@@ -896,19 +1000,27 @@
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led);
             String errMsg = "";
             if (!back && staProtocol.isBackErr()) {
-                errMsg = "瓒呭寮傚父";
+                errMsg = "鍚庤秴闄�";
                 back = true;
             }
             if (!back && staProtocol.isHighErr()) {
                 errMsg = "瓒呴珮寮傚父";
                 back = true;
             }
-            if (!back && staProtocol.isRightErr()) {
-                errMsg = "瓒呴暱寮傚父";
+            if (!back && staProtocol.isWeightErr()) {
+                errMsg = "瓒呴噸寮傚父";
                 back = true;
             }
-            if (!back && staProtocol.isWeightErr()) {
-                errMsg = "瓒呴噸";
+            if (!back && staProtocol.isRightErr()) {
+                errMsg = "鍙宠秴闄�";
+                back = true;
+            }
+            if (!back && staProtocol.isLeftErr()) {
+                errMsg = "宸﹁秴闄�";
+                back = true;
+            }
+            if (!back && staProtocol.isBarcodeErr()) {
+                errMsg = "鎵爜寮傚父";
                 back = true;
             }
             // 閫�鍥�
@@ -920,21 +1032,22 @@
                 }
             }
             String barcode = staProtocol.getBarcode();
-            if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
-                return false;
-            }
-            if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
-                return false;
-            }
+
 
             if (!staProtocol.isLoading()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
             if (wrkMast.getSourceStaNo() != 1031) {
+                if (!staProtocol.isAutoing()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                    return false;
+                }
+                if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+                    return false;
+                }
                 if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) {
-                    News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
                     return false;
                 }
             }
@@ -957,13 +1070,14 @@
 
             staProtocol = staProtocol.clone();
             staProtocol.setStaNo(staNo);
-            staProtocol.setWorkNo(wrkMast.getMainWrkNo().shortValue());
+            staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
             boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
 
             wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
             wrkMast.setSystemMsg("");//娓呯┖娑堟伅
             wrkMast.setModiTime(now);
             if (wrkMastService.updateById(wrkMast)) {
+                setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 return false;
             }
             return false;
@@ -990,22 +1104,23 @@
                 return false;
             }
 
+
             //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
-            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
-            if (liftWrkMast != null) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
-                return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
-            }
+//            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
+//            if (liftWrkMast != null) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+//                return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
+//            }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
             if (liftProtocol.getHasTray()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
@@ -1029,27 +1144,27 @@
             }
 
             if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
 
             if (!staProtocol.isLoading()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
             if (sourceStaNo == 1023) {
                 if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) {
-                    News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                     return false;
                 }
             } else if (sourceStaNo == 1012) {
-                if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) {
-                    News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                     return false;
                 }
             } else if (sourceStaNo == 1032) {
                 if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) {
-                    News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                     return false;
                 }
             }
@@ -1060,9 +1175,9 @@
             } else if (wrkMast.getSourceStaNo() == 1032) {
                 locNo = "0200308";
             }
-            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
+            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
             if (!dispatchShuttle) {
-                News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 return false;
             }
 
@@ -1088,6 +1203,16 @@
             assignCommand.setLiftNo(liftProtocol.getLiftNo().shortValue());
             assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());
             assignCommand.setTaskMode(LiftCommandModeType.PALLET_IN.id.shortValue());
+
+
+            //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
+            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
+            if (liftWrkMast != null) {
+                if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                    return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
+                }
+            }
 
             wrkMast.setWrkSts(WrkStsType.INBOUND_LIFT_RUN.sts);
             wrkMast.setLiftNo(liftProtocol.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
@@ -1124,13 +1249,13 @@
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
             if (!liftProtocol.getHasTray()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 //            String locNo = "0200305";
@@ -1139,7 +1264,7 @@
 //            }
 //            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
 //            if (!dispatchShuttle) {
-//                News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+//                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
 //                return false;
 //            }
 
@@ -1163,12 +1288,12 @@
             for (WrkMast wrkMast : wrkMasts) {
                 boolean step1 = this.liftOutExecuteStep1(wrkMast);//瑙﹀彂鎼繍浠诲姟
                 if (!step1) {
-                    return;
+                    continue;
                 }
 
                 boolean step2 = this.liftOutExecuteStep2(wrkMast);//鎻愬崌鏈烘惉杩�
                 if (!step2) {
-                    return;
+                    continue;
                 }
             }
         } catch (Exception e) {
@@ -1191,17 +1316,14 @@
             }
 
             if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
             if (wrkMast.getStaNo() == 1031) {
-//                if (staProtocol.getOutInModel() != 1) {
-//                    News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
-//                    return false;
-//                }
+
             } else {
                 if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
-                    News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                     return false;
                 }
             }
@@ -1214,10 +1336,10 @@
             }
             boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_LIFT");
             if (!dispatchShuttle) {
-                News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 return false;
             } else {
-                News.info("{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
             }
 
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);
@@ -1258,13 +1380,13 @@
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
             if (!liftProtocol.getHasTray()) {
-                News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
@@ -1280,17 +1402,17 @@
             }
 
             if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
 
             Integer sourceLev = liftThread.getLevToStaNo(Utils.getLev(wrkMast.getSourceLocNo()));
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
-            List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getMainWrkNo(), sourceLev, wrkMast.getStaNo());
+            List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getWrkNo(), sourceLev, wrkMast.getStaNo());
             LiftCommand liftCommand = liftCommands.get(0);
 //            if (wrkMast.getMainWrkNo() != null) {
-            liftCommand.setTaskNo(wrkMast.getMainWrkNo());
+            liftCommand.setTaskNo(wrkMast.getWrkNo());
 //            } else {
 //                int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
 //                liftCommand.setTaskNo(deviceWrk);//鏇存崲闅忔満浠诲姟鍙�
@@ -1303,7 +1425,7 @@
             LiftAssignCommand assignCommand = new LiftAssignCommand();
             assignCommand.setCommands(commands);
             assignCommand.setLiftNo(liftProtocol.getLiftNo().shortValue());
-            assignCommand.setTaskNo(wrkMast.getMainWrkNo().shortValue());
+            assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());
             assignCommand.setTaskMode(LiftCommandModeType.PALLET_OUT.id.shortValue());
 
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_LIFT_RUN.sts);
@@ -1312,6 +1434,7 @@
             wrkMast.setModiTime(now);
 
             if (wrkMastService.updateById(wrkMast)) {
+                setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 //涓嬪彂浠诲姟
                 liftAction.assignWork(wrkMast.getLiftNo(), assignCommand);
                 return false;
@@ -1363,6 +1486,7 @@
                                 continue;//灏忚溅鏈埌杈剧洰鏍囧眰
                             }
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts);
+                            wrkMast.setLiftNo(null);
                             shuttleThread.setSyncTaskNo(0);
                         } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) {
                             //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚
@@ -1427,6 +1551,11 @@
                             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) {
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_13.sts);
+                            WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
+                            if (wrkMast1 != null) {
+                                wrkMast1.setShuttleNo(wrkMast.getShuttleNo());
+                                log.info("瀵逛富宸ヤ綔妗h繘琛岀粦瀹氬皬杞︼紝涓轰簡灏忚溅杩涜绉昏溅,{},{}", wrkMast1.getWrkNo(), wrkMast.getShuttleNo());
+                            }
                             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) {
@@ -1457,7 +1586,7 @@
                         if (wrkMastService.updateById(wrkMast)) {
                             //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
                             shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-                            News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
+                            News.taskInfo(wrkMast.getWrkNo(), "鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
                         } else {
                             News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
                         }
@@ -1471,7 +1600,7 @@
                                 shuttleThread.setTaskNo(0);
                                 //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
                                 shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-                                News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
+                                News.taskInfo(wrkMast.getWrkNo(), "鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
                             }
                         }
                     }
@@ -1525,7 +1654,7 @@
         if (wrkMast.getWrkSts() == WrkStsType.NEW_LOC_MOVE.sts) {
             if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
                 boolean result = shuttleDispatchUtils.searchDispatchShuttle(wrkMast.getWrkNo(), null, wrkMast.getSourceLocNo(), null);//璋冨害灏忚溅鍒拌揣鐗╃偣杩涜鍙栬揣
-                News.info("{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
 
                 if (result) {
                     wrkMast.setWrkSts(WrkStsType.LOC_MOVE_SHUTTLE_TAKE.sts);//灏忚溅鎼繍涓�  501.鐢熸垚绉诲簱浠诲姟 ==> 502.灏忚溅鍙栬揣涓�
@@ -1569,7 +1698,7 @@
             }
 
             boolean result = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), null, wrkMast.getLocNo(), wrkMast.getShuttleNo(), "TRANSPORT");//璋冨害灏忚溅鏀捐揣
-            News.info("{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
+            News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
 
             if (result) {
                 wrkMast.setWrkSts(WrkStsType.LOC_MOVE_SHUTTLE_PUT.sts);//灏忚溅鎼繍涓�  502.灏忚溅鍙栬揣涓� ==> 503.灏忚溅鏀捐揣涓�
@@ -1687,7 +1816,7 @@
                         if (wrkMastService.updateById(wrkMast)) {
                             liftThread.setSyncTaskNo(0);
                             liftThread.setProtocolStatus(LiftProtocolStatusType.IDLE);
-                            News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
+                            News.taskInfo(wrkMast.getWrkNo(), "鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
                         } else {
                             News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
                         }
@@ -1714,7 +1843,7 @@
                         wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
                         wrkMast.setModiTime(new Date());
                         if (wrkMastService.updateById(wrkMast)) {
-                            News.info("杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵�併�傝緭閫佺嚎鍙�={},瀹岀粨宸ヤ綔鍙�={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
+                            News.taskInfo(wrkMast.getWrkNo(), "杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵�併�傝緭閫佺嚎鍙�={},瀹岀粨宸ヤ綔鍙�={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
                         } else {
                             News.error("杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵��,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傝緭閫佺嚎鍙�={}锛屽畬缁撳伐浣滃彿={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
                         }
@@ -1725,11 +1854,11 @@
                         staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
                         staProtocol.setStaNo(Short.parseShort(String.valueOf(1135)));
                         MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                        News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
+                        News.taskInfo(wrkMast.getWrkNo(), "杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
                         wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
                         wrkMast.setModiTime(new Date());
                         if (wrkMastService.updateById(wrkMast)) {
-                            News.info("杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵�併�傝緭閫佺嚎鍙�={},瀹岀粨宸ヤ綔鍙�={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
+                            News.taskInfo(wrkMast.getWrkNo(), "杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵�併�傝緭閫佺嚎鍙�={},瀹岀粨宸ヤ綔鍙�={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
                         } else {
                             News.error("杈撻�佺嚎宸茬‘璁や笖浠诲姟瀹屾垚鐘舵��,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傝緭閫佺嚎鍙�={}锛屽畬缁撳伐浣滃彿={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo());
                         }
@@ -1748,6 +1877,14 @@
         try {
             this.recShuttleErr();
             this.recLiftErr();
+            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            ledThread.errorReset();
+            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 2);
+            ledThread.errorReset();
+            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 3);
+            ledThread.errorReset();
+            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 4);
+            ledThread.errorReset();
         } catch (Exception e) {
             News.error("recErr fail", e);
         }
@@ -1990,7 +2127,7 @@
                     continue;
                 }
 
-                News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId());
+                News.taskInfo(wrkMast.getWrkNo(), "淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId());
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -2271,6 +2408,10 @@
      * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
      */
     public synchronized void ioConvert() {
+        for (LedSlave led : slaveProperties.getLed()) {
+            NormalLedThread ledThread = (NormalLedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            ledThread.reset();
+        }
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             FyDevpThread devpThread = (FyDevpThread) SlaveConnection.get(SlaveType.Devp, 1);

--
Gitblit v1.9.1