From 3c45d4f9f3aba5bc85a9577e43c0dffc71b93a22 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期四, 10 七月 2025 15:54:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/ServerBootstrap.java | 88 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 72 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index bab666b..003d514 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -1,14 +1,19 @@ package com.zy.core; +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.model.*; -import com.zy.core.properties.SlaveProperties; -import com.zy.core.thread.*; import com.zy.core.thread.impl.NyShuttleThread; 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; import org.springframework.scheduling.annotation.Async; @@ -16,6 +21,8 @@ import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; +import java.util.ArrayList; +import java.util.List; /** * Created by vincent on 2020/8/4 @@ -25,12 +32,15 @@ public class ServerBootstrap { @Autowired - private SlaveProperties slaveProperties; - @Autowired private MainProcess mainProcess; @Autowired private RedisUtil redisUtil; - + @Autowired + private DeviceConfigService deviceConfigService; + @Autowired + private DeviceMsgUtils deviceMsgUtils; + @Autowired + private BasLiftService basLiftService; @PostConstruct @Async @@ -48,30 +58,76 @@ private void initMq(){ // 鍒濆鍖栬揣鍙夋彁鍗囨満mq - for (Slave forkLift : slaveProperties.getForkLift()) { + List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.ForkLift))); + for (DeviceConfig forkLift : forkLiftList) { MessageQueue.init(SlaveType.ForkLift, forkLift); } // 鍒濆鍖栧洓鍚戠┛姊溅mq - for (Slave shuttle : slaveProperties.getShuttle()) { + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig shuttle : shuttleList) { MessageQueue.init(SlaveType.Shuttle, shuttle); } } private void initThread(){ + List<DeviceConfig> allDevices = new ArrayList<>(); + List<DeviceConfig> fakeDevices = new ArrayList<>(); + // 鍒濆鍖栬揣鍙夋彁鍗囨満 News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................"); - for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) { - ZyForkLiftThread forkLiftThread = new ZyForkLiftThread(forkLiftSlave, redisUtil); - new Thread(forkLiftThread).start(); - SlaveConnection.put(SlaveType.ForkLift, forkLiftSlave.getId(), forkLiftThread); + 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("鏈厤缃揣鍙夋彁鍗囨満鏁版嵁"); + } + + 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("鍒濆鍖栧洓鍚戠┛姊溅......................................................"); - for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) { - NyShuttleThread shuttleThread = new NyShuttleThread(shuttleSlave,redisUtil); - new Thread(shuttleThread).start(); - SlaveConnection.put(SlaveType.Shuttle, shuttleSlave.getId(), shuttleThread); + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig deviceConfig : shuttleList) { + ThreadHandler thread = null; + if (deviceConfig.getThreadImpl().equals("NyShuttleThread")) { + thread = new NyShuttleThread(deviceConfig, redisUtil); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + + new Thread(thread).start(); + SlaveConnection.put(SlaveType.Shuttle, deviceConfig.getDeviceNo(), thread); + + if (deviceConfig.getFake() == 1) { + fakeDevices.add(deviceConfig); + }else { + allDevices.add(deviceConfig); + } } + + + //璁惧鍒濆鍖栧畬姣� + deviceMsgUtils.sendDeviceConfig(JSON.toJSONString(allDevices)); + deviceMsgUtils.sendFakeDeviceConfig(JSON.toJSONString(fakeDevices)); } -- Gitblit v1.9.1