任务命名方法封装

master
yaxin 4 months ago
parent a7913a7b0e
commit 434942c718

@ -3,10 +3,10 @@ package com.supervision.common.constant;
public class TaskRecordConstants {
// 任务名称前缀
public static final String TASK_NAME_PREFIX = "任务";
public static final String TASK_NAME_PREFIX_TYPE_ALL_CASE = "AllCase";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_CASE = "CasePart";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_RECORD = "CaseRecord";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_EVIDENCE = "CaseEvidence";
public static final String TASK_NAME_PREFIX_TYPE_ALL_CASE = "全部案件";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_CASE = "指定案件";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_RECORD = "指定笔录";
public static final String TASK_NAME_PREFIX_TYPE_SPECIFIED_EVIDENCE = "指定证据";
// 任务类型
public static final String TASK_TYPE_ALL_CASE = "0";
public static final String TASK_TYPE_SPECIFIED_CASE = "1";

@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
import com.supervision.neo4j.service.Neo4jService;
import com.supervision.police.domain.*;
@ -68,27 +67,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
//保存任务记录
TaskRecord taskRecord = new TaskRecord();
BeanUtils.copyProperties(taskRecordVo, taskRecord);
taskRecord.setName(TASK_NAME_PREFIX);
switch (taskRecordVo.getType()) {
case TASK_TYPE_ALL_CASE:
taskRecord.setName(TASK_NAME_PREFIX_TYPE_ALL_CASE + CONNECTORS + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
break;
case TASK_TYPE_SPECIFIED_CASE:
taskRecord.setName(TASK_NAME_PREFIX_TYPE_SPECIFIED_CASE + CONNECTORS + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
break;
case TASK_TYPE_SPECIFIED_RECORD:
taskRecord.setName(TASK_NAME_PREFIX_TYPE_SPECIFIED_RECORD + CONNECTORS + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
break;
case TASK_TYPE_SPECIFIED_EVIDENCE:
taskRecord.setName(TASK_NAME_PREFIX_TYPE_SPECIFIED_EVIDENCE + CONNECTORS + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
break;
default:
break;
}
taskRecord.setName(this.generateTaskName(taskRecord.getType()));
super.save(taskRecord);
try {
NotePrompt prompt = notePromptService.getById(taskRecordVo.getPromptId());
@ -172,7 +151,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
taskCaseRecord.setTaskRecordId(taskRecord.getId());
taskCaseRecord.setCaseId(caseId);
taskCaseRecord.setWaitingId(ids.stream().reduce((a, b) -> a + "," + b).orElse(""));
taskCaseRecord.setStatus(TaskRecordConstants.TASK_STATUS_WAITING);
taskCaseRecord.setStatus(TASK_STATUS_WAITING);
taskCaseRecordService.save(taskCaseRecord);
for (String id : ids) {
Map<String, String> params = new HashMap<>();
@ -212,7 +191,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
taskInfo.checkSorted();
IPage<TaskInfoDTO> iPage = super.getBaseMapper().queryTaskList(taskInfo, Page.of(page, size));
if (iPage.getRecords().isEmpty()){
if (iPage.getRecords().isEmpty()) {
return iPage;
}
@ -223,18 +202,18 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
Map<String, String> caseNameMap = CollUtil.isEmpty(caseIds) ? new HashMap<>() : modelCaseService.listByIds(caseIds).stream().collect(Collectors.toMap(ModelCase::getId, ModelCase::getCaseName));
return iPage.convert(taskInfoDTO -> {
if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.isNotEmpty(taskInfoDTO.getCaseId())){
if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.isNotEmpty(taskInfoDTO.getCaseId())) {
String caseNames = Arrays.stream(taskInfoDTO.getCaseId().split(","))
.map(caseId -> caseNameMap.getOrDefault(caseId, "")).filter(StrUtil::isNotEmpty).distinct().collect(Collectors.joining(","));
taskInfoDTO.setCaseName(caseNames);
}
if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.equals(taskInfoDTO.getTaskType(), "0")){
if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.equals(taskInfoDTO.getTaskType(), "0")) {
// 全部案件
taskInfoDTO.setCaseName("全部");
}
if (StrUtil.isNotEmpty(taskInfoDTO.getPromptName())){
if (StrUtil.isNotEmpty(taskInfoDTO.getPromptName())) {
taskInfoDTO.setPromptName("全部");
}
return taskInfoDTO;
@ -244,12 +223,12 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
@Override
public Boolean taskStatusCancelEnabled(String status) {
return StrUtil.equalsAny(status, TaskRecordConstants.TASK_STATUS_WAITING, TaskRecordConstants.TASK_STATUS_PROCESSING);
return StrUtil.equalsAny(status, TASK_STATUS_WAITING, TASK_STATUS_PROCESSING);
}
@Override
public Boolean taskStatusDeleteEnabled(String status) {
return StrUtil.equalsAny(status, TaskRecordConstants.TASK_STATUS_CANCELED, TaskRecordConstants.TASK_STATUS_SUCCESS, TaskRecordConstants.TASK_STATUS_FAIL);
return StrUtil.equalsAny(status, TASK_STATUS_CANCELED, TASK_STATUS_SUCCESS, TASK_STATUS_FAIL);
}
@Override
@ -267,7 +246,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
Assert.isTrue(CollUtil.isEmpty(list), "取消任务失败,存在不可取消的任务");
for (TaskRecord taskRecord : taskRecords) {
taskRecord.setStatus(TaskRecordConstants.TASK_STATUS_CANCELED);
taskRecord.setStatus(TASK_STATUS_CANCELED);
taskRecord.setCancelTime(LocalDateTime.now());
super.updateById(taskRecord);
}
@ -345,6 +324,43 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
return finished ? TASK_STATUS_SUCCESS : TASK_STATUS_PROCESSING;
}
public static void main(String[] args) {
System.out.println(LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
}
private String generateTaskName(String type) {
String name = "";
switch (type) {
case TASK_TYPE_ALL_CASE:
name = TASK_NAME_PREFIX_TYPE_ALL_CASE + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("MMdd")) + CONNECTORS;
break;
case TASK_TYPE_SPECIFIED_CASE:
name = TASK_NAME_PREFIX_TYPE_SPECIFIED_CASE + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("MMdd")) + CONNECTORS;
break;
case TASK_TYPE_SPECIFIED_RECORD:
name = TASK_NAME_PREFIX_TYPE_SPECIFIED_RECORD + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("MMdd")) + CONNECTORS;
break;
case TASK_TYPE_SPECIFIED_EVIDENCE:
name = TASK_NAME_PREFIX_TYPE_SPECIFIED_EVIDENCE + LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("MMdd")) + CONNECTORS;
break;
default:
break;
}
//查出创建时间为当天的任务记录
List<TaskRecord> currentDayTaskList = list(new LambdaQueryWrapper<>(new TaskRecord()).ge(TaskRecord::getCreateTime, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0)));
// 计算后缀
int maxSuffix = currentDayTaskList.stream()
.map(taskRecord -> taskRecord.getName().substring(taskRecord.getName().length() - 3))
.mapToInt(Integer::parseInt)
.max()
.orElse(0);
name += String.format("%03d", maxSuffix + 1);
return name;
}
}

Loading…
Cancel
Save