From bfc0d002ee31ceb7f74bd3ecd5008177ba31425b Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期六, 19 四月 2025 10:17:07 +0800 Subject: [PATCH] 999 --- src/main/java/com/zy/core/ServerBootstrap.java | 143 ++++++++++++++++++++++++++++++----------------- 1 files changed, 92 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index 9e5e95d..c824e07 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -1,13 +1,13 @@ package com.zy.core; +import com.core.exception.CoolException; +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.CrnSlave; -import com.zy.core.model.DevpSlave; -import com.zy.core.model.LedSlave; +import com.zy.core.model.*; import com.zy.core.properties.SlaveProperties; -import com.zy.core.thread.*; +import com.zy.core.thread.impl.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -27,12 +27,14 @@ private SlaveProperties slaveProperties; @Autowired private MainProcess mainProcess; + @Autowired + private RedisUtil redisUtil; @PostConstruct @Async public void init() throws InterruptedException { - log.info("鏍稿績鎺у埗灞傚紑濮嬪垵濮嬪寲..............................................."); + News.info("鏍稿績鎺у埗灞傚紑濮嬪垵濮嬪寲..............................................."); Thread.sleep(2000); // 鍒濆鍖栨秷鎭槦鍒� initMq(); @@ -40,66 +42,105 @@ initThread(); // 寮�濮嬩富娴佺▼杩涚▼ mainProcess.start(); - log.info("鏍稿績鎺у埗灞傚凡鍚姩..............................................."); + News.info("鏍稿績鎺у埗灞傚凡鍚姩..............................................."); } - private void initMq(){ - // 鍒濆鍖栧爢鍨涙満mq - for (Slave crn : slaveProperties.getCrn()) { - MessageQueue.init(SlaveType.Crn, crn); + private void initMq() { + // 鍒濆鍖栬揣鍙夋彁鍗囨満mq + for (Slave forkLift : slaveProperties.getForkLift()) { + MessageQueue.init(SlaveType.ForkLift, forkLift); + } + // 鍒濆鍖栨彁鍗囨満mq + for (Slave forkLift : slaveProperties.getForkLift()) { + MessageQueue.init(SlaveType.Lift, forkLift); + } + // 鍒濆鍖栧洓鍚戠┛姊溅mq + for (Slave shuttle : slaveProperties.getShuttle()) { + MessageQueue.init(SlaveType.Shuttle, shuttle); } // 鍒濆鍖栬緭閫佺嚎mq for (Slave devp : slaveProperties.getDevp()) { MessageQueue.init(SlaveType.Devp, devp); } - // 鍒濆鍖栨潯鐮佹壂鎻忎华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); - } } - private void initThread(){ - // 鍒濆鍖栧爢鍨涙満绾跨▼ - log.info("鍒濆鍖栧爢鍨涙満绾跨▼..................................................."); - for (CrnSlave crn : slaveProperties.getCrn()) { - CrnThread crnThread = new SiemensCrnThread(crn); - new Thread((Runnable) crnThread).start(); - SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); + private void initThread() { + // 鍒濆鍖栬揣鍙夋彁鍗囨満 + for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) { + News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................"); + ThreadHandler thread = null; + if (forkLiftSlave.getThreadImpl().equals("ZyForkLiftThread")) { + thread = new ZyForkLiftThread(forkLiftSlave, redisUtil); + } else if (forkLiftSlave.getThreadImpl().equals("LfdZyForkLiftSlaveThread")) { + thread = new LfdZyForkLiftSlaveThread(forkLiftSlave, redisUtil, forkLiftSlave.getMasterId()); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + + new Thread(thread).start(); + SlaveConnection.put(SlaveType.ForkLift, forkLiftSlave.getId(), thread); } - // 鍒濆鍖栬緭閫佺嚎绾跨▼ - log.info("鍒濆鍖栬緭閫佺嚎绾跨▼..................................................."); - for (DevpSlave devp : slaveProperties.getDevp()) { - DevpThread devpThread = new SiemensDevpThread(devp); - new Thread((Runnable) devpThread).start(); - SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread); + // 鍒濆鍖栬揣鍙夋彁鍗囨満 + 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); } - // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼ - log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼..................................................."); - for (Slave barcode : slaveProperties.getBarcode()) { - BarcodeThread barcodeThread = new BarcodeThread(barcode); - new Thread(barcodeThread).start(); - SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); + // 鍒濆鍖栨彁鍗囨満 + for (LiftSlave slave : slaveProperties.getLift()) { + News.info("鍒濆鍖栨彁鍗囨満........................................................"); + ThreadHandler thread = null; + if (slave.getThreadImpl().equals("NyLiftThread")) { + thread = new NyLiftThread(slave, redisUtil); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + + new Thread(thread).start(); + SlaveConnection.put(SlaveType.Lift, slave.getId(), thread); } - // 鍒濆鍖朙ED绾跨▼ - log.info("鍒濆鍖朙ED绾跨▼..................................................."); - for (LedSlave led : slaveProperties.getLed()) { - LedThread ledThread = new LedThread(led); - new Thread(ledThread).start(); - SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); + + // 鍒濆鍖栧洓鍚戠┛姊溅 + for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) { + News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................"); + ThreadHandler thread = null; + if (shuttleSlave.getThreadImpl().equals("NyShuttleThread")) { + thread = new NyShuttleThread(shuttleSlave, redisUtil); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + + new Thread(thread).start(); + SlaveConnection.put(SlaveType.Shuttle, shuttleSlave.getId(), thread); + } + // 鍒濆鍖栬緭閫佺嚎 + for (DevpSlave devpSlave : slaveProperties.getDevp()) { + News.info("鍒濆鍖栬緭閫佺嚎......................................................"); + ThreadHandler thread = null; + if (devpSlave.getThreadImpl().equals("FyDevpThread")) { + thread = new FyDevpThread(devpSlave); + } else { + throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�"); + } + new Thread(thread).start(); + SlaveConnection.put(SlaveType.Devp, devpSlave.getId(), thread); + } + + // 鍒濆鍖栫數瑙嗘満 + for (LedSlave ledSlave : slaveProperties.getLed()) { + News.info("鍒濆鍖栫數瑙嗘満......................................................"); + ThreadHandler thread = new NormalLedThread(ledSlave); + new Thread(thread).start(); + SlaveConnection.put(SlaveType.Led, ledSlave.getId(), thread); } } -- Gitblit v1.9.1