接口优化

This commit is contained in:
杨学谦 2026-01-02 16:23:22 +08:00
parent 3e72a70dd8
commit a52149750f

View File

@ -993,22 +993,48 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
@Override
@Transactional(rollbackFor = Exception.class)
public BaseWcsApiResponse sendTaskResult(WcsTaskResultRequest wcsTaskResultRequest) {
int maxRetries = 3;
int retryCount = 0;
while (retryCount < maxRetries) {
try {
return performSendTaskResult(wcsTaskResultRequest);
} catch (Exception e) {
if (e.getMessage().contains("Deadlock found when trying to get lock") && retryCount < maxRetries - 1) {
retryCount++;
log.warn("死锁异常,正在进行第{}次重试任务ID: {}", retryCount, wcsTaskResultRequest.getTaskId());
try {
Thread.sleep(50L * retryCount); // 递增延迟
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
throw new RuntimeException("重试过程被中断", ie);
}
continue;
}
throw e;
}
}
return BaseWcsApiResponse.error("处理任务状态反馈失败,已重试" + maxRetries + "");
}
private BaseWcsApiResponse performSendTaskResult(WcsTaskResultRequest wcsTaskResultRequest) {
if (StringUtils.isEmpty(wcsTaskResultRequest.getTaskId()) || wcsTaskResultRequest.getTaskStatus() == null) {
return BaseWcsApiResponse.error("请求缺少关键信息:任务号、任务状态。");
}
// 查询对应的wcs任务
TAppWcsTask wcsTask = appWcsTaskService.getOne(
new LambdaQueryWrapper<TAppWcsTask>()
.eq(TAppWcsTask::getWcsTaskId, wcsTaskResultRequest.getTaskId())
);
TAppWcsTask wcsTask = appWcsTaskService.getById(wcsTaskResultRequest.getTaskId());
if (wcsTask == null) {
return BaseWcsApiResponse.error("未找到对应的wcs任务。");
}
// 转换堆垛机任务状态
int wmsTaskStatus = ConvertUtils.convertWcsStackerTaskStatusToWmsTaskStatus(wcsTaskResultRequest.getTaskStatus());
if (wmsTaskStatus == -1) {
return BaseWcsApiResponse.error("反馈的任务状态值无效。");
}
// 判断反馈的任务状态是否是已完成
if (Objects.equals(wcsTaskResultRequest.getTaskStatus(), WcsStackerTaskStatusEnums.FINISH.getCode())) {
// 更新wms任务状态
@ -1051,6 +1077,67 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
return BaseWcsApiResponse.success("处理任务状态反馈成功。");
}
// @Override
// @Transactional(rollbackFor = Exception.class)
// public BaseWcsApiResponse sendTaskResult(WcsTaskResultRequest wcsTaskResultRequest) {
// if (StringUtils.isEmpty(wcsTaskResultRequest.getTaskId()) || wcsTaskResultRequest.getTaskStatus() == null) {
// return BaseWcsApiResponse.error("请求缺少关键信息:任务号、任务状态。");
// }
// // 查询对应的wcs任务
// TAppWcsTask wcsTask = appWcsTaskService.getById(wcsTaskResultRequest.getTaskId());
// if (wcsTask == null) {
// return BaseWcsApiResponse.error("未找到对应的wcs任务。");
// }
// // 转换堆垛机任务状态
// int wmsTaskStatus = ConvertUtils.convertWcsStackerTaskStatusToWmsTaskStatus(wcsTaskResultRequest.getTaskStatus());
// if (wmsTaskStatus == -1) {
// return BaseWcsApiResponse.error("反馈的任务状态值无效。");
// }
// // 判断反馈的任务状态是否是已完成
// if (Objects.equals(wcsTaskResultRequest.getTaskStatus(), WcsStackerTaskStatusEnums.FINISH.getCode())) {
// // 更新wms任务状态
// appWmsTaskService.update(
// new LambdaUpdateWrapper<TAppTask>()
// .set(TAppTask::getTaskStatus, WmsStackerTaskStatusEnums.FINISH.getCode())
// .set(TAppTask::getFinishTime, LocalDateTime.now())
// .eq(TAppTask::getWcsTaskId, wcsTaskResultRequest.getTaskId())
// );
// // 移除wcs任务并向wcs备份表添加记录
// TAppWcsTaskBak wcsTaskBak = new TAppWcsTaskBak(
// wcsTask.getWcsTaskId(),
// wcsTask.getWcsTaskStatus(),
// wcsTask.getWcsTaskType(),
// wcsTask.getTaskPriority(),
// wcsTask.getVehicleId(),
// wcsTask.getOrigin(),
// wcsTask.getDestination(),
// wcsTask.getCreateTime(),
// wcsTask.getSendTime(),
// wcsTask.getFinishTime(),
// wcsTask.getRemark()
// );
// appWcsTaskService.removeById(wcsTask.getWcsTaskId());
// appWcsTaskBakService.save(wcsTaskBak);
// } else {
// // 更新wms任务状态
// appWmsTaskService.update(
// new LambdaUpdateWrapper<TAppTask>()
// .set(TAppTask::getTaskStatus, wmsTaskStatus)
// .eq(TAppTask::getWcsTaskId, wcsTaskResultRequest.getTaskId())
// );
// // 更新wcs任务状态
// appWcsTaskService.update(
// new LambdaUpdateWrapper<TAppWcsTask>()
// .set(TAppWcsTask::getWcsTaskStatus, wcsTaskResultRequest.getTaskStatus())
// .eq(TAppWcsTask::getWcsTaskId, wcsTaskResultRequest.getTaskId())
// );
// }
// return BaseWcsApiResponse.success("处理任务状态反馈成功。");
// }
/**
* 实现
* 调用EWM系统获取入库具体信息
@ -2354,6 +2441,9 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
if (inventoryConfirmRequest == null) {
return BaseWmsApiResponse.error("请求信息为空。");
}
if (StringUtils.isEmpty(inventoryConfirmRequest.getInventoryId())) {
return BaseWmsApiResponse.error("请求信息缺少关键信息,请刷新后重试!");
}
if (StringUtils.isEmpty(inventoryConfirmRequest.getStandId())) {
return BaseWmsApiResponse.error("请求信息缺少站台号。");
}
@ -2437,9 +2527,9 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
}
}
// 查询库存获得当前载具中存储的库存列表
LambdaQueryWrapper<TAppStock> stockQueryWrapper = new LambdaQueryWrapper<TAppStock>()
.eq(TAppStock::getVehicleId, thisPickTask.getVehicleId());
List<TAppStock> stockList = appStockService.list(stockQueryWrapper);
// LambdaQueryWrapper<TAppStock> stockQueryWrapper = new LambdaQueryWrapper<TAppStock>()
// .eq(TAppStock::getVehicleId, thisPickTask.getVehicleId());
//List<TAppStock> stockList = appStockService.list(stockQueryWrapper);
// // 界面直接点击确认/放行
// if (!stockList.isEmpty()) {
// // 判断是否还有其他盘点任务