1. 添加任务列表功能

jinan_dev
xueqingkun 4 months ago
parent a48d5a7ef1
commit d478b1ff6d

@ -48,8 +48,9 @@ public class XxlJobTask {
*/
@XxlJob("extractTask")
public void extractEvidenceByTask() {
String jobParam = XxlJobHelper.getJobParam();
log.info("【提取任务】任务开始。参数: 【{}】", jobParam);
Map<String, String> map = JSON.parseObject(XxlJobHelper.getJobParam(), Map.class);
log.info("【提取任务】任务开始。参数: 【{}】", map.toString());
String taskId = map.get("taskId");
String caseId = map.get("caseId");
String promptId = map.get("promptId");

@ -3,8 +3,10 @@ package com.supervision.police.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.common.domain.R;
import com.supervision.police.dto.CaseProcessDTO;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.service.MroService;
import com.supervision.police.vo.CaseProcessReqVO;
import com.supervision.police.vo.TaskInfoReqVO;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@ -41,4 +43,32 @@ public class MroController {
return R.ok();
}
@Operation(summary = "查询任务列表")
@PostMapping("/taskList")
public R<IPage<TaskInfoDTO>> queryTaskList(@RequestBody TaskInfoReqVO taskInfoReqVO,
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "20") Integer size) {
IPage<TaskInfoDTO> iPage = mroService.queryTaskList(taskInfoReqVO, page, size);
return R.ok(iPage);
}
@Operation(summary = "取消任务")
@PostMapping("/cancelTask")
public R<Boolean> cancelTask(@RequestBody List<String> taskIds) {
Boolean success = mroService.cancelTask(taskIds);
return R.ok(success);
}
@Operation(summary = "删除任务")
@PostMapping("/deleteTask")
public R<Boolean> deleteTask(@RequestBody List<String> taskIds) {
Boolean success = mroService.deleteTask(taskIds);
return R.ok(success);
}
}

@ -0,0 +1,54 @@
package com.supervision.police.dto;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class TaskInfoDTO {
/**
* id
*/
private String taskId;
/**
* id
*/
private String caseId;
/**
*
*/
private String caseName;
/**
*
*/
private String taskName;
/**
*
*/
private String taskStatus;
/**
*
*/
private LocalDateTime cancelTime;
/**
*
*/
private LocalDateTime createTime;
/**
* id
*/
private String createUserId;
/**
*
*/
private String createUserName;
}

@ -1,7 +1,11 @@
package com.supervision.police.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.police.domain.TaskRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.vo.TaskInfoReqVO;
import org.apache.ibatis.annotations.Param;
/**
* @author dxy
@ -11,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TaskRecordMapper extends BaseMapper<TaskRecord> {
IPage<TaskInfoDTO> queryTaskList(@Param("taskInfo") TaskInfoReqVO taskInfo, @Param("page")IPage<TaskInfoDTO> page);
}

@ -2,7 +2,9 @@ package com.supervision.police.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.police.dto.CaseProcessDTO;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.vo.CaseProcessReqVO;
import com.supervision.police.vo.TaskInfoReqVO;
import java.util.List;
@ -10,4 +12,10 @@ public interface MroService {
IPage<CaseProcessDTO> queryCaseList(CaseProcessReqVO caseProcessReqVO, Integer page, Integer size);
void analysisCase(List<String> caseIds);
IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size);
Boolean cancelTask(List<String> taskIds);
Boolean deleteTask(List<String> taskIds);
}

@ -1,8 +1,12 @@
package com.supervision.police.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.police.domain.TaskRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.dto.taskRecord.TaskRecordVo;
import com.supervision.police.vo.TaskInfoReqVO;
import java.util.List;
/**
* @author dxy
@ -12,4 +16,28 @@ import com.supervision.police.dto.taskRecord.TaskRecordVo;
public interface TaskRecordService extends IService<TaskRecord> {
void executePromptExtractTask(TaskRecordVo taskRecordVo);
IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size);
/**
*
* @param status
* @return true false
*/
Boolean taskStatusCancelEnabled(String status);
/**
*
* @param status
* @return true false
*/
Boolean taskStatusDeleteEnabled(String status);
void cancelTask(List<String> taskIds);
void deleteTask(List<String> taskIds);
}

