feat:定时器补充入装箱区任务
This commit is contained in:
@@ -2,7 +2,9 @@ package cn.code.nl.module.task.api;
|
||||
|
||||
import cn.code.nl.framework.common.pojo.CommonResult;
|
||||
import cn.code.nl.module.task.dto.TaskInfoDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskDestinationAssignReq;
|
||||
import cn.code.nl.module.task.dto.TransportTaskCreateReqDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskQueryReq;
|
||||
import cn.code.nl.module.task.dto.UnfinishedTaskPointReqDTO;
|
||||
import cn.code.nl.module.task.dto.TaskCallbackResultReqDTO;
|
||||
import cn.code.nl.module.task.service.transporttask.TransportTaskCallbackService;
|
||||
@@ -86,4 +88,26 @@ public class TransportTaskApiImpl implements TransportTaskApi {
|
||||
public CommonResult<Boolean> hasUnfinishedByPointCodes(UnfinishedTaskPointReqDTO reqDTO) {
|
||||
return success(transportTaskService.hasUnfinishedByPointCodes(reqDTO.getPointCodes()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务类型和状态查询搬运任务
|
||||
*
|
||||
* @param req 查询请求
|
||||
* @return 搬运任务列表
|
||||
*/
|
||||
@Override
|
||||
public CommonResult<List<TaskInfoDTO>> queryTransportTasks(TransportTaskQueryReq req) {
|
||||
return success(transportTaskService.queryTransportTasks(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件分配搬运任务目的点并推进任务状态
|
||||
*
|
||||
* @param req 目的点分配请求
|
||||
* @return 是否分配成功
|
||||
*/
|
||||
@Override
|
||||
public CommonResult<Boolean> assignDestination(TransportTaskDestinationAssignReq req) {
|
||||
return success(transportTaskService.assignDestination(req));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,37 @@ public interface TransportTaskMapper extends BaseMapperX<TransportTaskDO> {
|
||||
*/
|
||||
long selectUnfinishedCountByPointCodes(@Param("pointCodes") List<String> pointCodes);
|
||||
|
||||
/**
|
||||
* 根据任务类型和状态查询搬运任务
|
||||
*
|
||||
* @param taskType 任务类型
|
||||
* @param taskStatus 任务状态
|
||||
* @return 搬运任务列表
|
||||
*/
|
||||
List<TransportTaskDO> selectListByTypeAndStatus(@Param("taskType") String taskType,
|
||||
@Param("taskStatus") String taskStatus);
|
||||
|
||||
/**
|
||||
* 条件分配任务目的点并推进任务状态
|
||||
*
|
||||
* @param taskId 任务标识
|
||||
* @param pointCode2 目的点编码
|
||||
* @param expectedTaskStatus 期望任务状态
|
||||
* @param targetTaskStatus 目标任务状态
|
||||
* @return 更新行数
|
||||
*/
|
||||
default int assignDestination(Long taskId, String pointCode2,
|
||||
String expectedTaskStatus, String targetTaskStatus) {
|
||||
TransportTaskDO updateObj = new TransportTaskDO();
|
||||
updateObj.setPointCode2(pointCode2);
|
||||
updateObj.setTaskStatus(targetTaskStatus);
|
||||
|
||||
LambdaUpdateWrapper<TransportTaskDO> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.eq(TransportTaskDO::getTaskId, taskId)
|
||||
.eq(TransportTaskDO::getTaskStatus, expectedTaskStatus);
|
||||
return update(updateObj, wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件更新任务状态(CAS 抢占)
|
||||
*/
|
||||
|
||||
@@ -5,7 +5,9 @@ import jakarta.validation.*;
|
||||
import cn.code.nl.module.task.controller.admin.transporttask.vo.*;
|
||||
import cn.code.nl.module.task.dal.dataobject.transporttask.TransportTaskDO;
|
||||
import cn.code.nl.module.task.dto.TaskInfoDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskDestinationAssignReq;
|
||||
import cn.code.nl.module.task.dto.TransportTaskCreateReqDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskQueryReq;
|
||||
import cn.code.nl.framework.common.pojo.PageResult;
|
||||
import cn.code.nl.framework.common.pojo.PageParam;
|
||||
|
||||
@@ -133,6 +135,22 @@ public interface TransportTaskService {
|
||||
*/
|
||||
boolean hasUnfinishedByPointCodes(List<String> pointCodes);
|
||||
|
||||
/**
|
||||
* 根据任务类型和状态查询搬运任务
|
||||
*
|
||||
* @param req 查询请求
|
||||
* @return 搬运任务列表
|
||||
*/
|
||||
List<TaskInfoDTO> queryTransportTasks(TransportTaskQueryReq req);
|
||||
|
||||
/**
|
||||
* 条件分配搬运任务目的点并推进任务状态
|
||||
*
|
||||
* @param req 目的点分配请求
|
||||
* @return 是否分配成功
|
||||
*/
|
||||
boolean assignDestination(TransportTaskDestinationAssignReq req);
|
||||
|
||||
/**
|
||||
* 自动下发待下发任务到 ACS
|
||||
*/
|
||||
|
||||
@@ -15,7 +15,9 @@ import cn.code.nl.module.task.dal.dataobject.transporttask.TransportTaskDO;
|
||||
import cn.code.nl.module.task.dal.mysql.transporttask.TransportTaskMapper;
|
||||
import cn.code.nl.module.task.dto.AcsFeedbackReqDTO;
|
||||
import cn.code.nl.module.task.dto.TaskInfoDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskDestinationAssignReq;
|
||||
import cn.code.nl.module.task.dto.TransportTaskCreateReqDTO;
|
||||
import cn.code.nl.module.task.dto.TransportTaskQueryReq;
|
||||
import cn.code.nl.module.task.enums.CallbackStatusEnum;
|
||||
import cn.code.nl.module.task.enums.FinishedTypeEnum;
|
||||
import cn.code.nl.module.task.enums.TaskOperationTypeEnum;
|
||||
@@ -241,6 +243,31 @@ public class TransportTaskServiceImpl implements TransportTaskService {
|
||||
return transportTaskMapper.selectUnfinishedCountByPointCodes(pointCodes) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务类型和状态查询搬运任务
|
||||
*
|
||||
* @param req 查询请求
|
||||
* @return 搬运任务列表
|
||||
*/
|
||||
@Override
|
||||
public List<TaskInfoDTO> queryTransportTasks(TransportTaskQueryReq req) {
|
||||
List<TransportTaskDO> tasks = transportTaskMapper.selectListByTypeAndStatus(
|
||||
req.getTaskType(), req.getTaskStatus());
|
||||
return TransportTaskConvert.INSTANCE.convertList(tasks);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件分配搬运任务目的点并推进任务状态
|
||||
*
|
||||
* @param req 目的点分配请求
|
||||
* @return 是否分配成功
|
||||
*/
|
||||
@Override
|
||||
public boolean assignDestination(TransportTaskDestinationAssignReq req) {
|
||||
return transportTaskMapper.assignDestination(req.getTaskId(), req.getPointCode2(),
|
||||
req.getExpectedTaskStatus(), req.getTargetTaskStatus()) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询待下发任务,并委托下发管理器按生产区域下发到 ACS
|
||||
*/
|
||||
|
||||
@@ -27,4 +27,14 @@
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="selectListByTypeAndStatus"
|
||||
resultType="cn.code.nl.module.task.dal.dataobject.transporttask.TransportTaskDO">
|
||||
SELECT *
|
||||
FROM task_transport_job
|
||||
WHERE task_type = #{taskType}
|
||||
AND task_status = #{taskStatus}
|
||||
AND deleted = b'0'
|
||||
ORDER BY task_id ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user