提升机调度
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user