diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessInstanceDocumentVO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessInstanceDocumentVO.java index 8c3755e1e..b2ec6dbe1 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessInstanceDocumentVO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessInstanceDocumentVO.java @@ -18,7 +18,7 @@ public class ProcessInstanceDocumentVO { /** * 流程实例 ID */ - private String id; + private String instanceId; /** * 流程实例名称 diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessTaskDocumentVO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessTaskDocumentVO.java index 262424be2..4498ea611 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessTaskDocumentVO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/es/ProcessTaskDocumentVO.java @@ -18,7 +18,7 @@ public class ProcessTaskDocumentVO { /** * 任务 ID */ - private String id; + private String taskId; /** * 归属的流程实例 ID diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java index 91d6c7281..c1b1583c6 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java @@ -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; /** * 流程实例业务状态 diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessTaskDocument.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessTaskDocument.java index 7cdf979fb..497d06bff 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessTaskDocument.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessTaskDocument.java @@ -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; /** * 审批人姓名 diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessInstanceService.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessInstanceService.java index 019659114..86b7aaca8 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessInstanceService.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessInstanceService.java @@ -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 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 { diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessTaskService.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessTaskService.java index 21fb6d945..c3435cdad 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessTaskService.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/aggregation/AggregateProcessTaskService.java @@ -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()); diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/impl/EsProcessInstanceServiceImpl.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/impl/EsProcessInstanceServiceImpl.java index 2844c88bb..203c21d16 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/impl/EsProcessInstanceServiceImpl.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/service/impl/EsProcessInstanceServiceImpl.java @@ -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 pageInfo; try {