From 1f41a2028871f46d28c1298acedec48321fba46d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 25 九月 2025 16:22:25 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/NyLiftThread.java |   82 ++++++++++++++++++++++------------------
 1 files changed, 45 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/NyLiftThread.java b/src/main/java/com/zy/core/thread/impl/NyLiftThread.java
index b495438..10ddf70 100644
--- a/src/main/java/com/zy/core/thread/impl/NyLiftThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyLiftThread.java
@@ -3,13 +3,10 @@
 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.DateUtils;
 import com.core.common.SpringUtils;
-import com.zy.asrs.entity.BasLift;
 import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.entity.DeviceDataLog;
-import com.zy.asrs.service.BasLiftService;
 import com.zy.asrs.service.DeviceDataLogService;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.ExecuteSupport;
@@ -184,8 +181,6 @@
             liftProtocol.setHasTray(data.getInteger("hasTray") == 1);
             //鏈夊皬杞�
             liftProtocol.setHasCar(data.getInteger("hasCar") == 1);
-            //鍑哄叆搴撴ā寮�
-            liftProtocol.setIOMode(data.getInteger("iOMode"));
             //鏁呴殰鐮�
             liftProtocol.setErrorCode(data.getInteger("errorCode"));
             //褰撳墠灞�
@@ -194,12 +189,19 @@
             //************琛ュ厖鎵╁睍瀛楁*************
             InnerLiftExtend liftExtend = (InnerLiftExtend) liftProtocol.getExtend();
             liftProtocol.setExtend(liftExtend);
-            liftExtend.setFrontOverrun(data.getBoolean("frontOverrun"));
-            liftExtend.setBackOverrun(data.getBoolean("backOverrun"));
-            liftExtend.setLeftOverrun(data.getBoolean("leftOverrun"));
-            liftExtend.setRightOverrun(data.getBoolean("rightOverrun"));
-            liftExtend.setOverHeight(data.getBoolean("overHeight"));
-            liftExtend.setOverWeight(data.getBoolean("overWeight"));
+            JSONObject extend = data.getJSONObject("extend");
+            liftExtend.setFrontOverrun(extend.getInteger("frontOverrun") == 1);
+            liftExtend.setBackOverrun(extend.getInteger("backOverrun") == 1);
+            liftExtend.setLeftOverrun(extend.getInteger("leftOverrun") == 1);
+            liftExtend.setRightOverrun(extend.getInteger("rightOverrun") == 1);
+            liftExtend.setOverHeight(extend.getInteger("overHeight") == 1);
+            liftExtend.setOverWeight(extend.getInteger("overWeight") == 1);
+            liftExtend.setPlcTaskNoComplete(extend.getInteger("plcTaskNoComplete"));
+
+            if (!liftExtend.getPlcTaskNoComplete().equals(liftProtocol.getPlcTaskNo())) {
+                //璁惧鐘舵��
+                liftProtocol.setDeviceStatus(LiftDeviceStatusType.BUSY.id);
+            }
 
             //璇诲彇绔欑偣
             JSONArray stationList = data.getJSONArray("stationList");
@@ -229,7 +231,7 @@
 
             this.realtimeOriginData = JSON.toJSONString(data);
 
