From 4cb46259925aad43eebb95fb7b9acd043872b3c7 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 12 Dec 2025 13:52:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(schedule):=20=E4=BC=98=E5=8C=96=E6=A5=BC?= =?UTF-8?q?=E5=B1=82=E4=BB=BB=E5=8A=A1=E8=B0=83=E5=BA=A6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增任务执行阶段状态管理,支持多阶段任务查询 - 完善任务下发逻辑,增加任务执行状态更新机制 - 修改PLC写入逻辑,确保任务正确下发至设备 - 移除冗余代码,提升线程执行效率 - 更新任务执行阶段常量定义,统一状态码管理 - 优化MydoJob实体类,支持执行阶段列表查询 - 调整数据库查询条件,支持入口ID列表筛选 --- .../java/com/ruoyi/common/TaskStatusCode.java | 15 +++++-- .../java/com/ruoyi/job/domain/MydoJob.java | 4 ++ .../ssj/floor1/Floor1BothWayInSsjThread.java | 28 +++++++------ .../ssj/floor2/Floor2InOutSsjThread.java | 1 - .../resources/mapper/job/MydoJobMapper.xml | 42 +++++++++++-------- 5 files changed, 56 insertions(+), 34 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java index 62d4cbb..300794c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java @@ -29,6 +29,16 @@ public class TaskStatusCode { * 任务状态-作废 */ public static final String TASK_STATUS_INVALID = "5"; + + /** + * 任务执行阶段 创建 + */ + public static final String TASK_EP_CREATE = "0"; + + /** + * 任务执行阶段 产线 + */ + public static final String TASK_EP_LINE_SSJ = "1"; /** * 任务执行阶段 AGV */ @@ -40,17 +50,16 @@ public class TaskStatusCode { /** * 任务执行阶段 巷道口 */ - public static final String TASK_EP_ROADWAY_SSJ = "3"; + public static final String TASK_EP_ROADWAY_SSJ = "4"; /** * 任务执行阶段 堆垛机 */ - public static final String TASK_EP_DDJ = "4"; + public static final String TASK_EP_DDJ = "5"; /** * 任务执行阶段 回传wms完成 */ public static final String TASK_EP_WMS_FINISH = "6"; - public static final String TASK_EP_LINE_SSJ = "1"; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJob.java b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJob.java index 7ff34a7..a7125bc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJob.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJob.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.util.List; + /** * 作业信息对象 mydo_job_wcs * @@ -91,4 +93,6 @@ public class MydoJob extends BaseEntity private String inOut; private String flag; + + private List epList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java index db06648..0871723 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java @@ -99,6 +99,12 @@ public class Floor1BothWayInSsjThread implements Runnable { if (ssj.getDw() == 1 && ssj.getTaskNo() > 0) { int taskNo = ssj.getTaskNo(); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(taskNo)); + if (ObjUtil.isNotNull(mydoJob) && "1".equals(mydoJob.getStatus()) && TASK_EP_SSJ.equals(mydoJob.getExecutionPhase()) && Convert.toInt(mydoJob.getInOrOut())<20){ + //修改作业执行状态 + mydoJob.setStatus(TASK_STATUS_RUNNING); + mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); + mydoJobService.updateMydoJob(mydoJob); + } if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); mydoJobService.updateMydoJob(mydoJob); @@ -200,8 +206,11 @@ public class Floor1BothWayInSsjThread implements Runnable { }else { //查询下发的任务 MydoJob param = new MydoJob(); - param.setExecutionPhase("1"); - param.setStatus("1"); + ArrayList epList = new ArrayList<>(); + epList.add(TASK_EP_CREATE); + epList.add(TASK_EP_SSJ); + param.setEpList(epList); + param.setStatus(TASK_STATUS_CREATE); param.setEntranceId(ssj.getDeviceCode()); List mydoJobs = mydoJobService.selectMydoJobList(param); if (CollUtil.isNotEmpty(mydoJobs)){ @@ -209,7 +218,7 @@ public class Floor1BothWayInSsjThread implements Runnable { MydoJob mydoJob = mydoJobs.get(0); int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob.getTaskNo(),1,1); if (i == 1) { - mydoJob.setExecutionPhase("1"); + mydoJob.setExecutionPhase(TASK_EP_SSJ); mydoJobService.updateMydoJob(mydoJob); log.info("{}已重复下发任务号{}:",ssj.getDeviceCode(),mydoJob.getTaskNo()); } @@ -221,10 +230,11 @@ public class Floor1BothWayInSsjThread implements Runnable { AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap); if (ajaxResult.isSuccess()) { MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class); + mydoJob2.setExecutionPhase(TASK_EP_CREATE); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); if (i == 1) { - mydoJob2.setExecutionPhase("1"); + mydoJob2.setExecutionPhase(TASK_EP_SSJ); mydoJobService.updateMydoJob(mydoJob2); log.info("{}已下发任务号{}:",ssj.getDeviceCode(),mydoJob2.getTaskNo()); } @@ -243,15 +253,7 @@ public class Floor1BothWayInSsjThread implements Runnable { } - if (ssj.getDw() == 1 && ssj.getTaskNo() > 0 && ssj.getTraySize() != 0){ - MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo())); - if (ObjUtil.isNotNull(mydoJob) && "1".equals(mydoJob.getStatus()) && "1".equals(mydoJob.getExecutionPhase()) && Convert.toInt(mydoJob.getInOrOut())<20){ - //修改作业执行状态 - mydoJob.setStatus("3"); - mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); - mydoJobService.updateMydoJob(mydoJob); - } - } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java index d88d6fd..7dd7284 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java @@ -21,7 +21,6 @@ import java.util.Date; import java.util.HashMap; import java.util.List; -import static com.ruoyi.common.TaskStatusCode.TASK_EP_LINE_SSJ; import static com.ruoyi.common.TaskStatusCode.TASK_EP_SSJ; import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj; diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 6f2a5fa..3965305 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -36,23 +36,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"