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 db269ac..5f62ee2 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,11 +1155,12 @@ 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.EXPIRED.getCode()) + || patrolTaskStatusItem.getTaskState().equals(TaskStatus.PAUSED.getCode()))) { patrolTaskStatusItem.setTaskState(patrolTaskStatusItem.getTaskState()); patrolTaskStatusItem.setEndTime(DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date())); @@ -1199,7 +1200,7 @@ public class PatrolResultController extends BaseController { patrolTaskStatusOfDb.getTaskProgress(), patrolTaskStatusOfDb.getTaskEstimatedTime()); } - + // 算法进度 String calProgressInDb = patrolTaskStatusOfDb.getTaskEstimatedTime(); logger.info("patrol_task_status taskPatrolledId: {}, run_progress: {}, db_progress: {}, cal_progress: {}", patrolTaskStatusItem.getTaskPatrolledId(), @@ -1235,6 +1236,7 @@ public class PatrolResultController extends BaseController { PatrolTaskStatus taskStatus = statusList.get(0); taskStatus.setTaskProgress(String.valueOf(runProgress)); iPatrolTaskStatusService.updatePatrolTaskStatusOfTaskProgress(taskStatus); + // 仅当智巡进度100%+算法进度100%才更新任务状态为完成 if ("100.0".equals(calProgressInDb)) { logger.info("!!!!!!!!!!!!!!!!!! set task_status done!!!"); taskStatus.setTaskState(TaskStatus.DONE.getCode()); @@ -1246,6 +1248,7 @@ public class PatrolResultController extends BaseController { List statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build()); if (!statusList.isEmpty()) { PatrolTaskStatus taskStatus = statusList.get(0); + // 仅当任务状态为正在执行状态时才更新进度 if (TaskStatus.RUNNING.getCode().equals(taskStatus.getTaskState())) { logger.info(Color.CYAN + "updating patrol_task_status state taskPatrolledId: {}, runProgress: {}, taskState: {}, taskCurCodeInRedis: {}, cal_progress_db: {}" + Color.END, patrolTaskStatusItem.getTaskPatrolledId(), @@ -1279,6 +1282,10 @@ public class PatrolResultController extends BaseController { 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()); @@ -1742,7 +1749,6 @@ public class PatrolResultController extends BaseController { resultAnalysis.setResultContent("{\"resultList\": [{\"results\": [{\"type\": [\"infrared\"],\"resImageUrl\": \"" + strings[0] + "\"}]}]}"); } } - } @GetMapping({"/taskAndstatus"})