feat: 子卷送到待检区任务

This commit is contained in:
2026-08-13 15:04:14 +08:00
parent e20c0f2168
commit 6db59d422d
13 changed files with 148 additions and 33 deletions

View File

@@ -19,6 +19,19 @@ import java.util.List;
@Mapper
public interface PackagePointMapper extends BaseMapperX<PackagePointDO> {
/**
* 根据点位编码查询点位
*
* @param pointCode 点位编码
* @param flag 是否仅查询启用点位
* @return 点位信息
*/
default PackagePointDO selectByPointCode(String pointCode, boolean flag) {
return selectOne(new LambdaQueryWrapperX<PackagePointDO>()
.eq(PackagePointDO::getPointCode, pointCode)
.eq(flag, PackagePointDO::getIsUsed, true));
}
/**
* 查询可用点位
*

View File

@@ -4,6 +4,7 @@ import cn.code.nl.module.lms.dal.dataobject.packagepoint.PackagePointDO;
import cn.code.nl.module.lms.dal.mysql.packagepoint.PackagePointMapper;
import cn.code.nl.module.lms.enums.BoxPointStatusEnum;
import cn.code.nl.module.lms.enums.BoxPointTypeEnum;
import cn.code.nl.module.lms.enums.PackageTaskTypeEnum;
import cn.code.nl.module.task.api.TransportTaskApi;
import cn.code.nl.module.task.dto.TransportTaskCreateReqDTO;
import cn.code.nl.module.task.enums.TaskOwnerServiceEnum;
@@ -95,6 +96,7 @@ public class PackageBoxBusinessServiceImpl implements PackageBoxBusinessService
task.setOwnerService(TaskOwnerServiceEnum.LMS.name());
task.setBizType(SUB_ROLL_DOWN_BIZ_TYPE);
task.setBizId(sourcePoint.getContainerName());
task.setTaskType(PackageTaskTypeEnum.SUB_ROLL_DOWN_AGV.getCode());
task.setHandleCode(SUB_ROLL_DOWN_HANDLE_CODE);
task.setAcsTaskType(ACS_MOVE_TASK_TYPE);
task.setAgvSystemType(AGV_SYSTEM_TYPE);

View File

@@ -59,4 +59,17 @@ public interface PackagePointService {
*/
PageResult<PackagePointDO> getPackagePointPage(PackagePointPageReqVO pageReqVO);
/**
* 根据点位编码获取点位信息
* @param pointCode 点位编码
* @param flag 是否判断禁用
* @return
*/
PackagePointDO getPackagePointByCode(String pointCode, boolean flag);
/**
* 批量更新
* @param points
*/
void updatePackagePoints(List<PackagePointDO> points);
}

View File

@@ -77,4 +77,14 @@ public class PackagePointServiceImpl implements PackagePointService {
return packagePointMapper.selectPage(pageReqVO);
}
@Override
public PackagePointDO getPackagePointByCode(String pointCode, boolean flag) {
return packagePointMapper.selectByPointCode(pointCode, flag);
}
@Override
public void updatePackagePoints(List<PackagePointDO> points) {
packagePointMapper.updateBatch(points);
}
}

View File

@@ -2,9 +2,17 @@ package cn.code.nl.module.lms.tasks.box;
import cn.code.nl.framework.execute.core.AbstractTask;
import cn.code.nl.framework.execute.core.dto.TaskExecuteDTO;
import cn.code.nl.module.lms.dal.dataobject.packagepoint.PackagePointDO;
import cn.code.nl.module.lms.dal.mysql.packagepoint.PackagePointMapper;
import cn.code.nl.module.lms.enums.BoxPointStatusEnum;
import cn.code.nl.module.task.api.TransportTaskApi;
import cn.code.nl.module.task.dto.TaskInfoDTO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 子卷下线AGV任务
* @Author: liyongde
@@ -13,18 +21,46 @@ import org.springframework.stereotype.Component;
@Slf4j
@Component("subRollDownAgvTask")
public class SubRollDownAgvTask extends AbstractTask {
@Resource
private TransportTaskApi transportTaskApi;
@Resource
private PackagePointMapper packagePointMapper;
@Override
public void doHandleFinish(TaskExecuteDTO taskExecuteDTO) {
TaskInfoDTO taskInfoDTO = transportTaskApi.getTaskById(taskExecuteDTO.getTaskId()).getCheckedData();
PackagePointDO endPoint = packagePointMapper.selectByPointCode(taskInfoDTO.getPointCode2(), false);
endPoint.setVehicleCode(taskInfoDTO.getVehicleCode());
endPoint.setContainerName(taskInfoDTO.getMaterialCode());
endPoint.setPointStatus(BoxPointStatusEnum.HAS_SUB_ROLL.getCode());
endPoint.setLockStatus("0");
packagePointMapper.updateById(endPoint);
log.info("任务{}执行完成,子卷已存入点位{}", taskExecuteDTO.getTaskId(), taskInfoDTO.getPointCode2());
}
@Override
public void doHandleCancel(TaskExecuteDTO taskExecuteDTO) {
TaskInfoDTO taskInfoDTO = transportTaskApi.getTaskById(taskExecuteDTO.getTaskId()).getCheckedData();
PackagePointDO startPoint = packagePointMapper.selectByPointCode(taskInfoDTO.getPointCode1(), false);
PackagePointDO endPoint = packagePointMapper.selectByPointCode(taskInfoDTO.getPointCode2(), false);
// 解锁
startPoint.setLockStatus("0");
endPoint.setLockStatus("0");
packagePointMapper.updateBatch(List.of(startPoint, endPoint));
}
@Override
public void doHandlePicked(TaskExecuteDTO taskExecuteDTO) {
// 取货完成,释放点位
TaskInfoDTO taskInfoDTO = transportTaskApi.getTaskById(taskExecuteDTO.getTaskId()).getCheckedData();
PackagePointDO startPoint = packagePointMapper.selectByPointCode(taskInfoDTO.getPointCode1(), false);
startPoint.setLockStatus("0");
startPoint.setPointStatus(BoxPointStatusEnum.EMPTY.getCode());
startPoint.setVehicleCode("");
startPoint.setContainerName("");
packagePointMapper.updateById(startPoint);
log.info("任务{}执行取货完成", taskExecuteDTO.getTaskId());
}
}

View File

@@ -4,24 +4,7 @@
<select id="selectAvailablePointList"
resultType="cn.code.nl.module.lms.dal.dataobject.packagepoint.PackagePointDO">
SELECT point_id,
point_code,
point_name,
point_type,
container_name,
point_status,
vehicle_code,
block,
point_location,
sort_seq,
is_used,
remark,
plan,
row_num,
col_num,
depth,
wait_point_type,
lock_status
SELECT *
FROM lms_package_point
WHERE point_type = #{pointType}
AND point_status = #{pointStatus}