-            if (System.currentTimeMillis() - liftProtocol.getDeviceDataLog() > 1000 * 5) {
+            if (System.currentTimeMillis() - liftProtocol.getDeviceDataLog() > 1000 * 2) {
                 //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
                 //淇濆瓨鏁版嵁璁板綍
                 DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
@@ -349,29 +351,10 @@
     }
 
     @Override
-    public CommandResponse switchIOMode(LiftCommand command) {
-        CommandResponse response = new CommandResponse(false);
-        try {
-            //鍙戝嚭璇锋眰
-            String resultKey = requestCommand(command);
-            //鏌ヨ璇锋眰缁撴灉
-            JSONObject result = queryCommandStatus(resultKey);
-            if (result == null) {
-                return response;//璇锋眰澶辫触
-            }
-            if(!result.getString("result").equals("success")) {
-                return response;//璇锋眰澶辫触
-            }
-
-            this.liftProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-            response.setMessage(JSON.toJSONString(result));
-            response.setResult(true);
-            return response;
-        } catch (Exception e) {
-            e.printStackTrace();
-            response.setMessage(e.getMessage());
-            return response;
-        }
+    public CommandResponse switchIOMode(LiftIoModeType type) {
+        CommandResponse response = new CommandResponse(true);
+        liftProtocol.setIOModeType(type);
+        return response;
     }
 
     @Override
@@ -388,6 +371,7 @@
                 || this.liftProtocol.getPlcTaskNo() == null
                 || this.liftProtocol.getProtocolStatus() == null
                 || this.liftProtocol.getModel() == null
+                || this.liftProtocol.getDeviceStatus() == null
                 || this.liftProtocol.getErrorCode() == null
                 || this.liftProtocol.getExtend() == null
         ) {
@@ -400,6 +384,7 @@
 //                && this.liftProtocol.getPlcTaskNo() == 0
                 && this.liftProtocol.getTaskNo() == 0
                 && this.liftProtocol.getModel() == 2
+                && this.liftProtocol.getDeviceStatus() == LiftDeviceStatusType.IDLE.id
                 && this.liftProtocol.getErrorCode() == 0
                 && !extend.getFrontOverrun()
                 && !extend.getBackOverrun()
@@ -427,6 +412,7 @@
 
         if (this.liftProtocol.getProtocolStatus() == null
                 || this.liftProtocol.getModel() == null
+                || this.liftProtocol.getDeviceStatus() == null
                 || this.liftProtocol.getErrorCode() == null
                 || this.liftProtocol.getExtend() == null
         ) {
@@ -437,6 +423,7 @@
 
         boolean res = this.liftProtocol.getProtocolStatus() == LiftProtocolStatusType.IDLE.id
                 && this.liftProtocol.getModel() == 2
+                && this.liftProtocol.getDeviceStatus() == LiftDeviceStatusType.IDLE.id
                 && this.liftProtocol.getErrorCode() == 0
                 && !extend.getFrontOverrun()
                 && !extend.getBackOverrun()
@@ -488,6 +475,10 @@
         command.setPick(pick);
         command.setPut(put);
 
+        LiftStaProtocol pickSta = findSta(pick);
+        LiftStaProtocol putSta = findSta(put);
+        command.setPickLev(pickSta.getLev());
+        command.setPutLev(putSta.getLev());
         return command;
     }
 
@@ -500,6 +491,10 @@
         command.setPick(pick);
         command.setPut(put);
 
+        LiftStaProtocol pickSta = findSta(pick);
+        LiftStaProtocol putSta = findSta(put);
+        command.setPickLev(pickSta.getLev());
+        command.setPutLev(putSta.getLev());
         return command;
     }
 
@@ -512,6 +507,10 @@
         command.setPick(pick);
         command.setPut(put);
 
+        LiftStaProtocol pickSta = findSta(pick);
+        LiftStaProtocol putSta = findSta(put);
+        command.setPickLev(pickSta.getLev());
+        command.setPutLev(putSta.getLev());
         return command;
     }
 
@@ -636,6 +635,15 @@
         }
     }
 
+    private LiftStaProtocol findSta(Integer staNo) {
+        for (LiftStaProtocol liftStaProtocol : this.liftStaProtocols) {
+            if (liftStaProtocol.getSiteId().equals(staNo)) {
+                return liftStaProtocol;
+            }
+        }
+        return null;
+    }
+
     /**
      * 鎵╁睍瀛楁
      */
@@ -672,8 +680,8 @@
          */
         private Boolean overWeight;
 
-        //鎻愬崌鏈虹珯鐐�
-        private List<LiftStaProtocol> liftStaProtocols;
+        //PLC宸插畬鎴愪换鍔″彿
+        private Integer plcTaskNoComplete;
 
     }
 }

--
Gitblit v1.9.1