From 6ea89423c9c01ecfa339cf0d83e8dd254cecf4f8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 12 四月 2024 10:59:44 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java |   53 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
index 852ca7c..1f8cf24 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -7,6 +7,7 @@
 import com.zy.asrs.framework.common.DateUtils;
 import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wcs.common.ExecuteSupport;
 import com.zy.asrs.wcs.core.entity.BasShuttle;
 import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.model.NavigateNode;
@@ -110,7 +111,8 @@
                 shuttleProtocol.setCurrentCode(data.getString("groundCode") == null ? "0" : data.getString("groundCode"));
                 //鐢垫睜鐢甸噺
                 shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0%" : data.getString("battery"));
-
+                //鏁呴殰
+                shuttleProtocol.setErrorCode(deviceStatus == 6 ? "1" : "0");
 
                 //鏄惁椤跺崌
                 shuttleProtocol.setHasLift(data.getInteger("palletStatus") == 1 ? true : false);
@@ -134,10 +136,10 @@
                     shuttleProtocol.setPakMk(true);
                 }
 
-//                if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == ShuttleDeviceStatusType.IDLE.id) {
-//                    //灏忚溅绌洪棽鐘舵�併�佸皬杞︿换鍔$姸鎬佷负鏈煡锛岃瀹氭浘绂荤嚎杩囷紝闇�瑕佸浣嶆垚绌洪棽
-//                    shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
-//                }
+                if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == 3) {
+                    //灏忚溅绌洪棽鐘舵�併�佸皬杞︿换鍔$姸鎬佷负鏈煡锛岃瀹氭浘绂荤嚎杩囷紝闇�瑕佸浣嶆垚绌洪棽
+                    shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
+                }
 
                 if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) {
                     //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
@@ -154,6 +156,30 @@
 
                     //鏇存柊閲囬泦鏃堕棿
                     shuttleProtocol.setDeviceDataLog(System.currentTimeMillis());
+                }
+
+                //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴�
+                BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
+                BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>()
+                        .eq(BasShuttle::getShuttleNo, device.getDeviceNo())
+                        .eq(BasShuttle::getHostId, device.getHostId()));
+                if (basShuttle == null) {
+                    basShuttle = new BasShuttle();
+                    //鍥涘悜绌挎杞﹀彿
+                    basShuttle.setShuttleNo(Integer.valueOf(device.getDeviceNo()));
+                    basShuttle.setStatus(1);
+                    basShuttle.setDeleted(0);
+                    basShuttle.setHostId(device.getHostId());
+                    shuttleService.save(basShuttle);
+                }
+                //浠诲姟鍙�
+                basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue());
+                //淇敼鏃堕棿
+                basShuttle.setUpdateTime(new Date());
+                //璁惧鐘舵��
+                basShuttle.setProtocol(JSON.toJSONString(shuttleProtocol));
+                if (shuttleService.updateById(basShuttle)) {
+                    OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getDeviceNo()));
                 }
             } else {
                 OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇鍥涘悜绌挎杞︾姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), device.getDeviceNo()));
@@ -346,6 +372,16 @@
 
     @Override
     public boolean isIdle() {
+        return this.isIdle(null);
+    }
+
+    @Override
+    public boolean isIdle(ExecuteSupport support) {
+        if (null != support) {
+            if (!support.judgement()) {
+                return false;
+            }
+        }
         if (this.shuttleProtocol.getIdle() == null
                 || this.shuttleProtocol.getPakMk() == null
                 || this.shuttleProtocol.getErrorCode() == null
@@ -417,6 +453,13 @@
 
     @Override
     public boolean isChargingCompleted() {
+        if (this.shuttleProtocol.getBatteryPower() == null) {
+            return false;
+        }
+
+        if (Integer.valueOf(this.shuttleProtocol.getBatteryPower()) >= 100) {
+            return true;
+        }
         return false;
     }
 

--
Gitblit v1.9.1