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 5f62ee2..530370c 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,28 +1155,23 @@ 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 { @@ -1278,14 +1273,6 @@ public class PatrolResultController extends BaseController { patrolTaskStatusItem.setCreateTime(new Date()); patrolTaskStatusItem.setStartTime(new Date()); patrolTaskStatusItem.setTaskEstimatedTime(""); - if (!"2".equals(patrolTaskStatusItem.getTaskState())) { - logger.info("任务一开始就给了错误的任务的状态: messageBody: {}", messageBody); - patrolTaskStatusItem.setTaskState("2"); - } - // 上面判断未知规避原因,此处patch是针对继保机器狗如遇下雨天,第一次会上报5未执行状态 - if (TaskStatus.PENDING.getCode().equals(patrolTaskStatusItem.getTaskState())) { - patrolTaskStatusItem.setTaskState(TaskStatus.RUNNING.getCode()); - } if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) { patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName());