diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java index 38ebc31..6bb2169 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java @@ -41,6 +41,11 @@ public class RoadCacheServiceImpl implements RoadCacheService { for (WcsSrgvMap wcsSrgvMap : wcsSrgvMaps) { maps.put(wcsSrgvMap.getSiteId(), wcsSrgvMap); } + param.setAxy("7,7"); + List tsjMap = wcsSrgvMapMapper.selectWcsSrgvMapList(param); + for (WcsSrgvMap wcsSrgvMap : tsjMap) { + maps.put("tsj",wcsSrgvMap); + } return maps; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index 66875f6..193878d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -11,9 +11,12 @@ import com.ruoyi.device.ssj.service.IDeviceSsjService; import com.ruoyi.schedule.plcRead.ddj.PlcDdjRead; import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead; import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead; +import com.ruoyi.schedule.scheduleTask.cdz.CdzThread; import com.ruoyi.schedule.scheduleTask.ddj.impl.Ddj1Thread; import com.ruoyi.schedule.scheduleTask.monit.MonitoringThread; +import com.ruoyi.schedule.scheduleTask.srgv.impl.SRgv1Thread; import com.ruoyi.schedule.scheduleTask.ssj.SsjThread; +import com.ruoyi.schedule.scheduleTask.tsj.TsjThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -34,6 +37,9 @@ public class ScheduleThread { public CustomThread monitoringCustomThread; public CustomThread ssjThreadCustomThread; + public CustomThread sRgvThreadCustomThread; + public CustomThread tsjThreadCustomThread; + public CustomThread cdzThreadCustomThread; // public CustomThread ddj1CustomThread; /*public CustomThread ddj2CustomThread; public CustomThread ddj3CustomThread; @@ -43,8 +49,6 @@ public class ScheduleThread { @Autowired private IDeviceSsjService deviceSsjService; @Autowired - private IMsgDdjService msgDdjService; - @Autowired private IDeviceSrgvService deviceSrgvService; private boolean isRun = false; @@ -71,6 +75,12 @@ public class ScheduleThread { monitoringCustomThread = new CustomThread(new Thread(monitoringThread), monitoringThread); SsjThread ssjThread=new SsjThread(); ssjThreadCustomThread=new CustomThread(new Thread(ssjThread),ssjThread); + SRgv1Thread srgvThread=new SRgv1Thread(); + sRgvThreadCustomThread=new CustomThread<>(new Thread(srgvThread),srgvThread); + TsjThread tsjThread=new TsjThread(); + tsjThreadCustomThread=new CustomThread<>(new Thread(tsjThread),tsjThread); + CdzThread cdzThread = new CdzThread(); + cdzThreadCustomThread=new CustomThread<>(new Thread(cdzThread),cdzThread); // Ddj1Thread ddj1Thread = new Ddj1Thread(); // ddj1CustomThread = new CustomThread<>(new Thread(ddj1Thread), ddj1Thread); /*Ddj2Thread ddj2Thread = new Ddj2Thread(); @@ -135,8 +145,9 @@ public class ScheduleThread { public void startAllThread() { plcSsjReadCustomThread.getThread().start(); plcSrgvReadCustomThread1.getThread().start(); - plcSrgvReadCustomThread2.getThread().start(); - plcSrgvReadCustomThread3.getThread().start(); + //plcSrgvReadCustomThread2.getThread().start(); + //plcSrgvReadCustomThread3.getThread().start(); + isRun = true; } @@ -147,6 +158,9 @@ public class ScheduleThread { public void startAllThread2() { monitoringCustomThread.thread.start(); ssjThreadCustomThread.thread.start(); + //tsjThreadCustomThread.thread.start(); + sRgvThreadCustomThread.thread.start(); + //cdzThreadCustomThread.thread.start(); // ddj1CustomThread.thread.start(); /*ddj2CustomThread.thread.start(); ddj3CustomThread.thread.start(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java index 9614276..a904b4c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java @@ -9,9 +9,12 @@ import HslCommunication.ModBus.ModbusTcpNet; import cn.hutool.core.convert.Convert; import com.ruoyi.common.domain.HslRead; import com.ruoyi.common.domain.PlcConnectInfo; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.srgv.domain.DeviceSrgv; +import com.ruoyi.device.srgv.service.IDeviceSrgvService; import lombok.extern.slf4j.Slf4j; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Slf4j @@ -55,17 +58,25 @@ public class PlcSrgvRead implements Runnable { public void run() { while (isRun) { try { - if (IsConnect()) { + /*if (IsConnect()) { - if (deviceSrgv != null) { - readSrgvPlc(deviceSrgv); + *//*if (deviceSrgv != null) { + //readSrgvPlc(deviceSrgv); - } + }*//* - Thread.sleep(1000); } else { reConnect(); + }*/ + IDeviceSrgvService deviceSrgvService = SpringUtils.getBean(IDeviceSrgvService.class); + List srgvs=deviceSrgvService.selectDeviceSrgvList(new DeviceSrgv()); + ConcurrentHashMap srgvList = new ConcurrentHashMap<>(); + for(DeviceSrgv srgv:srgvs){ + srgvList.put(srgv.getDeviceId().toString(),srgv); } + PlcSrgvRead.deviceSrgvMap=srgvList; + + Thread.sleep(1000); } catch (InterruptedException e) { // 捕获中断异常,退出循环 Thread.currentThread().interrupt(); // 重新设置中断标志 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java index 73ca3c5..bfdaf2d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java @@ -7,15 +7,18 @@ import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.ruoyi.common.domain.SendData; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.ddj.domain.MsgDdj; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.common.domain.HslRead; import com.ruoyi.common.domain.PlcConnectInfo; +import com.ruoyi.device.ssj.service.impl.DeviceSsjServiceImpl; import com.ruoyi.schedule.plcRead.util.ParseUtil; import com.ruoyi.schedule.plcRead.util.Tools; import lombok.extern.slf4j.Slf4j; import java.util.Arrays; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Slf4j @@ -48,10 +51,10 @@ public class PlcSsjRead implements Runnable { public void run() { while (isRun) { try { - if (IsConnect()) { + /*if (IsConnect()) { int step = 20; int baseOffset = 0; - for (String ssjCode : deviceSsjMap.keySet()) { + *//*for (String ssjCode : deviceSsjMap.keySet()) { DeviceSsj ssjDevice = deviceSsjMap.get(ssjCode); switch (ssjDevice.getType()) { case "1": @@ -64,11 +67,19 @@ public class PlcSsjRead implements Runnable { readPlcOtherSsj(ssjDevice); break; } - } - Thread.sleep(1000); + }*//* + } else { reConnect(); + }*/ + DeviceSsjServiceImpl deviceSsjService = SpringUtils.getBean(DeviceSsjServiceImpl.class); + List deviceSsjs = deviceSsjService.selectDeviceSsjList(new DeviceSsj()); + ConcurrentHashMap ssjList = new ConcurrentHashMap<>(); + for (DeviceSsj deviceSsj : deviceSsjs) { + ssjList.put(deviceSsj.getDeviceCode(), deviceSsj); } + PlcSsjRead.deviceSsjMap = ssjList; + Thread.sleep(1000); } catch (InterruptedException e) { // 捕获中断异常,退出循环 Thread.currentThread().interrupt(); // 重新设置中断标志 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java index 783d1e6..4171313 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.cdz.domain.DeviceCdz; import com.ruoyi.device.cdz.service.IDeviceCdzService; import com.ruoyi.device.srgv.domain.DeviceSrgv; @@ -36,7 +37,10 @@ public class CdzThread implements Runnable { private IWcsSrgvQueueService wcsSrgvQueueService; public void init() { - + chargingJobService = SpringUtils.getBean(ISrgvChargingJobService.class); + deviceCdzService = SpringUtils.getBean(IDeviceCdzService.class); + deviceSrgvService = SpringUtils.getBean(IDeviceSrgvService.class); + wcsSrgvQueueService = SpringUtils.getBean(IWcsSrgvQueueService.class); } @Override diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java index 08481f8..0938fbd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java @@ -1,6 +1,5 @@ package com.ruoyi.schedule.scheduleTask.srgv; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; @@ -10,13 +9,13 @@ import com.ruoyi.bas.srgvmap.domain.WcsSrgvMap; import com.ruoyi.bas.srgvmap.service.IWcsSrgvMapService; import com.ruoyi.bas.srgvmap.service.RoadCacheService; import com.ruoyi.common.domain.SendData2; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.srgv.domain.DeviceSrgv; import com.ruoyi.job.charg.domain.SrgvChargingJob; import com.ruoyi.job.charg.service.ISrgvChargingJobService; import com.ruoyi.job.domain.MydoJob; import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.queue.srgv.domain.WcsSrgvQueue; -import com.ruoyi.queue.srgv.domain.WcsSrgvQueueFinish; import com.ruoyi.queue.srgv.service.IWcsSrgvQueueFinishService; import com.ruoyi.queue.srgv.service.IWcsSrgvQueueService; import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead; @@ -59,6 +58,14 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { sRgvCodes.add("2"); sRgvCodes.add("3"); sRgvCodeList.put("srgv", sRgvCodes); + + wcsSagvQueueMapper = SpringUtils.getBean(IWcsSrgvQueueService.class); + wcsSagvQueueFinishMapper = SpringUtils.getBean(IWcsSrgvQueueFinishService.class); + wcsPortService = SpringUtils.getBean(IWcsPortService.class); + srgvChargingJobMapper = SpringUtils.getBean(ISrgvChargingJobService.class); + mydoJobService = SpringUtils.getBean(IMydoJobService.class); + wcsSrgvMapService = SpringUtils.getBean(IWcsSrgvMapService.class); + roadCacheService = SpringUtils.getBean(RoadCacheService.class); } @Override @@ -209,6 +216,7 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { WcsSrgvQueue wcsSrgvQueue2 = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(deviceSrgv1.getDeviceId().toString()); if (deviceSrgv1.getStatus() == 1 && wcsSrgvQueue2 == null) { deviceSrgv = deviceSrgv1; + break; } } } @@ -380,8 +388,8 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { //筛选出deviceSrgvMap中deviceSrgv.getWorkMode() == 4并且deviceSrgv.getStatus() == 1并且deviceSrgv.getCurrSite() == cargoPickSite得对象,并排除掉其中deviceId与deviceSrgv.getDeviceId()相同的对象 List sameSiteDevices = deviceSrgvMap.values().stream() - .filter(d -> d.getWorkMode() == 4 - && d.getStatus() == 1 + .filter(d -> d.getWorkMode() == 4 + && d.getStatus() == 1 && d.getCurrSite().equals(cargoPickSite)) .collect(Collectors.toList()); if(!sameSiteDevices.isEmpty() && !Objects.equals(sameSiteDevices.get(0).getDeviceId(), deviceSrgv.getDeviceId())){ @@ -642,7 +650,7 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { sendDataList.add(flag); //下发数据 - boolean b = sendCarTask(sendDataList, deviceSrgv); + boolean b = true;// sendCarTask(sendDataList, deviceSrgv); if (b) { wcsSrgvQueue.setPathInfo(pathBuilder.toString()); wcsSrgvQueue.setTrunPath(turnBuilder.toString()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java index 32cb292..53bf0fe 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java @@ -11,6 +11,7 @@ import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import com.ruoyi.bas.port.domain.WcsPort; import com.ruoyi.bas.port.service.IWcsPortService; import com.ruoyi.common.domain.SendData; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.srgv.domain.DeviceSrgv; import com.ruoyi.device.tsj.domain.DeviceTsj; import com.ruoyi.device.tsj.service.IDeviceTsjService; @@ -35,17 +36,15 @@ public class TsjThread implements Runnable { private ITsjDeviceExecutionQueueService tsjDeviceExecutionQueueService; private ITsjDeviceExecutionQueueFinishService tsjDeviceExecutionQueueFinishService; - private IDeviceTsjService deviceTsjService; - - private IMydoJobService mydoJobService; - private IWcsPortService wcsPortService; - private IBasCargoSpaceService basCargoSpaceService; - private IWcsSrgvQueueService wcsSrgvQueueService; public void init() { + tsjDeviceExecutionQueueService = SpringUtils.getBean(ITsjDeviceExecutionQueueService.class); + tsjDeviceExecutionQueueFinishService = SpringUtils.getBean(ITsjDeviceExecutionQueueFinishService.class); + wcsPortService = SpringUtils.getBean(IWcsPortService.class); + wcsSrgvQueueService = SpringUtils.getBean(IWcsSrgvQueueService.class); } @Override diff --git a/ruoyi-admin/src/main/resources/mapper/bas/WcsSrgvMapMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/WcsSrgvMapMapper.xml index b3c2686..6c660be 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/WcsSrgvMapMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/WcsSrgvMapMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - +