|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|