This commit is contained in:
zj
2026-01-15 14:45:14 +08:00
parent 50534dc3be
commit 4e0d329e6d
8 changed files with 33 additions and 21 deletions

View File

@@ -378,7 +378,11 @@ public class ApiServiceImpl implements IApiService {
mydoJob.setJobId(receiveOutJob.getJobId());
mydoJob.setTaskNo(receiveOutJob.getTaskNo());
mydoJob.setCargoSpaceId(receiveOutJob.getCargoSpaceId());
mydoJob.setExitId(receiveOutJob.getExitId());
if("L2002".equals(receiveOutJob.getExitId()) || "L2008".equals(receiveOutJob.getCargoSpaceId())
|| "L2004".equals(receiveOutJob.getCargoSpaceId()) || "L2006".equals(receiveOutJob.getExitId())) {
mydoJob.setExitId("1");
}
mydoJob.setInOrOut(receiveOutJob.getInOrOut());
mydoJob.setStatus("1");
mydoJob.setTrayCode(receiveOutJob.getTrayCode());

View File

@@ -5,11 +5,11 @@ public class TaskType {
/**
* 堆垛机任务类型
*/
//1-二楼双向
//1-二楼入出
public static final int DDJ_RWLX_1 = 1;
//2-一楼单向
//2-一楼出库
public static final int DDJ_RWLX_2 = 2;
//3-一楼双向
//3-一楼入库
public static final int DDJ_RWLX_3 = 3;
}

View File

@@ -87,4 +87,6 @@ public class DeviceSsj extends BaseEntity
private int taskNo2;
private int inOrOut;
}

View File

@@ -68,6 +68,9 @@ public class ScheduleThread {
//调度初始化
scheduleInit();
log.info("调度服务执行成功");
startAllThread();
startAllThread2();
}
/**

View File

@@ -150,6 +150,7 @@ public class PlcSsjRead implements Runnable {
ssjDevice.setSszt(ParseUtil.optInt(8, ddsx1));
ssjDevice.setRkqq(ParseUtil.optInt(10, ddsx1));
ssjDevice.setTraySize(ParseUtil.optInt(12, ddsx1));
ssjDevice.setInOrOut(ParseUtil.optInt(24, ddsx1));
ssjDevice.setException(ParseUtil.optInt(28, ddsx1));
String trayCodeReadAddress="";

View File

@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import java.util.*;
import static com.ruoyi.common.TaskStatusCode.*;
import static com.ruoyi.common.TaskType.DDJ_RWLX_2;
import static com.ruoyi.common.TaskType.DDJ_RWLX_3;
/**
@@ -142,24 +143,26 @@ public class Floor1BothWayOutSsjThread implements Runnable {
*/
public void dispatch(List<DeviceSsj> ssjList) {
DeviceSsj deviceSsj = roadwayOutMap.get(ssjList.get(0).getDeviceCode());
MydoJob pdOutJob = mydoJobService.selectMydoJobByExitList(Collections.singletonList(deviceSsj.getDeviceCode()));
List<String> exitList = new ArrayList<>();
exitList.add("1");
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList);
MydoJob inJob = mydoJobService.selectMydoJobByEntranceList(Collections.singletonList(deviceSsj.getDeviceCode()));
boolean allKx = ssjList.stream().allMatch(ssj -> ssj.getKx() == 1);
if (ObjUtil.isNotNull(pdOutJob) && allKx && ObjUtil.isNull(inJob)) {
if (ObjUtil.isNotNull(mydoJob) && allKx && ObjUtil.isNull(inJob) && deviceSsj.getInOrOut() == 1) {
//所有线体为空闲 并且存在出库作业 并且不存在入库作业
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(pdOutJob.getCargoSpaceId());
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
if (ObjUtil.isNull(basCargoSpace)){
log.error("货位不存在 cargoSpaceId{}",pdOutJob.getCargoSpaceId());
log.error("货位不存在 cargoSpaceId{}",mydoJob.getCargoSpaceId());
}else {
//生成队列
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_3,Convert.toInt(pdOutJob.getRoadwayId()));
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2,Convert.toInt(mydoJob.getRoadwayId()));
List<Integer> pclList = roadwayMap.get(ssjList.get(0).getDeviceCode());
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)){
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
ddjDeviceExecutionQueue.setRwh(Convert.toLong(pdOutJob.getTaskNo()));
ddjDeviceExecutionQueue.setDevName(pdOutJob.getRoadwayId());
ddjDeviceExecutionQueue.setDevId(Convert.toInt(pdOutJob.getRoadwayId()));
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
ddjDeviceExecutionQueue.setRwzt(0);
ddjDeviceExecutionQueue.setYph(Convert.toInt(basCargoSpace.getThePlatoon()));
ddjDeviceExecutionQueue.setYlh(Convert.toInt(basCargoSpace.getTheColumn()));
@@ -169,15 +172,15 @@ public class Floor1BothWayOutSsjThread implements Runnable {
ddjDeviceExecutionQueue.setMbch(pclList.get(2));
ddjDeviceExecutionQueue.setDdjxf("0");
ddjDeviceExecutionQueue.setMlfs(5);
ddjDeviceExecutionQueue.setSpare1(pdOutJob.getTraySize());
ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize());
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_3);
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
pdOutJob.setStatus(TASK_STATUS_RUNNING);
pdOutJob.setExecutionPhase(TASK_EP_DDJ);
pdOutJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
mydoJobService.updateMydoJob(pdOutJob);
mydoJob.setStatus(TASK_STATUS_RUNNING);
mydoJob.setExecutionPhase(TASK_EP_DDJ);
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
mydoJobService.updateMydoJob(mydoJob);
}
}

View File

@@ -150,9 +150,8 @@ public class Floor1SingleSsjThread implements Runnable {
public void dispatch(DeviceSsj ssj) {
//如果入库请求1 并且 托盘码不为空
if (ssj.getKx() == 1) {
String exitId = exitRoadwayMap.get(ssj.getDeviceCode());
List<String> exitList = new ArrayList<>();
exitList.add(exitId);
exitList.add("1");
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList);
if (ObjUtil.isNotNull(mydoJob)) {
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());

View File

@@ -146,7 +146,7 @@ public class Floor2RoadWaySsjThread implements Runnable {
log.error("货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
} else {
//生成队列
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2, Convert.toInt(mydoJob.getRoadwayId()));
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId()));
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) {
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();