feat(REQ-2752) - 统一实例名称的分词方式,调整时间类型字段的格式化

This commit is contained in:
wangli 2024-10-12 23:19:34 +08:00
parent 3318e09da2
commit fe207a9481
7 changed files with 34 additions and 30 deletions

View File

@ -18,7 +18,7 @@ public class ProcessInstanceDocumentVO {
/**
* 流程实例 ID
*/
private String id;
private String instanceId;
/**
* 流程实例名称

View File

@ -18,7 +18,7 @@ public class ProcessTaskDocumentVO {
/**
* 任务 ID
*/
private String id;
private String taskId;
/**
* 归属的流程实例 ID

View File

@ -15,7 +15,6 @@ import org.dromara.easyes.annotation.rely.RefreshPolicy;
import java.util.Date;
import static org.dromara.easyes.annotation.rely.Analyzer.IK_MAX_WORD;
import static org.dromara.easyes.annotation.rely.Analyzer.IK_SMART;
/**
* 流程实例文档模型
@ -38,7 +37,7 @@ public class ProcessInstanceDocument {
/**
* 流程实例名称
*/
@IndexField(fieldType = FieldType.KEYWORD_TEXT, analyzer = IK_MAX_WORD, searchAnalyzer = IK_SMART)
@IndexField(fieldType = FieldType.KEYWORD_TEXT, analyzer = IK_MAX_WORD, searchAnalyzer = IK_MAX_WORD)
private String processInstanceName;
/**
@ -60,12 +59,14 @@ public class ProcessInstanceDocument {
/**
* 流程实例的发起时间
*/
private Date startTime;
@IndexField(dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private Date instanceStartTime;
/**
* 流程实例的结束时间
*/
private Date endTime;
@IndexField(dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private Date instanceEndTime;
/**
* 流程实例的持续时间 ms
@ -75,13 +76,14 @@ public class ProcessInstanceDocument {
/**
* 该流程中上次操作完成的时间, 如果是已完成的实例, 就清空该值
*/
@IndexField(dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private Date lastOperationTime;
/**
* 租户 ID
*/
@IndexField(fieldType = FieldType.KEYWORD)
private String tenantId;
private String instanceTenantId;
/**
* 流程实例业务状态

View File

@ -46,13 +46,13 @@ public class ProcessTaskDocument {
* 任务名称
*/
@IndexField(fieldType = FieldType.KEYWORD)
private String name;
private String taskName;
/**
* 任务状态:审批中/通过/驳回/转交/加签...
*/
@IndexField(fieldType = FieldType.KEYWORD)
private String status;
private String taskStatus;
/**
* 操作建议
@ -67,12 +67,14 @@ public class ProcessTaskDocument {
/**
* 流程实例的发起时间
*/
private Date startTime;
@IndexField(dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private Date taskStartTime;
/**
* 流程实例的结束时间
*/
private Date endTime;
@IndexField(dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private Date taskEndTime;
/**
* 流程实例的持续时间 ms
@ -83,7 +85,7 @@ public class ProcessTaskDocument {
* 归属租户, processInstance#tenantId 一致
*/
@IndexField(fieldType = FieldType.KEYWORD)
private String tenantId;
private String taskTenantId;
/**
* 审批人姓名

View File

@ -59,10 +59,10 @@ public class AggregateProcessInstanceService {
processInstanceDocument.setProcessInstanceName(hpi.getName());
processInstanceDocument.setBusinessKey(hpi.getBusinessKey());
processInstanceDocument.setProcessDefinitionId(hpi.getProcessDefinitionId());
processInstanceDocument.setStartTime(hpi.getStartTime());
processInstanceDocument.setEndTime(hpi.getEndTime());
processInstanceDocument.setInstanceStartTime(hpi.getStartTime());
processInstanceDocument.setInstanceEndTime(hpi.getEndTime());
processInstanceDocument.setDurationInMillis(hpi.getDurationInMillis());
processInstanceDocument.setTenantId(hpi.getTenantId());
processInstanceDocument.setInstanceTenantId(hpi.getTenantId());
processInstanceDocument.setBusinessStatus(hpi.getBusinessStatus());
Map<String, Object> variables = hpi.getProcessVariables();
@ -97,11 +97,11 @@ public class AggregateProcessInstanceService {
//更新实例上的最后操作时间
if (Objects.equals(PROCESSING.getStatus(), hpi.getBusinessStatus())) {
toEsProcessTaskDocuments.stream()
.filter(i -> StringUtils.hasText(i.getStatus()) && !Objects.equals(i.getStatus(), PROCESSING.getStatus()))
.filter(i-> Objects.nonNull(i.getEndTime()))
.max(Comparator.comparing(ProcessTaskDocument::getEndTime))
.filter(i -> StringUtils.hasText(i.getTaskStatus()) && !Objects.equals(i.getTaskStatus(), PROCESSING.getStatus()))
.filter(i -> Objects.nonNull(i.getTaskEndTime()))
.max(Comparator.comparing(ProcessTaskDocument::getTaskEndTime))
.ifPresent(processTaskDocument -> {
processInstanceDocument.setLastOperationTime(processTaskDocument.getEndTime());
processInstanceDocument.setLastOperationTime(processTaskDocument.getTaskEndTime());
esProcessInstanceService.update(ES_FIXED_ROUTING, processInstanceDocument);
});
} else {

View File

@ -83,16 +83,16 @@ public class AggregateProcessTaskService {
processTaskDocument.setProcessInstanceId(log.getProcessInstanceId());
processTaskDocument.setProcessDefinitionId(hpi.getProcessDefinitionId());
processTaskDocument.setTaskDefinitionKey(log.getActivityId());
processTaskDocument.setName(log.getActivityName());
processTaskDocument.setStatus(log.getStatus());
processTaskDocument.setTaskName(log.getActivityName());
processTaskDocument.setTaskStatus(log.getStatus());
processTaskDocument.setAdvice(log.getAdvice());
processTaskDocument.setOperationDesc(log.getOperationDesc());
processTaskDocument.setStartTime(log.getStartTime());
processTaskDocument.setEndTime(log.getEndTime());
processTaskDocument.setTaskStartTime(log.getStartTime());
processTaskDocument.setTaskEndTime(log.getEndTime());
if (Objects.nonNull(log.getEndTime())) {
processTaskDocument.setDuration(DateUtil.betweenMs(log.getEndTime(), log.getStartTime()));
}
processTaskDocument.setTenantId(log.getTenantId());
processTaskDocument.setTaskTenantId(log.getTenantId());
BpmnTaskDelegateAssigner assigner = CollectionUtils.isEmpty(log.getAssigneeFull()) ? null : log.getAssigneeFull().get(0);
if(Objects.nonNull(assigner)) {
processTaskDocument.setAssigneeName(assigner.getAssignerName());
@ -158,8 +158,8 @@ public class AggregateProcessTaskService {
processTaskDocument.setProcessInstanceId(task.getProcessInstanceId());
processTaskDocument.setProcessDefinitionId(task.getProcessDefinitionId());
processTaskDocument.setTaskDefinitionKey(task.getTaskDefinitionKey());
processTaskDocument.setName(task.getName());
processTaskDocument.setStatus(extTask.getStatus());
processTaskDocument.setTaskName(task.getName());
processTaskDocument.setTaskStatus(extTask.getStatus());
// 处理 advice
processTaskDocument.setAdvice(comments.stream().filter(i -> Objects.equals(i.getType(), COMMENT_TYPE_ADVICE))
.findFirst().orElse(new CommentEntityImpl()).getFullMessage());
@ -167,11 +167,11 @@ public class AggregateProcessTaskService {
processTaskDocument.setOperationDesc(comments.stream().filter(i -> Objects.equals(COMMENT_TYPE_OPERATION_DESC, i.getType()))
.max(Comparator.comparing(Comment::getTime))
.orElse(new CommentEntityImpl()).getFullMessage());
processTaskDocument.setStartTime(task.getCreateTime());
processTaskDocument.setEndTime(task.getEndTime());
processTaskDocument.setTaskStartTime(task.getCreateTime());
processTaskDocument.setTaskEndTime(task.getEndTime());
processTaskDocument.setDuration(task.getDurationInMillis());
// esProcessTask.setLastUpdateTime(task);
processTaskDocument.setTenantId(task.getTenantId());
processTaskDocument.setTaskTenantId(task.getTenantId());
BpmnTaskDelegateAssigner assigner = BpmnTaskDelegateAssigner.toObjectCompatible(variables.getOrDefault(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), null));
if(Objects.nonNull(assigner)) {
processTaskDocument.setAssigneeName(assigner.getAssignerName());

View File

@ -124,7 +124,7 @@ public class EsProcessInstanceServiceImpl implements EsProcessInstanceService {
.like(StringUtils.hasText(dto.getProcessInstanceName()), FieldUtils.val(ProcessInstanceDocument::getProcessInstanceName), dto.getProcessInstanceName())
.in(CollectionUtils.isEmpty(dto.getProcessInstanceIds()), FieldUtils.val(ProcessInstanceDocument::getInstanceId), dto.getProcessInstanceIds())
// .routing(ES_FIXED_ROUTING)
.orderByDesc(FieldUtils.val(ProcessInstanceDocument::getStartTime))
.orderByDesc(FieldUtils.val(ProcessInstanceDocument::getInstanceStartTime))
;
EsPageInfo<ProcessInstanceDocument> pageInfo;
try {