From 7087c609488ee87e24c25ab61a7ada46352af116 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 29 三月 2024 16:45:29 +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/thread/impl/SurayShuttleThread.java | 85 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 80 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 6f679c5..5986a9b 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 @@ -21,6 +21,7 @@ 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 lombok.Data; import lombok.extern.slf4j.Slf4j; import java.text.MessageFormat; @@ -87,6 +88,9 @@ shuttleProtocol.setShuttleNo(Integer.valueOf(device.getDeviceNo())); shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); shuttleProtocol.setDevice(device); + + InnerSuhttleExtend extend = new InnerSuhttleExtend(); + shuttleProtocol.setExtend(extend); } //----------璇诲彇鍥涘悜绌挎杞︾姸鎬�----------- @@ -108,13 +112,19 @@ //鏄惁涓哄厖鐢电姸鎬� shuttleProtocol.setHasCharge((deviceStatus == 5 || deviceStatus == 13) ? true : false); + //*********璇诲彇鎵╁睍瀛楁********** + InnerSuhttleExtend extend = JSON.parseObject(JSON.toJSONString(shuttleProtocol.getExtend()), InnerSuhttleExtend.class); + extend.setMapVersion(data.getString("version"));//鍦板浘鐗堟湰 + extend.setStatusDescription(data.getString("statusDescription"));//鐘舵�佹弿杩� + shuttleProtocol.setExtend(extend);//鎵╁睍瀛楁 + ///璇诲彇鍥涘悜绌挎杞︾姸鎬�-end -// //灏忚溅澶勪簬蹇欑鐘舵�侊紝灏嗘爣璁扮疆涓簍rue -// if (shuttleProtocol.getDeviceStatusType() == ShuttleDeviceStatusType.BUSY) { -// shuttleProtocol.setPakMk(true); -// } -// + //灏忚溅澶勪簬蹇欑鐘舵�侊紝灏嗘爣璁扮疆涓簍rue + if (!shuttleProtocol.getIdle()) { + shuttleProtocol.setPakMk(true); + } + // if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == ShuttleDeviceStatusType.IDLE.id) { // //灏忚溅绌洪棽鐘舵�併�佸皬杞︿换鍔$姸鎬佷负鏈煡锛岃瀹氭浘绂荤嚎杩囷紝闇�瑕佸浣嶆垚绌洪棽 // shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE); @@ -325,6 +335,24 @@ } @Override + public boolean isIdle() { + 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 + ; + return res; + } + + @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"); @@ -351,6 +379,37 @@ return command; } + @Override + public ShuttleCommand getLiftCommand(Integer taskNo, Boolean lift) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "actionOrder"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("action", lift ? 1 : 2); + + ShuttleCommand command = new ShuttleCommand(); + command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id); + return command; + } + + @Override + public ShuttleCommand getChargeCommand(Integer taskNo, Boolean charge) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "runOrder"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("action", charge ? 3 : 4); + + ShuttleCommand command = new ShuttleCommand(); + command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id); + return command; + } //***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�*************** @@ -410,4 +469,20 @@ } return null; } + + @Data + private class InnerSuhttleExtend { + + /** + * 鍦板浘鐗堟湰 + */ + private String mapVersion; + + /** + * 鐘舵�佹弿杩� + */ + private String statusDescription; + + } + } -- Gitblit v1.9.1