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

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

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

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

@ -47,6 +47,12 @@ public class TaskInfoDTO {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime cancelTime; 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.supervision.police.domain.TaskCaseRecord;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author dxy * @author dxy
@ -29,8 +30,8 @@ public interface TaskCaseRecordService extends IService<TaskCaseRecord> {
*/ */
String getActuallyStatus(TaskCaseRecord taskCaseRecord); String getActuallyStatus(TaskCaseRecord taskCaseRecord);
TaskCaseRecord updateStatus(String taskId, String executeId,boolean isSuccess); TaskCaseRecord updateStatus(String taskId, String executeId,String promptId,boolean isSuccess);
TaskCaseRecord updateStatus(String taskId, String executeId,boolean isSuccess,List<TaskCaseRecord> taskCaseRecordList); TaskCaseRecord updateStatus(String taskId, String executeId,String promptId,boolean isSuccess,List<TaskCaseRecord> taskCaseRecordList);
Boolean updateStatus(String taskId,List<String> olderStatus,String nowStatus); Boolean updateStatus(String taskId,List<String> olderStatus,String nowStatus);

@ -63,7 +63,7 @@ public interface TaskRecordService extends IService<TaskRecord> {
* @param taskId id * @param taskId id
* @param executeId 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); String determineStatus(List<TaskCaseRecord> taskCaseRecords);

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

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

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

Loading…
Cancel
Save