From ebe180f42bc628f824d808765849bee2146a22b7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 28 三月 2024 08:44:54 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java |   62 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java
index 325a2f5..ad5496b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java
@@ -1,14 +1,22 @@
 package com.zy.asrs.wcs.rcs.model.protocol;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wcs.core.entity.Loc;
+import com.zy.asrs.wcs.core.service.LocService;
+import com.zy.asrs.wcs.core.utils.RedisUtil;
+import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
 import com.zy.asrs.wcs.rcs.model.enums.ShuttleDeviceStatusType;
 import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
 import com.zy.asrs.wcs.rcs.entity.Device;
 import com.zy.asrs.wcs.rcs.entity.ShuttleDeviceStatus;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
 import com.zy.asrs.wcs.rcs.service.ShuttleDeviceStatusService;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+
+import java.util.HashMap;
 
 /**
  * 鍥涘悜绌挎杞�
@@ -26,7 +34,7 @@
     /**
      * 浠诲姟鍙�
      */
-    private String taskNo;
+    private Integer taskNo;
 
     /**
      * 褰撳墠灏忚溅鐘舵�侊紙鍐呴儴鑷垜缁存姢锛�
@@ -211,4 +219,56 @@
         return false;//榛樿涓嶇┖闂�
     }
 
+    public Integer getTaskNo() {
+        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
+        if (null != redisUtil) {
+            Object o = redisUtil.get(DeviceRedisConstant.SHUTTLE_FLAG + this.shuttleNo);
+            if (!Cools.isEmpty(o)) {
+                this.taskNo = Integer.parseInt(String.valueOf(o));
+            }
+        }
+        return this.taskNo == null ? 0 : this.taskNo;
+    }
+
+    //閫氳繃褰撳墠浜岀淮鐮佽幏鍙栧綋鍓嶅簱浣嶅彿
+    public String getCurrentLocNo() {
+        LocService locService = SpringUtils.getBean(LocService.class);
+        if (locService == null) {
+            return null;
+        }
+        if (this.currentCode == null) {
+            return null;
+        }
+
+        //婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
+        LambdaQueryWrapper<Loc> wrapper = new LambdaQueryWrapper<Loc>()
+                .eq(Loc::getCode, this.currentCode)
+                .eq(Loc::getHostId, this.device.getHostId());
+        Loc currentLoc = locService.getOne(wrapper);
+        if (currentLoc == null) {
+            return null;
+        }
+
+        return currentLoc.getLocNo();
+    }
+
+    // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
+    public Boolean isIdle() {
+        if (this.deviceStatus == null
+                || this.pakMk == null
+                || this.errorCode == null
+                || this.protocolStatus == null
+        ) {
+            return false;
+        }
+
+        boolean res = this.deviceStatus.equals(ShuttleDeviceStatusType.IDLE)
+                && this.pakMk
+                && !this.errorCode.equals("0")
+                && this.getTaskNo() == 0
+                && this.protocolStatus.intValue() == ShuttleProtocolStatusType.IDLE.id
+                ;
+        return res;
+    }
+
 }

--
Gitblit v1.9.1