From 43417820b1dba37b88a8e47b7c18862a6958c079 Mon Sep 17 00:00:00 2001 From: lsymicc Date: Thu, 4 Jun 2026 14:19:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/service/impl/MydoJobServiceImpl.java | 9 +++- .../schedule/scheduleTask/TaskHandler.java | 51 ++++++++++++++----- .../resources/mapper/job/MydoJobMapper.xml | 2 +- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java index da558cf..a37f4d6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java @@ -23,6 +23,7 @@ import com.ruoyi.job.mapper.MydoJobMapper; import com.ruoyi.job.domain.MydoJob; import com.ruoyi.job.service.IMydoJobService; +import static com.ruoyi.common.TaskStatusCode.TASK_STATUS_FINISH_MANUAL; import static com.ruoyi.common.WmsTaskTypeCode.*; /** @@ -226,11 +227,14 @@ public class MydoJobServiceImpl implements IMydoJobService //获取所有符合【任务单号】的作业 for (String jobId : jobIds) { + //生成回传记录 + MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId); + mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL); + updateMydoJob(mydoJob); + //插入历史表 mydoJobMapper.insertHistory(jobId); - //生成回传记录 - MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId); JobCallBack jobCallBack = new JobCallBack(); jobCallBack.setType(mydoJob.getInOrOut()); jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms自定义的任务类型 @@ -245,6 +249,7 @@ public class MydoJobServiceImpl implements IMydoJobService jobCallBackService.insertJobCallBack(jobCallBack); //移除实时任务 + mydoJobMapper.deleteMydoJobByJobId(jobId); log.info("【人工操作】手动完成wcs任务,wcs任务号:{},wms任务号:{}", mydoJob.getTaskNo(), mydoJob.getWmsTaskNo()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java index 87844d3..12a0b48 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import java.util.List; import static com.ruoyi.common.TaskExceptionType.TASK_EXCEPTION_STOCKIN_OCCUPIED; @@ -68,7 +69,7 @@ public class TaskHandler { */ //@Scheduled(fixedDelay = 3000) public void cancelMydoJob(){ - List jobs = mydoJobService.selectInOrOutMydoJobList( + List jobs = mydoJobService.selectMydoJobList( new MydoJob().builder().status(TASK_STATUS_INVALID).build() ); @@ -85,7 +86,7 @@ public class TaskHandler { */ //@Scheduled(fixedDelay = 3000) public void finishMydoJob(){ - List jobs = mydoJobService.selectInOrOutMydoJobList( + List jobs = mydoJobService.selectMydoJobList( new MydoJob().builder().status(TASK_STATUS_FINISH_MANUAL).build() ); @@ -111,7 +112,7 @@ public class TaskHandler { */ @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) public void stockinExceptionHandler() { - List jobs = mydoJobService.selectInOrOutMydoJobList( + List jobs = mydoJobService.selectMydoJobList( new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT).build() ); @@ -162,7 +163,7 @@ public class TaskHandler { */ @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) public void stockoutExceptionHandler() { - List jobs = mydoJobService.selectInOrOutMydoJobList( + List jobs = mydoJobService.selectMydoJobList( new MydoJob().builder().executionPhase(TASK_EXCEPTION_PICK).build() ); @@ -201,25 +202,47 @@ public class TaskHandler { */ @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) public void sendTaskForStacker(){ - List jobs = mydoJobService.selectInOrOutMydoJobList( + List jobs = mydoJobService.selectMydoJobList( new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT_REASSIGN).build() ); if (!jobs.isEmpty()) { for (MydoJob job : jobs) { - //获取重分的货位重新向堆垛机下发任务 - BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(job.getCargoSpaceId()); - DdjDeviceExecutionQueue ddjDeviceExecutionQueue = - ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(Long.valueOf(job.getTaskNo()), Integer.valueOf(job.getRoadwayId())); - ddjDeviceExecutionQueue.setMbph(basCargoSpace.getThePlatoon()); - ddjDeviceExecutionQueue.setMblh(basCargoSpace.getTheColumn()); - ddjDeviceExecutionQueue.setMbch(basCargoSpace.getTheFloor()); - ddjDeviceExecutionQueue.setDdjxf("0"); - ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); + stackerTask(job); } } } + /** + * 更新堆垛机任务队列 - 异常盘点重新下发 + * @param mydoJob + */ + public void stackerTask(MydoJob mydoJob) { + //获取重分的货位重新向堆垛机下发任务 + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); + DdjDeviceExecutionQueue ddjDeviceExecutionQueue = + ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(Long.valueOf(mydoJob.getTaskNo()), Integer.valueOf(mydoJob.getRoadwayId())); + ddjDeviceExecutionQueue.setMbph(basCargoSpace.getThePlatoon()); + ddjDeviceExecutionQueue.setMblh(basCargoSpace.getTheColumn()); + ddjDeviceExecutionQueue.setMbch(basCargoSpace.getTheFloor()); + ddjDeviceExecutionQueue.setDdjxf("0"); + ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); + } + + + /** + * 查询正在执行的堆垛机队列是否为遗留记录 - 清理遗留队列数据 + */ +// @Scheduled(fixedDelay = 30000) + public void clearStackerQueue(){ +// ddjDeviceExecutionQueueService.se + } + + @PostConstruct + public void mpTest(){ + + } + } diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 7dea670..cf4e0ad 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -298,7 +298,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and cargo_space_id = #{cargoSpaceId} and target_roadway_id = #{targetRoadwayId} and target_cargo_space_id = #{targetCargoSpaceId} - and priority = #{priority} + and priority = #{priority} and execution_phase = #{executionPhase} and in_or_out = #{inOrOut} and start_time = #{startTime}