diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java index 530370c..9357cd4 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java @@ -1155,23 +1155,28 @@ public class PatrolResultController extends BaseController { patrolTaskStatusItem.setCode(channelCode); } } - + // 设备上报暂停、终止或超期限制状态时,更新任务状态和结束时间 + if (patrolTaskStatusItem.getTaskState() != null && + (/*patrolTaskStatusItem.getTaskState().equals(TaskStatus.DONE.getCode()) || */ + patrolTaskStatusItem.getTaskState().equals(TaskStatus.HALTED.getCode()) + || patrolTaskStatusItem.getTaskState().equals(TaskStatus.EXPIRED.getCode()) + || patrolTaskStatusItem.getTaskState().equals(TaskStatus.PAUSED.getCode()))) { + patrolTaskStatusItem.setTaskState(patrolTaskStatusItem.getTaskState()); + patrolTaskStatusItem.setEndTime(DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date())); + + List statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build()); + if (!statusList.isEmpty()) { + PatrolTaskStatus taskStatus = statusList.get(0); + taskStatus.setTaskState(patrolTaskStatusItem.getTaskState()); + taskStatus.setEndTime(DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date())); + logger.info("GET_INFO_41 UPDATE TASK_STATE TO HALTED taskStatus: {}", taskStatus); + iPatrolTaskStatusService.updatePatrolTaskStatusOfTaskStateAndEndTime(taskStatus); + } + } List patrolTaskStatusList = iPatrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); logger.info("GET_INFO_41 ROBOT_TASK_STATUS patrolTaskStatusList: {}", patrolTaskStatusList); if (!patrolTaskStatusList.isEmpty()) { PatrolTaskStatus patrolTaskStatusOfDb = patrolTaskStatusList.get(0); - // 除了上报完成状态,当db状态与上报状态不一致时,更新db状态 - if(!patrolTaskStatusItem.getTaskState().equals(TaskStatus.DONE.getCode()) && !patrolTaskStatusOfDb.getTaskState().equals(patrolTaskStatusItem.getTaskState())) { - logger.info("GET_INFO_41 UPDATE TASK_STATE old: {} TO new: {}", patrolTaskStatusOfDb.getTaskState(), patrolTaskStatusItem.getTaskState()); - patrolTaskStatusOfDb.setTaskState(patrolTaskStatusItem.getTaskState()); - // 如果上报状态为终止或超期限制状态时,需更新终止时间 - if(patrolTaskStatusItem.getTaskState().equals(TaskStatus.HALTED.getCode())|| patrolTaskStatusItem.getTaskState().equals(TaskStatus.EXPIRED.getCode())) { - String endTime = DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date()); - patrolTaskStatusItem.setEndTime(endTime); - patrolTaskStatusOfDb.setEndTime(endTime); - } - iPatrolTaskStatusService.updatePatrolTaskStatusOfTaskState(patrolTaskStatusOfDb); - } double runProgress = 0.0; double dbProgress = 0.0; try {