提升机调度

This commit is contained in:
liuhanqing
2025-12-04 16:59:19 +08:00
parent 4b66b5bc44
commit 24107fcf59

View File

@@ -7,14 +7,15 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
import com.ruoyi.bas.port.domain.WcsPort; import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.bas.port.service.IWcsPortService; import com.ruoyi.bas.port.service.IWcsPortService;
import com.ruoyi.common.domain.SendData; import com.ruoyi.common.domain.SendData;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.srgv.domain.DeviceSrgv; import com.ruoyi.device.srgv.domain.DeviceSrgv;
import com.ruoyi.device.srgv.service.IDeviceSrgvService;
import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.device.tsj.domain.DeviceTsj; import com.ruoyi.device.tsj.domain.DeviceTsj;
import com.ruoyi.device.tsj.service.IDeviceTsjService; import com.ruoyi.job.domain.MydoJob;
import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.job.service.IMydoJobService;
import com.ruoyi.queue.srgv.domain.WcsSrgvQueue; import com.ruoyi.queue.srgv.domain.WcsSrgvQueue;
import com.ruoyi.queue.srgv.service.IWcsSrgvQueueService; import com.ruoyi.queue.srgv.service.IWcsSrgvQueueService;
@@ -23,12 +24,15 @@ import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueueFinish;
import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueFinishService; import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueFinishService;
import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService; import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService;
import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead; import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead;
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
import com.ruoyi.schedule.plcRead.tsj.PlcTsjRead; import com.ruoyi.schedule.plcRead.tsj.PlcTsjRead;
import com.ruoyi.schedule.plcRead.util.Tools; import com.ruoyi.schedule.plcRead.util.Tools;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects;
@Slf4j @Slf4j
public class TsjThread implements Runnable { public class TsjThread implements Runnable {
@@ -38,6 +42,9 @@ public class TsjThread implements Runnable {
private ITsjDeviceExecutionQueueFinishService tsjDeviceExecutionQueueFinishService; private ITsjDeviceExecutionQueueFinishService tsjDeviceExecutionQueueFinishService;
private IWcsPortService wcsPortService; private IWcsPortService wcsPortService;
private IWcsSrgvQueueService wcsSrgvQueueService; private IWcsSrgvQueueService wcsSrgvQueueService;
private HashMap<String, String> inSsjList;
private IMydoJobService mydoJobService;
private IDeviceSrgvService deviceSrgvService;
public void init() { public void init() {
@@ -107,7 +114,7 @@ public class TsjThread implements Runnable {
sendTsj(); sendTsj();
} }
createQueue(tsj); createTsjQueue(tsj);
} }
@@ -141,6 +148,8 @@ public class TsjThread implements Runnable {
break; break;
case "3": case "3":
//充电 //充电
startSite = "tsj";
endSite = wcsSrgvQueue.getCargoPlaceSite();
break; break;
case "4": case "4":
//点到点 //点到点
@@ -169,21 +178,32 @@ public class TsjThread implements Runnable {
} }
/** /**
* 创建提升机队列 * 创建进入提升机队列
*/ */
private void createQueue(DeviceTsj tsj) { private void createTsjQueue(DeviceTsj tsj) {
for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) { for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) {
DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(sRgv); DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(sRgv);
if (deviceSrgv.getSsjRequest()==1 && deviceSrgv.getTaskNo()>0){
//车进提升机 换层
if ("1".equals(deviceSrgv.getSpare2()) && deviceSrgv.getTaskNo()>0){
//请求进入输送机 //请求进入输送机
WcsSrgvQueue sRgvQueueParam = new WcsSrgvQueue(); WcsSrgvQueue sRgvQueueParam = new WcsSrgvQueue();
sRgvQueueParam.setAgvId(Convert.toStr(deviceSrgv.getDeviceId())); sRgvQueueParam.setAgvId(Convert.toStr(deviceSrgv.getDeviceId()));
sRgvQueueParam.setTaskNo(Convert.toStr(deviceSrgv.getTaskNo())); sRgvQueueParam.setTaskNo(Convert.toStr(deviceSrgv.getTaskNo()));
List<WcsSrgvQueue> wcsSrgvQueues = wcsSrgvQueueService.selectWcsSrgvQueueList(sRgvQueueParam); List<WcsSrgvQueue> wcsSrgvQueues = wcsSrgvQueueService.selectWcsSrgvQueueList(sRgvQueueParam);
if (CollUtil.isNotEmpty(wcsSrgvQueues)) { if (CollUtil.isNotEmpty(wcsSrgvQueues)) {
WcsSrgvQueue wcsSrgvQueue = wcsSrgvQueues.get(0);
String rwlx = "";
if ("2".equals(wcsSrgvQueue.getDefault02())){
//出库
rwlx = "1";
}
if ("4".equals(wcsSrgvQueue.getDefault02()) || "3".equals(wcsSrgvQueue.getDefault02()) || "8".equals(wcsSrgvQueue.getDefault02())){
//
rwlx = "2";
}
TsjDeviceExecutionQueue tsjDeviceExecutionQueueByRwh = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueByRwh(Convert.toLong(deviceSrgv.getTaskNo())); TsjDeviceExecutionQueue tsjDeviceExecutionQueueByRwh = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueByRwh(Convert.toLong(deviceSrgv.getTaskNo()));
if (tsjDeviceExecutionQueueByRwh == null){ if (tsjDeviceExecutionQueueByRwh == null && StrUtil.isNotEmpty(rwlx)){
WcsSrgvQueue wcsSrgvQueue = wcsSrgvQueues.get(0);
String strFloor = wcsSrgvQueue.getTheFloor(); String strFloor = wcsSrgvQueue.getTheFloor();
String tarFloor = wcsSrgvQueue.getDefault07(); String tarFloor = wcsSrgvQueue.getDefault07();
if (!Convert.toStr(tsj.getDqcs()).equals(strFloor)) { if (!Convert.toStr(tsj.getDqcs()).equals(strFloor)) {
@@ -202,7 +222,7 @@ public class TsjThread implements Runnable {
tsjDeviceExecutionQueue.setCreateDate(DateUtil.formatDateTime(new Date())); tsjDeviceExecutionQueue.setCreateDate(DateUtil.formatDateTime(new Date()));
tsjDeviceExecutionQueue.setSpare1(Convert.toStr(deviceSrgv.getDeviceId())); tsjDeviceExecutionQueue.setSpare1(Convert.toStr(deviceSrgv.getDeviceId()));
tsjDeviceExecutionQueue.setTaskType("1"); tsjDeviceExecutionQueue.setTaskType("1");
tsjDeviceExecutionQueue.setRwlx("1"); tsjDeviceExecutionQueue.setRwlx(rwlx);
tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue);
} }
@@ -210,6 +230,41 @@ public class TsjThread implements Runnable {
} }
} }
} }
//输送机配送货物到提升机
for (String ssjCode : inSsjList.keySet()) {
DeviceSsj ssj = PlcSsjRead.deviceSsjMap.get(ssjCode);
if (ObjUtil.isNotNull(ssj)) {
if (ssj.getRkqq() == 1 && ssj.getDw() == 1 && ssj.getTaskNo() > 0) {
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo()));
//输送机入库
DeviceSrgv srgvParam = new DeviceSrgv();
srgvParam.setCurrFloor(Convert.toInt(mydoJob.getTheFloor()));
List<DeviceSrgv> deviceSrgvs = deviceSrgvService.selectDeviceSrgvList(srgvParam);
if (CollUtil.isNotEmpty(deviceSrgvs)){
String theFloor = mydoJob.getTheFloor();
//生成提升机队列
TsjDeviceExecutionQueue tsjDeviceExecutionQueue = new TsjDeviceExecutionQueue();
tsjDeviceExecutionQueue.setGuid(IdUtil.simpleUUID());
tsjDeviceExecutionQueue.setDeviceId(tsj.getId());
tsjDeviceExecutionQueue.setDeviceName(tsj.getName());
tsjDeviceExecutionQueue.setTaskNo(Convert.toLong(ssj.getTaskNo()));
tsjDeviceExecutionQueue.setSrcRow("0");
tsjDeviceExecutionQueue.setSrcLayer(String.valueOf(tsj.getDqcs()));
tsjDeviceExecutionQueue.setTarRow("0");
tsjDeviceExecutionQueue.setTarLayer(theFloor);
tsjDeviceExecutionQueue.setSendType("1");
tsjDeviceExecutionQueue.setCreateDate(DateUtil.formatDateTime(new Date()));
tsjDeviceExecutionQueue.setSpare1("ssj");
tsjDeviceExecutionQueue.setTaskType("1");
tsjDeviceExecutionQueue.setRwlx("3");
tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue);
}
}
}
}
} }
private void sendTsj() { private void sendTsj() {