diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index 1f0df626..7f3288b0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -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()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskType.java b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskType.java index 614398f9..5f7bd767 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskType.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskType.java @@ -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; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java index d77944fb..acfd3028 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java @@ -87,4 +87,6 @@ public class DeviceSsj extends BaseEntity private int taskNo2; + private int inOrOut; + } 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 82131cf3..bb4a0484 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -68,6 +68,9 @@ public class ScheduleThread { //调度初始化 scheduleInit(); log.info("调度服务执行成功"); + + startAllThread(); + startAllThread2(); } /** 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 283b9910..f669bca9 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 @@ -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=""; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java index 56680f63..84b24f2d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java @@ -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 ssjList) { DeviceSsj deviceSsj = roadwayOutMap.get(ssjList.get(0).getDeviceCode()); - MydoJob pdOutJob = mydoJobService.selectMydoJobByExitList(Collections.singletonList(deviceSsj.getDeviceCode())); + List 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 list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_3,Convert.toInt(pdOutJob.getRoadwayId())); + List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2,Convert.toInt(mydoJob.getRoadwayId())); List 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); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java index 8ab1c762..19f88be4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java @@ -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 exitList = new ArrayList<>(); - exitList.add(exitId); + exitList.add("1"); MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList); if (ObjUtil.isNotNull(mydoJob)) { BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java index 8a8b601b..c39449e5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java @@ -146,7 +146,7 @@ public class Floor2RoadWaySsjThread implements Runnable { log.error("货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId()); } else { //生成队列 - List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2, Convert.toInt(mydoJob.getRoadwayId())); + List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId())); List pclList = roadwayMap.get(roadSsjDevice.getDeviceCode()); if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) { DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();