diff --git a/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java b/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java index 405e176..0cd2924 100644 --- a/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java @@ -239,17 +239,15 @@ public class TaskRecordServiceImpl extends ServiceImpl taskCaseRecords = taskCaseRecordService.queryByTaskId(taskId); - String taskStatus = this.determineStatus(taskCaseRecords); - log.info("completeTask:任务ID:【{}】,初始任务状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(),taskStatus); - if (!StrUtil.equals(taskStatus,taskRecord.getStatus())){ - taskRecord.setStatus(taskStatus); - super.updateById(taskRecord); + if (StrUtil.equalsAny(taskRecord.getStatus(),TASK_STATUS_WAITING,TASK_STATUS_PROCESSING)){ + List taskCaseRecords = taskCaseRecordService.queryByTaskId(taskId); + String taskStatus = this.determineStatus(taskCaseRecords); + log.info("completeTask:任务ID:【{}】,初始任务状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(),taskStatus); + if (!StrUtil.equals(taskStatus,taskRecord.getStatus())){ + taskRecord.setStatus(taskStatus); + super.updateById(taskRecord); + } } - } @Override @@ -257,11 +255,11 @@ public class TaskRecordServiceImpl extends ServiceImpl StrUtil.isNotEmpty(taskCaseRecord.getExceptionId())); - return TASK_STATUS_FAIL; + // 所有任务状态都是终止状态,则任务状态为成功 + boolean finished = taskCaseRecords.stream().allMatch(taskCaseRecord -> + StrUtil.equalsAny(taskCaseRecord.getStatus(), TASK_STATUS_CANCELED, TASK_STATUS_SUCCESS, TASK_STATUS_FAIL)); + return finished ? TASK_STATUS_SUCCESS : TASK_STATUS_PROCESSING; }