From dad3cd8ed8afa86b651bb1a053421e7aa2b8c7ac Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期日, 05 五月 2024 16:31:09 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 50 insertions(+), 8 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 2734158..32d18d7 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 @@ -31,6 +31,8 @@ import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import com.zy.asrs.wcs.core.utils.RedisUtil; import com.zy.asrs.wcs.rcs.entity.Device; +import com.zy.asrs.wcs.system.entity.Dict; +import com.zy.asrs.wcs.system.service.DictService; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -111,6 +113,11 @@ //绂荤嚎 shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE); } + + if(deviceStatus != 4 || deviceStatus != 6 || deviceStatus != 7 || deviceStatus != 8 || deviceStatus != 255 || deviceStatus != -1) { + shuttleProtocol.setMode(1);//鑷姩鐘舵�� + } + shuttleProtocol.setDeviceStatus(deviceStatus); //褰撳墠浜岀淮鐮� shuttleProtocol.setCurrentCode(data.getString("groundCode") == null ? "0" : data.getString("groundCode")); @@ -134,6 +141,8 @@ extend.setStatusDescription(data.getString("statusDescription"));//鐘舵�佹弿杩� shuttleProtocol.setExtend(extend);//鎵╁睍瀛楁 + //鏈�杩戜竴娆″湪绾挎椂闂� + shuttleProtocol.setLastOnlineTime(System.currentTimeMillis()); ///璇诲彇鍥涘悜绌挎杞︾姸鎬�-end //灏忚溅澶勪簬蹇欑鐘舵�侊紝灏嗘爣璁扮疆涓簍rue @@ -208,6 +217,9 @@ @Override public ShuttleProtocol getStatus() { + if (this.shuttleProtocol == null) { + return null; + } return this.shuttleProtocol.clone(); } @@ -318,6 +330,7 @@ JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); if (code.equals(200)) { + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 return true; } } catch (Exception e) { @@ -348,6 +361,7 @@ JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); if (code.equals(200)) { + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 return true; } } catch (Exception e) { @@ -378,6 +392,7 @@ JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); if (code.equals(200)) { + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 return true; } } catch (Exception e) { @@ -388,7 +403,9 @@ @Override public synchronized boolean reset(ShuttleCommand command) { - return false; + setSyncTaskNo(0); + setProtocolStatus(ShuttleProtocolStatusType.IDLE); + return true; } @Override @@ -399,10 +416,12 @@ @Override public boolean isIdle(ExecuteSupport support) { if (null != support) { - if (!support.judgement()) { - return false; + Boolean judgement = support.judgement(); + if (judgement != null && !judgement) { + return true; } } + if (this.shuttleProtocol.getDeviceStatus() == null || this.shuttleProtocol.getPakMk() == null || this.shuttleProtocol.getErrorCode() == null @@ -414,13 +433,26 @@ boolean res = (this.shuttleProtocol.getDeviceStatus() == 3 || this.shuttleProtocol.getDeviceStatus() == 11) && this.shuttleProtocol.getPakMk() && this.shuttleProtocol.getErrorCode().equals("0") - && (this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id) - ; + && (this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id + || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id + || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id); return res; } @Override public boolean isDeviceIdle() { + return isDeviceIdle(null); + } + + @Override + public boolean isDeviceIdle(ExecuteSupport support) { + if (null != support) { + Boolean judgement = support.judgement(); + if (judgement != null && !judgement) { + return true; + } + } + if (this.shuttleProtocol.getDeviceStatus() == null || this.shuttleProtocol.getPakMk() == null || this.shuttleProtocol.getErrorCode() == null @@ -469,7 +501,6 @@ } return Integer.valueOf(this.shuttleProtocol.getBatteryPower()) < chargeLine; } catch (Exception e) { - News.error("fail", e); return false; } } @@ -490,11 +521,22 @@ @Override public boolean isChargingCompleted() { + Integer maxPower = 100; + DictService dictService = SpringUtils.getBean(DictService.class); + if (dictService != null) { + Dict chargeMaxValue = dictService.getOne(new LambdaQueryWrapper<Dict>() + .eq(Dict::getFlag, "chargeMaxValue") + .eq(Dict::getStatus, 1)); + if (chargeMaxValue != null) { + maxPower = Integer.parseInt(chargeMaxValue.getValue()); + } + } + if (this.shuttleProtocol.getBatteryPower() == null) { return false; } - if (Integer.valueOf(this.shuttleProtocol.getBatteryPower()) >= 100) { + if (Integer.valueOf(this.shuttleProtocol.getBatteryPower()) >= maxPower) { return true; } return false; @@ -566,7 +608,7 @@ } @Override - public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed) { + public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { HashMap<String, Object> body = new HashMap<>(); body.put("messageName", "runOrder"); body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -- Gitblit v1.9.1