From efa3e3042d30506b8eb3ce662d39c4dd954ae945 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 25 七月 2025 13:35:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/ServerBootstrap.java | 75 ++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index c67e150..6af478e 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -3,13 +3,18 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.exception.CoolException; +import com.zy.asrs.entity.BasLift; import com.zy.asrs.entity.DeviceConfig; +import com.zy.asrs.service.BasLiftService; import com.zy.asrs.service.DeviceConfigService; import com.zy.common.utils.RedisUtil; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; +import com.zy.core.thread.TrafficControlThread; import com.zy.core.thread.impl.NyShuttleThread; +import com.zy.core.thread.impl.TrafficControlImplThread; +import com.zy.core.thread.impl.ZyForkLiftThread; import com.zy.core.utils.DeviceMsgUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +41,8 @@ private DeviceConfigService deviceConfigService; @Autowired private DeviceMsgUtils deviceMsgUtils; + @Autowired + private BasLiftService basLiftService; @PostConstruct @Async @@ -56,58 +63,54 @@ List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() .eq("device_type", String.valueOf(SlaveType.ForkLift))); for (DeviceConfig forkLift : forkLiftList) { - MessageQueue.init(SlaveType.ForkLift, forkLift); + MessageQueue.init(SlaveType.ForkLift, forkLift.getDeviceNo()); } // 鍒濆鍖栧洓鍚戠┛姊溅mq List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() .eq("device_type", String.valueOf(SlaveType.Shuttle))); for (DeviceConfig shuttle : shuttleList) { - MessageQueue.init(SlaveType.Shuttle, shuttle); + MessageQueue.init(SlaveType.Shuttle, shuttle.getDeviceNo()); } + + MessageQueue.init(SlaveType.TrafficControl, 1); } private void initThread(){ List<DeviceConfig> allDevices = new ArrayList<>(); List<DeviceConfig> fakeDevices = new ArrayList<>(); -// // 鍒濆鍖栬揣鍙夋彁鍗囨満 -// List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() -// .eq("device_type", String.valueOf(SlaveType.ForkLift))); -// allDevices.addAll(forkLiftList); -// for (DeviceConfig deviceConfig : forkLiftList) { -// News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................"); -// ThreadHandler thread = null; -// if (deviceConfig.getThreadImpl().equals("ZyForkLiftThread")) { -// thread = new ZyForkLiftThread(forkLiftSlave, redisUtil); -// } else if (deviceConfig.getThreadImpl().equals("LfdZyForkLiftSlaveThread")) { -// thread = new LfdZyForkLiftSlaveThread(forkLiftSlave, redisUtil, forkLiftSlave.getMasterId()); -// } else { -// throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); -// } -// -// new Thread(thread).start(); -// SlaveConnection.put(SlaveType.ForkLift, deviceConfig.getDeviceNo(), thread); -// } + // 鍒濆鍖栬揣鍙夋彁鍗囨満 + News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................"); + List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.ForkLift))); + for (DeviceConfig deviceConfig : forkLiftList) { + BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>().eq("lift_no", deviceConfig.getDeviceNo())); + if (basLift == null) { + throw new CoolException("鏈厤缃揣鍙夋彁鍗囨満鏁版嵁"); + } -// // 鍒濆鍖栬揣鍙夋彁鍗囨満 -// for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLiftMaster()) { -// News.info("鍒濆鍖栬揣鍙夋彁鍗囨満Master........................................................"); -// ThreadHandler thread = null; -// if (forkLiftSlave.getThreadImpl().equals("LfdZyForkLiftMasterThread")) { -// thread = new LfdZyForkLiftMasterThread(forkLiftSlave, redisUtil); -// } else { -// throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); -// } -// -// new Thread(thread).start(); -// SlaveConnection.put(SlaveType.ForkLiftMaster, forkLiftSlave.getId(), thread); -// } + ThreadHandler thread = null; + if (deviceConfig.getThreadImpl().equals("ZyForkLiftThread")) { + thread = new ZyForkLiftThread(deviceConfig, basLift.getStationList$(), redisUtil); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + + new Thread(thread).start(); + SlaveConnection.put(SlaveType.ForkLift, deviceConfig.getDeviceNo(), thread); + + if (deviceConfig.getFake() == 1) { + fakeDevices.add(deviceConfig); + }else { + allDevices.add(deviceConfig); + } + } // 鍒濆鍖栧洓鍚戠┛姊溅 + News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................"); List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() .eq("device_type", String.valueOf(SlaveType.Shuttle))); for (DeviceConfig deviceConfig : shuttleList) { - News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................"); ThreadHandler thread = null; if (deviceConfig.getThreadImpl().equals("NyShuttleThread")) { thread = new NyShuttleThread(deviceConfig, redisUtil); @@ -129,6 +132,10 @@ //璁惧鍒濆鍖栧畬姣� deviceMsgUtils.sendDeviceConfig(JSON.toJSONString(allDevices)); deviceMsgUtils.sendFakeDeviceConfig(JSON.toJSONString(fakeDevices)); + + TrafficControlThread trafficControlThread = new TrafficControlImplThread(redisUtil); + new Thread(trafficControlThread).start(); + SlaveConnection.put(SlaveType.TrafficControl, 1, trafficControlThread); } -- Gitblit v1.9.1