1. 任务列表添加完成时间字段

2. 修复一键提取task_case状态有误问题
master
xueqingkun 3 months ago
parent a7cb70e44f
commit cd77190a16

@ -123,13 +123,13 @@ public class XxlJobTask {
}
stopWatch.stop();
stopWatch.start("Complete task");
taskRecordService.completeTask(taskId, map.get("executeId"), true);
taskRecordService.completeTask(taskId, map.get("executeId"),promptId, true);
stopWatch.stop();
}
} catch (Exception e) {
stopWatch.stop();
log.error("任务执行失败Task ID:{}", taskId, e);
taskRecordService.completeTask(map.get("taskId"), map.get("executeId"), false);
taskRecordService.completeTask(map.get("taskId"), map.get("executeId"), promptId,false);
} finally {
log.info("【提取任务】任务结束。任务ID: 【{}】。耗时:{}", taskId, stopWatch.prettyPrint());
}

@ -63,6 +63,9 @@ public class TaskRecord implements Serializable {
*/
private LocalDateTime cancelTime;
private LocalDateTime finishTime;
/**
* ID
*/

@ -47,6 +47,12 @@ public class TaskInfoDTO {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime cancelTime;
/**
*
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime finishTime;
/**
*
*/

@ -3,6 +3,7 @@ package com.supervision.police.service;
import com.supervision.police.domain.TaskCaseRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* @author dxy
@ -29,8 +30,8 @@ public interface TaskCaseRecordService extends IService<TaskCaseRecord> {
*/
String getActuallyStatus(TaskCaseRecord taskCaseRecord);
TaskCaseRecord updateStatus(String taskId, String executeId,boolean isSuccess);
TaskCaseRecord updateStatus(String taskId, String executeId,boolean isSuccess,List<TaskCaseRecord> taskCaseRecordList);
TaskCaseRecord updateStatus(String taskId, String executeId,String promptId,boolean isSuccess);
TaskCaseRecord updateStatus(String taskId, String executeId,String promptId,boolean isSuccess,List<TaskCaseRecord> taskCaseRecordList);
Boolean updateStatus(String taskId,List<String> olderStatus,String nowStatus);

@ -63,7 +63,7 @@ public interface TaskRecordService extends IService<TaskRecord> {
* @param taskId id
* @param executeId id
*/
void completeTask(String taskId, String executeId, boolean isSuccess);
void completeTask(String taskId, String promptId,String executeId, boolean isSuccess);
String determineStatus(List<TaskCaseRecord> taskCaseRecords);

@ -1,6 +1,7 @@
package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @author dxy
@ -44,18 +46,19 @@ public class TaskCaseRecordServiceImpl extends ServiceImpl<TaskCaseRecordMapper,
}
@Override
public TaskCaseRecord updateStatus(String taskId, String executeId, boolean isSuccess) {
public TaskCaseRecord updateStatus(String taskId, String executeId,String promptId, boolean isSuccess) {
List<TaskCaseRecord> taskCaseRecords = this.queryByTaskId(taskId);
return updateStatus(taskId, executeId, isSuccess, taskCaseRecords);
return updateStatus(taskId, executeId,promptId, isSuccess, taskCaseRecords);
}
@Override
public TaskCaseRecord updateStatus(String taskId, String executeId, boolean isSuccess, List<TaskCaseRecord> taskCaseRecords) {
public TaskCaseRecord updateStatus(String taskId, String executeId, String promptId,boolean isSuccess, List<TaskCaseRecord> taskCaseRecords) {
// 理论上只能存在一个taskCase信息
List<TaskCaseRecord> taskCaseRecordList = taskCaseRecords.stream()
.filter(taskCaseRecord -> StrUtil.isNotEmpty(taskCaseRecord.getWaitingId()))
.filter(taskCaseRecord -> Arrays.asList(taskCaseRecord.getWaitingId().split(",")).contains(executeId))
.filter(taskCaseRecord -> StrUtil.isEmpty(promptId) || StrUtil.equals(promptId, taskCaseRecord.getPromptId()))
.toList();
log.info("updateStatus:任务【{}】当前执行ID【{}】,当前任务案件执行列表长度:{}", taskId, executeId, taskCaseRecordList.size());
TaskCaseRecord taskCaseRecord = CollUtil.getFirst(taskCaseRecordList);

@ -316,7 +316,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public void completeTask(String taskId, String executeId, boolean isSuccess) {
public void completeTask(String taskId, String executeId,String promptId, boolean isSuccess) {
if (StrUtil.isEmpty(taskId)) {
log.info("completeTask:任务ID为空");
return;
@ -331,7 +331,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
return;
}
TaskCaseRecord taskCaseRecord = taskCaseRecordService.updateStatus(taskId, executeId, isSuccess);
TaskCaseRecord taskCaseRecord = taskCaseRecordService.updateStatus(taskId, executeId,promptId, isSuccess);
log.info("completeTask:任务ID:【{}】执行ID:【{}】,任务状态:【{}】", taskId, executeId, taskCaseRecord.getStatus());
// 校验总体任务是否是取消中
if (StrUtil.equalsAny(taskRecord.getStatus(), TASK_STATUS_CANCELLING, TASK_STATUS_CANCELED)) {
@ -351,6 +351,9 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
log.info("completeTask:任务ID:【{}】,初始任务案件状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(), taskStatus);
if (!StrUtil.equals(taskStatus, taskRecord.getStatus())) {
taskRecord.setStatus(taskStatus);
if (StrUtil.equals(taskStatus, TASK_STATUS_SUCCESS)){
taskRecord.setFinishTime(LocalDateTime.now());
}
super.updateById(taskRecord);
}
}

@ -13,6 +13,7 @@
<result property="type" column="type" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
<result property="cancelTime" column="cancel_time" jdbcType="TIMESTAMP"/>
<result property="finishTime" column="finish_time" jdbcType="TIMESTAMP"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
@ -22,7 +23,7 @@
<sql id="Base_Column_List">
id,name,case_id,
record_id,evidence_id,type,
status,cancel_time,create_user_id,
status,cancel_time,finish_time,create_user_id,
create_time,update_user_id,update_time,
batch_no
</sql>
@ -37,6 +38,7 @@
t.status as taskStatus,
t.create_time as createTime,
t.cancel_time as cancelTime,
t.finish_time as finishTime,
t.create_user_id as createUserId,
su.user_name as createUserName
from task_record t

Loading…
Cancel
Save