@ -9,14 +9,14 @@ import com.supervision.police.domain.ModelCase;
import com.supervision.police.domain.TaskCaseRecord;
import com.supervision.police.dto.AnalyseCaseDTO;
import com.supervision.police.dto.CaseProcessDTO;
import com.supervision.police.service.ModelCaseService;
import com.supervision.police.service.ModelService;
import com.supervision.police.service.MroService;
import com.supervision.police.service.TaskCaseRecordService;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.service.*;
import com.supervision.police.vo.CaseProcessReqVO;
import com.supervision.police.vo.TaskInfoReqVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashSet;
import java.util.List;
@ -32,6 +32,8 @@ public class MroServiceImpl implements MroService {
private final ModelService modelService;
private final TaskCaseRecordService caseRecordService;
private final TaskRecordService taskRecordService;
@Override
public IPage<CaseProcessDTO> queryCaseList(CaseProcessReqVO caseProcessReqVO, Integer page, Integer size) {
@ -73,4 +75,32 @@ public class MroServiceImpl implements MroService {
}
}
@Override
public IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size) {
return taskRecordService.queryTaskList(taskInfoReqVO, page, size);
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public Boolean cancelTask(List<String> taskIds) {
if (CollUtil.isEmpty(taskIds)){
log.info("cancelTask:取消任务失败,参数为空");
return false;
}
taskRecordService.cancelTask(taskIds);
return true;
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public Boolean deleteTask(List<String> taskIds) {
if (CollUtil.isEmpty(taskIds)){
log.info("deleteTask:删除任务失败,参数为空");
return false;
}
taskRecordService.deleteTask(taskIds);
return true;
}
}

@ -1,6 +1,11 @@
package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.common.constant.TaskRecordConstants;
import com.supervision.constant.DataStatus;
@ -8,13 +13,18 @@ import com.supervision.police.domain.ModelCase;
import com.supervision.police.domain.NotePrompt;
import com.supervision.police.domain.NoteRecord;
import com.supervision.police.domain.TaskRecord;
import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.dto.taskRecord.TaskRecordVo;
import com.supervision.police.mapper.TaskRecordMapper;
import com.supervision.police.service.*;
import com.supervision.police.vo.TaskInfoReqVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -27,6 +37,7 @@ import static com.supervision.common.constant.NotePromptConstants.TYPE_STRUCTURA
* @description task_recordService
* @createDate 2024-12-24 14:44:43
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRecord>
@ -43,7 +54,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
public void executePromptExtractTask(TaskRecordVo taskRecordVo) {
TaskRecord taskRecord = new TaskRecord();
BeanUtils.copyProperties(taskRecordVo, taskRecord);
save(taskRecord);
super.save(taskRecord);
NotePrompt prompt = notePromptService.getById(taskRecordVo.getPromptId());
switch (taskRecord.getType()) {
case TaskRecordConstants.TASK_TYPE_ALL_CASE:
@ -78,6 +89,59 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
}
}
@Override
public IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfo, Integer page, Integer size) {
return super.getBaseMapper().queryTaskList(taskInfo, Page.of(page, size));
}
@Override
public Boolean taskStatusCancelEnabled(String status) {
return StrUtil.equalsAny(status, TaskRecordConstants.TASK_STATUS_WAITING);
}
@Override
public Boolean taskStatusDeleteEnabled(String status) {
return StrUtil.equalsAny(status, TaskRecordConstants.TASK_STATUS_CANCELED, TaskRecordConstants.TASK_STATUS_SUCCESS, TaskRecordConstants.TASK_STATUS_FAIL);
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public void cancelTask(List<String> taskIds) {
// 状态校验
List<TaskRecord> taskRecords = super.listByIds(taskIds);
Assert.notEmpty(taskIds, "取消任务失败,未找到任务信息");
List<TaskRecord> list = taskRecords.stream().filter(taskRecord -> !this.taskStatusCancelEnabled(taskRecord.getStatus())).toList();
if (CollUtil.isNotEmpty(list)){
log.info("cancelTask:取消任务失败,存在不可取消的任务:{}",list.stream().map(TaskRecord::getId).toList());
}
Assert.isTrue(CollUtil.isEmpty(list), "取消任务失败,存在不可取消的任务");
super.lambdaUpdate()
.set(TaskRecord::getStatus, TaskRecordConstants.TASK_STATUS_CANCELLING)
.set(TaskRecord::getCancelTime, LocalDateTime.now())
.in(TaskRecord::getId, taskIds).update();
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public void deleteTask(List<String> taskIds) {
List<TaskRecord> taskRecords = super.listByIds(taskIds);
Assert.notEmpty(taskIds, "删除任务失败,未找到任务信息");
List<TaskRecord> list = taskRecords.stream().filter(taskRecord -> !this.taskStatusDeleteEnabled(taskRecord.getStatus())).toList();
if (CollUtil.isNotEmpty(list)){
log.info("deleteTask:删除任务失败,存在不可删除的任务:{}",list.stream().map(TaskRecord::getId).toList());
}
Assert.isTrue(CollUtil.isEmpty(list), "删除任务失败,存在不可删除的任务");
super.removeBatchByIds(taskIds);
}
}

@ -0,0 +1,29 @@
package com.supervision.police.vo;
import lombok.Data;
@Data
public class TaskInfoReqVO {
/**
*
*/
private String caseName;
/**
*
*/
private String taskStatus;
/**
*
*/
private String createTimeSorted = "desc";
/**
*
*/
private String cancelTimeSorted = "desc";
}

@ -26,4 +26,27 @@
create_time,update_user_id,update_time,
batch_no
</sql>
<select id="queryTaskList" resultType="com.supervision.police.dto.TaskInfoDTO">
select t.id as taskId,
t.case_id as caseId,
c.case_name as caseName,
t.name as taskName,
t.status as taskStatus,
t.create_time as createTime,
t.cancel_time as cancelTime,
t.create_user_id as createUserId,
p.name as createUserName
from task_record t
left join model_case c on t.case_id = c.id
left join case_person p on t.create_user_id = p.id
<where>
<if test="caseName != null and caseName != ''">
and c.case_name like concat('%',#{taskInfo.caseName},'%')
</if>
<if test="taskStatus != null and taskStatus != ''">
and t.status = #{taskInfo.taskStatus}
</if>
</where>
order by c.create_time #{taskInfo.createTimeSorted} ,t.create_time #{taskInfo.cancelTimeSorted}
</select>
</mapper>

Loading…
Cancel
Save