From b6428016edf3de843020bc95fd1708d3bb1961e5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 07 七月 2025 16:41:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 75 ++++++++++++++++++++----------------- 1 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index 9d139e2..c375106 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -8,6 +8,7 @@ import com.core.exception.CoolException; import com.fasterxml.jackson.databind.ObjectMapper; import com.zy.asrs.entity.BasShuttle; +import com.zy.asrs.entity.DeviceConfig; import com.zy.asrs.entity.DeviceDataLog; import com.zy.asrs.entity.LocMast; import com.zy.asrs.service.BasShuttleService; @@ -29,7 +30,6 @@ import com.zy.core.enums.*; import com.zy.core.model.CommandResponse; import com.zy.core.model.DeviceMsgModel; -import com.zy.core.model.ShuttleSlave; import com.zy.core.model.command.NyShuttleHttpCommand; import com.zy.core.model.command.ShuttleCommand; import com.zy.core.model.command.ShuttleRedisCommand; @@ -49,7 +49,7 @@ @SuppressWarnings("all") public class NyShuttleThread implements ShuttleThread { - private ShuttleSlave slave; + private DeviceConfig deviceConfig; private RedisUtil redisUtil; private ShuttleProtocol shuttleProtocol; @@ -61,14 +61,14 @@ //鍘熷璁惧鏁版嵁 private Object originDeviceData; - public NyShuttleThread(ShuttleSlave slave, RedisUtil redisUtil) { - this.slave = slave; + public NyShuttleThread(DeviceConfig deviceConfig, RedisUtil redisUtil) { + this.deviceConfig = deviceConfig; this.redisUtil = redisUtil; } @Override public void run() { - News.info("{}鍙峰洓鍚戣溅绾跨▼鍚姩", slave.getId()); + News.info("{}鍙峰洓鍚戣溅绾跨▼鍚姩", deviceConfig.getDeviceNo()); //璁惧璇诲彇 Thread readThread = new Thread(() -> { @@ -100,7 +100,7 @@ continue; } - Object object = redisUtil.get(RedisKeyType.SHUTTLE_FLAG.key + slave.getId()); + Object object = redisUtil.get(RedisKeyType.SHUTTLE_FLAG.key + deviceConfig.getDeviceNo()); if (object == null) { continue; } @@ -108,14 +108,14 @@ Integer taskNo = Integer.valueOf(String.valueOf(object)); if (taskNo != 0) { //瀛樺湪浠诲姟闇�瑕佹墽琛� - boolean result = shuttleAction.executeWork(slave.getId(), taskNo); + boolean result = shuttleAction.executeWork(deviceConfig.getDeviceNo(), taskNo); } // //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭 -// shuttleAction.moveLoc(slave.getId()); +// shuttleAction.moveLoc(deviceConfig.getDeviceNo()); //婕旂ず妯″紡 - shuttleAction.demo(slave.getId()); + shuttleAction.demo(deviceConfig.getDeviceNo()); Thread.sleep(200); } catch (Exception e) { @@ -155,24 +155,29 @@ deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); deviceDataLog.setType(String.valueOf(SlaveType.Shuttle)); - deviceDataLog.setDeviceNo(slave.getId()); + deviceDataLog.setDeviceNo(deviceConfig.getDeviceNo()); deviceDataLog.setCreateTime(new Date()); deviceDataLogService.insert(deviceDataLog); //鏇存柊閲囬泦鏃堕棿 shuttleProtocol.setDeviceDataLog(System.currentTimeMillis()); - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo())); } } } private void listenMessageFromRedis() { try { - DeviceMsgUtils deviceMsgUtils = SpringUtils.getBean(DeviceMsgUtils.class); + DeviceMsgUtils deviceMsgUtils = null; + try { + deviceMsgUtils = SpringUtils.getBean(DeviceMsgUtils.class); + }catch (Exception e){ + + } if (deviceMsgUtils == null) { return; } - DeviceMsgModel deviceMsg = deviceMsgUtils.getDeviceMsg(SlaveType.Shuttle, slave.getId()); + DeviceMsgModel deviceMsg = deviceMsgUtils.getDeviceMsg(SlaveType.Shuttle, deviceConfig.getDeviceNo()); if(deviceMsg == null){ return; } @@ -241,7 +246,7 @@ try { if (null == shuttleProtocol) { shuttleProtocol = new ShuttleProtocol(); - shuttleProtocol.setShuttleNo(slave.getId()); + shuttleProtocol.setShuttleNo(deviceConfig.getDeviceNo()); shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); InnerSuhttleExtend extend = new InnerSuhttleExtend(); @@ -259,9 +264,9 @@ return; } - NyShuttleHttpCommand readStatusCommand = getReadStatusCommand(slave.getId()); + NyShuttleHttpCommand readStatusCommand = getReadStatusCommand(deviceConfig.getDeviceNo()); //鎸囦护瓒呰繃浜旀潯锛屼笉鍐嶄笅鍙戜换鍔$姸鎬佽姹� - TreeSet<String> deviceCommandMsgListKey = deviceMsgUtils.getDeviceCommandMsgListKey(SlaveType.Shuttle, slave.getId()); + TreeSet<String> deviceCommandMsgListKey = deviceMsgUtils.getDeviceCommandMsgListKey(SlaveType.Shuttle, deviceConfig.getDeviceNo()); if (deviceCommandMsgListKey.size() < 5) { requestCommandAsync(readStatusCommand);//璇锋眰鐘舵�� } @@ -339,10 +344,10 @@ this.originDeviceData = data.getString("originDeviceData"); - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo())); } catch (Exception e) { e.printStackTrace(); - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); } } @@ -379,8 +384,8 @@ NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class); JSONObject requestResult = requestCommand(httpCommand); - log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort())); - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort())); + log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort())); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort())); break; } } @@ -638,7 +643,7 @@ if (shuttleService == null) { return false; } - BasShuttle basShuttle = shuttleService.selectOne(new EntityWrapper<BasShuttle>().eq("shuttle_no", slave.getId())); + BasShuttle basShuttle = shuttleService.selectOne(new EntityWrapper<BasShuttle>().eq("shuttle_no", deviceConfig.getDeviceNo())); if (basShuttle == null) { return false; } @@ -871,7 +876,7 @@ @Override public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); - NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); + NyShuttleHttpCommand httpStandard = getHttpStandard(deviceConfig.getDeviceNo(), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); ArrayList<HashMap<String, Object>> path = new ArrayList<>(); @@ -916,7 +921,7 @@ } ShuttleCommand command = new ShuttleCommand(); - command.setShuttleNo(slave.getId()); + command.setShuttleNo(deviceConfig.getDeviceNo()); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.MOVE.id); command.setTargetLocNo(locMast.getLocNo()); @@ -926,7 +931,7 @@ @Override public ShuttleCommand getLiftCommand(Integer taskNo, Boolean lift) { - NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); + NyShuttleHttpCommand httpStandard = getHttpStandard(deviceConfig.getDeviceNo(), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� @@ -938,7 +943,7 @@ httpStandard.setRequest(request); ShuttleCommand command = new ShuttleCommand(); - command.setShuttleNo(slave.getId()); + command.setShuttleNo(deviceConfig.getDeviceNo()); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id); command.setTaskNo(taskId); @@ -947,7 +952,7 @@ @Override public ShuttleCommand getChargeCommand(Integer taskNo, Boolean charge) { - NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); + NyShuttleHttpCommand httpStandard = getHttpStandard(deviceConfig.getDeviceNo(), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� @@ -959,7 +964,7 @@ httpStandard.setRequest(request); ShuttleCommand command = new ShuttleCommand(); - command.setShuttleNo(slave.getId()); + command.setShuttleNo(deviceConfig.getDeviceNo()); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id); command.setTaskNo(taskId); @@ -968,7 +973,7 @@ @Override public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) { - NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); + NyShuttleHttpCommand httpStandard = getHttpStandard(deviceConfig.getDeviceNo(), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); HashMap<String, Object> body = new HashMap<>(); @@ -979,7 +984,7 @@ httpStandard.setRequest(request); ShuttleCommand command = new ShuttleCommand(); - command.setShuttleNo(slave.getId()); + command.setShuttleNo(deviceConfig.getDeviceNo()); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); command.setTaskNo(taskNo); @@ -990,7 +995,7 @@ public ShuttleCommand getInitCommand(Integer taskNo, Integer code) { LocMastService locMastService = SpringUtils.getBean(LocMastService.class); NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); - NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); + NyShuttleHttpCommand httpStandard = getHttpStandard(deviceConfig.getDeviceNo(), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); //code -> {Integer@13781} 1101101 @@ -1031,7 +1036,7 @@ httpStandard.setRequest(request); ShuttleCommand command = new ShuttleCommand(); - command.setShuttleNo(slave.getId()); + command.setShuttleNo(deviceConfig.getDeviceNo()); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.RESET.id); command.setTaskNo(taskNo); @@ -1105,10 +1110,10 @@ data.remove("nodes"); DeviceCommandMsgModel commandMsgModel = new DeviceCommandMsgModel(); - commandMsgModel.setDeviceId(slave.getId()); + commandMsgModel.setDeviceId(deviceConfig.getDeviceNo()); commandMsgModel.setDeviceType(String.valueOf(SlaveType.Shuttle)); commandMsgModel.setCommand(data); - String key = deviceMsgUtils.sendDeviceCommand(SlaveType.Shuttle, slave.getId(), commandMsgModel); + String key = deviceMsgUtils.sendDeviceCommand(SlaveType.Shuttle, deviceConfig.getDeviceNo(), commandMsgModel); String requestType = null; String taskId = null; @@ -1155,10 +1160,10 @@ data.remove("nodes"); DeviceCommandMsgModel commandMsgModel = new DeviceCommandMsgModel(); - commandMsgModel.setDeviceId(slave.getId()); + commandMsgModel.setDeviceId(deviceConfig.getDeviceNo()); commandMsgModel.setDeviceType(String.valueOf(SlaveType.Shuttle)); commandMsgModel.setCommand(data); - String key = deviceMsgUtils.sendDeviceCommand(SlaveType.Shuttle, slave.getId(), commandMsgModel); + String key = deviceMsgUtils.sendDeviceCommand(SlaveType.Shuttle, deviceConfig.getDeviceNo(), commandMsgModel); String requestType = null; String taskId = null; -- Gitblit v1.9.1