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/ServerBootstrap.java | 163 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 85 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index b419fc6..a3036c6 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -1,5 +1,10 @@ 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.DeviceConfig; +import com.zy.asrs.service.DeviceConfigService; import com.zy.common.utils.RedisUtil; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; @@ -7,6 +12,11 @@ import com.zy.core.model.*; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.*; +import com.zy.core.thread.impl.LfdZyForkLiftMasterThread; +import com.zy.core.thread.impl.LfdZyForkLiftSlaveThread; +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; @@ -14,6 +24,8 @@ import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; +import java.util.ArrayList; +import java.util.List; /** * Created by vincent on 2020/8/4 @@ -23,12 +35,13 @@ public class ServerBootstrap { @Autowired - private SlaveProperties slaveProperties; - @Autowired private MainProcess mainProcess; @Autowired private RedisUtil redisUtil; - + @Autowired + private DeviceConfigService deviceConfigService; + @Autowired + private DeviceMsgUtils deviceMsgUtils; @PostConstruct @Async @@ -45,89 +58,83 @@ } private void initMq(){ - // 鍒濆鍖栬緭閫佺嚎mq - for (Slave devp : slaveProperties.getDevp()) { - MessageQueue.init(SlaveType.Devp, devp); - } - for (Slave devp2 : slaveProperties.getDevp2()) { - MessageQueue.init(SlaveType.Devp2, devp2); - } - // 鍒濆鍖栨潯鐮佹壂鎻忎华mq - for (Slave barcode : slaveProperties.getBarcode()) { - MessageQueue.init(SlaveType.Barcode, barcode); - } - // 鍒濆鍖朙ed鐏痬q - for (Slave led : slaveProperties.getLed()) { - MessageQueue.init(SlaveType.Led, led); - } - // 鍒濆鍖栫绉癿q - for (Slave scale : slaveProperties.getScale()) { - MessageQueue.init(SlaveType.Scale, scale); - } - // 鍒濆鍖栧彴杞q - for (Slave car : slaveProperties.getCar()) { - MessageQueue.init(SlaveType.Car, car); - } - // 鍒濆鍖栨彁鍗囨満mq - for (Slave lift : slaveProperties.getLift()) { - MessageQueue.init(SlaveType.Lift, lift); + // 鍒濆鍖栬揣鍙夋彁鍗囨満mq + 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(){ - // 鍒濆鍖栬緭閫佺嚎绾跨▼ - News.info("鍒濆鍖栬緭閫佺嚎绾跨▼..................................................."); - for (DevpSlave devp : slaveProperties.getDevp()) { - DevpThread devpThread = new SiemensDevpThread(devp); - new Thread((Runnable) devpThread).start(); - SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread); - } - for (Devp2Slave devp2 : slaveProperties.getDevp2()) { - SiemensDevpThread2 siemensDevpThread2 = new SiemensDevpThread2(devp2); - new Thread(siemensDevpThread2).start(); - SlaveConnection.put(SlaveType.Devp2, devp2.getId(), siemensDevpThread2); - } - // 鍒濆鍖栨彁鍗囨満 - News.info("鍒濆鍖栨彁鍗囨満........................................................"); - for (LiftSlave liftSlave : slaveProperties.getLift()) { - LiftThread liftThread = new LiftThread(liftSlave, redisUtil); - new Thread(liftThread).start(); - SlaveConnection.put(SlaveType.Lift, liftSlave.getId(), liftThread); - } - // 鍒濆鍖栧洓鍚戠┛姊溅 - News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................"); - for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) { - NyShuttleThread shuttleThread = new NyShuttleThread(shuttleSlave,redisUtil); - new Thread(shuttleThread).start(); - SlaveConnection.put(SlaveType.Shuttle, shuttleSlave.getId(), shuttleThread); - } - // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼ - News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼..................................................."); - for (Slave barcode : slaveProperties.getBarcode()) { - BarcodeThread barcodeThread = new BarcodeThread(barcode); - if (barcode.getId() >= 11) { - new Thread(barcodeThread).start(); - } - SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); - } - // 鍒濆鍖朙ED绾跨▼ - News.info("鍒濆鍖朙ED绾跨▼..................................................."); - for (LedSlave led : slaveProperties.getLed()) { - LedThread ledThread = new LedThread(led); - new Thread(ledThread).start(); - SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); - } - // 鍒濆鍖栫绉ょ嚎绋� -// News.info("鍒濆鍖栫绉ょ嚎绋�..................................................."); -// for (Slave scale : slaveProperties.getScale()) { -// ScaleThread barcodeThread = new ScaleThread(scale); -// new Thread(barcodeThread).start(); -// SlaveConnection.put(SlaveType.Scale, scale.getId(), barcodeThread); + 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); // } + +// // 鍒濆鍖栬揣鍙夋彁鍗囨満 +// 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); +// } + + // 鍒濆鍖栧洓鍚戠┛姊溅 + 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); + } 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