任务表查询排序

This commit is contained in:
lsymicc
2026-06-04 14:19:54 +08:00
parent 135f082e16
commit 43417820b1
3 changed files with 45 additions and 17 deletions

View File

@@ -23,6 +23,7 @@ import com.ruoyi.job.mapper.MydoJobMapper;
import com.ruoyi.job.domain.MydoJob; import com.ruoyi.job.domain.MydoJob;
import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.job.service.IMydoJobService;
import static com.ruoyi.common.TaskStatusCode.TASK_STATUS_FINISH_MANUAL;
import static com.ruoyi.common.WmsTaskTypeCode.*; import static com.ruoyi.common.WmsTaskTypeCode.*;
/** /**
@@ -226,11 +227,14 @@ public class MydoJobServiceImpl implements IMydoJobService
//获取所有符合【任务单号】的作业 //获取所有符合【任务单号】的作业
for (String jobId : jobIds) { for (String jobId : jobIds) {
//生成回传记录
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL);
updateMydoJob(mydoJob);
//插入历史表 //插入历史表
mydoJobMapper.insertHistory(jobId); mydoJobMapper.insertHistory(jobId);
//生成回传记录
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
JobCallBack jobCallBack = new JobCallBack(); JobCallBack jobCallBack = new JobCallBack();
jobCallBack.setType(mydoJob.getInOrOut()); jobCallBack.setType(mydoJob.getInOrOut());
jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms自定义的任务类型 jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms自定义的任务类型
@@ -245,6 +249,7 @@ public class MydoJobServiceImpl implements IMydoJobService
jobCallBackService.insertJobCallBack(jobCallBack); jobCallBackService.insertJobCallBack(jobCallBack);
//移除实时任务 //移除实时任务
mydoJobMapper.deleteMydoJobByJobId(jobId); mydoJobMapper.deleteMydoJobByJobId(jobId);
log.info("【人工操作】手动完成wcs任务,wcs任务号:{},wms任务号:{}", mydoJob.getTaskNo(), mydoJob.getWmsTaskNo()); log.info("【人工操作】手动完成wcs任务,wcs任务号:{},wms任务号:{}", mydoJob.getTaskNo(), mydoJob.getWmsTaskNo());

View File

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.List; import java.util.List;
import static com.ruoyi.common.TaskExceptionType.TASK_EXCEPTION_STOCKIN_OCCUPIED; import static com.ruoyi.common.TaskExceptionType.TASK_EXCEPTION_STOCKIN_OCCUPIED;
@@ -68,7 +69,7 @@ public class TaskHandler {
*/ */
//@Scheduled(fixedDelay = 3000) //@Scheduled(fixedDelay = 3000)
public void cancelMydoJob(){ public void cancelMydoJob(){
List<MydoJob> jobs = mydoJobService.selectInOrOutMydoJobList( List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().status(TASK_STATUS_INVALID).build() new MydoJob().builder().status(TASK_STATUS_INVALID).build()
); );
@@ -85,7 +86,7 @@ public class TaskHandler {
*/ */
//@Scheduled(fixedDelay = 3000) //@Scheduled(fixedDelay = 3000)
public void finishMydoJob(){ public void finishMydoJob(){
List<MydoJob> jobs = mydoJobService.selectInOrOutMydoJobList( List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().status(TASK_STATUS_FINISH_MANUAL).build() new MydoJob().builder().status(TASK_STATUS_FINISH_MANUAL).build()
); );
@@ -111,7 +112,7 @@ public class TaskHandler {
*/ */
@Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL)
public void stockinExceptionHandler() { public void stockinExceptionHandler() {
List<MydoJob> jobs = mydoJobService.selectInOrOutMydoJobList( List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT).build() new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT).build()
); );
@@ -162,7 +163,7 @@ public class TaskHandler {
*/ */
@Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL)
public void stockoutExceptionHandler() { public void stockoutExceptionHandler() {
List<MydoJob> jobs = mydoJobService.selectInOrOutMydoJobList( List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().executionPhase(TASK_EXCEPTION_PICK).build() new MydoJob().builder().executionPhase(TASK_EXCEPTION_PICK).build()
); );
@@ -201,25 +202,47 @@ public class TaskHandler {
*/ */
@Scheduled(fixedDelay = DEFAULTTIMEINTERVAL) @Scheduled(fixedDelay = DEFAULTTIMEINTERVAL)
public void sendTaskForStacker(){ public void sendTaskForStacker(){
List<MydoJob> jobs = mydoJobService.selectInOrOutMydoJobList( List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT_REASSIGN).build() new MydoJob().builder().executionPhase(TASK_EXCEPTION_PUT_REASSIGN).build()
); );
if (!jobs.isEmpty()) { if (!jobs.isEmpty()) {
for (MydoJob job : jobs) { for (MydoJob job : jobs) {
//获取重分的货位重新向堆垛机下发任务 stackerTask(job);
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);
} }
} }
} }
/**
* 更新堆垛机任务队列 - 异常盘点重新下发
* @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(){
}
} }

View File

@@ -298,7 +298,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if> <if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
<if test="targetRoadwayId != null and targetRoadwayId != ''"> and target_roadway_id = #{targetRoadwayId}</if> <if test="targetRoadwayId != null and targetRoadwayId != ''"> and target_roadway_id = #{targetRoadwayId}</if>
<if test="targetCargoSpaceId != null and targetCargoSpaceId != ''"> and target_cargo_space_id = #{targetCargoSpaceId}</if> <if test="targetCargoSpaceId != null and targetCargoSpaceId != ''"> and target_cargo_space_id = #{targetCargoSpaceId}</if>
<if test="priority != null "> and priority = #{priority}</if> <if test="priority != null and priority != '' "> and priority = #{priority}</if>
<if test="executionPhase != null and executionPhase != ''"> and execution_phase = #{executionPhase}</if> <if test="executionPhase != null and executionPhase != ''"> and execution_phase = #{executionPhase}</if>
<if test="inOrOut != null and inOrOut != ''"> and in_or_out = #{inOrOut}</if> <if test="inOrOut != null and inOrOut != ''"> and in_or_out = #{inOrOut}</if>
<if test="startTime != null and startTime != ''"> and start_time = #{startTime}</if> <if test="startTime != null and startTime != ''"> and start_time = #{startTime}</if>