From 763863395f8c2174cd754ba04d3561d32e29d066 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 07 四月 2024 08:17:50 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 98 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 81 insertions(+), 17 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 5986a9b..e97a25f 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,17 +7,22 @@
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.core.entity.BasShuttle;
import com.zy.asrs.wcs.core.entity.Loc;
import com.zy.asrs.wcs.core.model.NavigateNode;
import com.zy.asrs.wcs.core.model.command.ShuttleCommand;
import com.zy.asrs.wcs.core.model.enums.ShuttleCommandModeType;
import com.zy.asrs.wcs.core.model.enums.ShuttleRunDirection;
+import com.zy.asrs.wcs.core.service.BasShuttleService;
import com.zy.asrs.wcs.core.service.LocService;
import com.zy.asrs.wcs.core.utils.NavigateUtils;
import com.zy.asrs.wcs.rcs.News;
import com.zy.asrs.wcs.rcs.cache.OutputQueue;
+import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
+import com.zy.asrs.wcs.rcs.service.DeviceDataLogService;
import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import com.zy.asrs.wcs.core.utils.RedisUtil;
import com.zy.asrs.wcs.rcs.entity.Device;
@@ -106,14 +111,14 @@
//鏄惁椤跺崌
shuttleProtocol.setHasLift(data.getInteger("palletStatus") == 1 ? true : false);
//鏄惁鏈夋墭鐩�
- shuttleProtocol.setHasPallet(data.getInteger("hasPallet") != 2 ? true : false);
+ shuttleProtocol.setHasPallet(data.getInteger("hasPallet") == null ? true : data.getInteger("hasPallet") != 2 ? true : false);
//琛岄┒鏂瑰悜
shuttleProtocol.setRunDirection(data.getString("direction") == null ? "none" : data.getString("direction"));
//鏄惁涓哄厖鐢电姸鎬�
shuttleProtocol.setHasCharge((deviceStatus == 5 || deviceStatus == 13) ? true : false);
//*********璇诲彇鎵╁睍瀛楁**********
- InnerSuhttleExtend extend = JSON.parseObject(JSON.toJSONString(shuttleProtocol.getExtend()), InnerSuhttleExtend.class);
+ InnerSuhttleExtend extend = (InnerSuhttleExtend) shuttleProtocol.getExtend();
extend.setMapVersion(data.getString("version"));//鍦板浘鐗堟湰
extend.setStatusDescription(data.getString("statusDescription"));//鐘舵�佹弿杩�
shuttleProtocol.setExtend(extend);//鎵╁睍瀛楁
@@ -130,21 +135,22 @@
// shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
// }
-// if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) {
-// //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
-// //淇濆瓨鏁版嵁璁板綍
-// DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
-// DeviceDataLog deviceDataLog = new DeviceDataLog();
-// deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
-// deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol));
-// deviceDataLog.setType("shuttle");
-// deviceDataLog.setDeviceNo(shuttleProtocol.getShuttleNo().intValue());
-// deviceDataLog.setCreateTime(new Date());
-// deviceDataLogService.insert(deviceDataLog);
-//
-// //鏇存柊閲囬泦鏃堕棿
-// shuttleProtocol.setDeviceDataLog(System.currentTimeMillis());
-// }
+ if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) {
+ //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+ //淇濆瓨鏁版嵁璁板綍
+ DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+ DeviceDataLog deviceDataLog = new DeviceDataLog();
+ deviceDataLog.setOriginData(JSON.toJSONString(data));
+ deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol));
+ deviceDataLog.setType(String.valueOf(SlaveType.Shuttle));
+ deviceDataLog.setDeviceNo(String.valueOf(shuttleProtocol.getShuttleNo()));
+ deviceDataLog.setCreateTime(new Date());
+ deviceDataLog.setHostId(device.getHostId());
+ deviceDataLogService.save(deviceDataLog);
+
+ //鏇存柊閲囬泦鏃堕棿
+ shuttleProtocol.setDeviceDataLog(System.currentTimeMillis());
+ }
} else {
OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇鍥涘悜绌挎杞︾姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), device.getDeviceNo()));
throw new CoolException(MessageFormat.format("璇诲彇鍥涘悜绌挎杞︾姸鎬佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", device.getDeviceNo(), device.getIp(), device.getPort()));
@@ -353,6 +359,64 @@
}
@Override
+ public boolean isRequireCharge() {
+ if (this.shuttleProtocol.getIdle() == null
+ || this.shuttleProtocol.getPakMk() == null
+ || this.shuttleProtocol.getErrorCode() == null
+ || this.shuttleProtocol.getProtocolStatus() == null
+ ) {
+ return false;
+ }
+
+ boolean res = this.shuttleProtocol.getIdle()
+ && this.shuttleProtocol.getPakMk()
+ && this.shuttleProtocol.getErrorCode().equals("0")
+ && this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id
+ ;
+ if (!res) {
+ return res;
+ } else {
+ // 鐢甸噺灏忎簬闃堝�奸渶瑕佽繘琛屽厖鐢�
+ try {
+ BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
+ if (shuttleService == null) {
+ return false;
+ }
+ BasShuttle basShuttle = shuttleService.getById(this.device.getDeviceNo());
+ if (basShuttle == null) {
+ return false;
+ }
+ Integer chargeLine = basShuttle.getChargeLine();
+ if (chargeLine == null) {
+ return false;
+ }
+ return Integer.valueOf(this.shuttleProtocol.getBatteryPower()) < chargeLine;
+ } catch (Exception e) {
+ News.error("fail", e);
+ return false;
+ }
+ }
+ }
+
+ @Override
+ public boolean isCharging() {
+ if (this.shuttleProtocol.getDeviceStatus() == null) {
+ return false;
+ }
+
+ if (this.shuttleProtocol.getDeviceStatus() == 5 || this.shuttleProtocol.getDeviceStatus() == 13) {
+ //鍏呯數涓拰鐢垫睜鍧囪 =銆� 鍏呯數
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isChargingCompleted() {
+ return false;
+ }
+
+ @Override
public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "runOrder");
--
Gitblit v1.9.1