feat(REQ-2752) - 过滤同步 ES 数据中,节点类型是抄送节点的数据

This commit is contained in:
wangli 2024-10-16 18:13:21 +08:00
parent 49eb9377ec
commit b8d30b46ae

View File

@ -15,12 +15,9 @@ import cn.axzo.workflow.es.service.EsProcessTaskService;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import com.google.common.collect.Lists;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
import org.dromara.easyes.core.toolkit.FieldUtils;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.engine.history.HistoricProcessInstance;
@ -49,6 +46,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.FLOW_SERVER_VERSION
import static cn.axzo.workflow.common.constant.BpmnConstants.HIDDEN_ASSIGNEE_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO;
import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_TASK_ASSIGNEE_SKIP_FLAT;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_CARBON_COPY;
import static cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum.MI_END;
import static cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum.REJECTION_AUTO_COMPLETED;
@ -82,34 +80,36 @@ public class AggregateProcessTaskService {
// .stream().collect(Collectors.groupingBy(Attachment::getTaskId, Collectors.mapping(Function.identity(), Collectors.toList())));
List<ProcessTaskDocument> toEsProcessTaskDocuments = new ArrayList<>();
logs.forEach(log -> {
ProcessTaskDocument processTaskDocument = new ProcessTaskDocument();
processTaskDocument.setTaskId(log.getTaskId());
processTaskDocument.setProcessInstanceId(hpi.getId());
processTaskDocument.setTaskDefinitionKey(log.getActivityId());
processTaskDocument.setTaskName(log.getActivityName());
processTaskDocument.setTaskStatus(log.getStatus());
processTaskDocument.setAdvice(log.getAdvice());
processTaskDocument.setOperationDesc(log.getOperationDesc());
processTaskDocument.setTaskStartTime(log.getStartTime());
processTaskDocument.setTaskEndTime(log.getEndTime());
if (Objects.nonNull(log.getEndTime())) {
processTaskDocument.setDuration(DateUtil.betweenMs(log.getEndTime(), log.getStartTime()));
}
processTaskDocument.setTaskTenantId(log.getTenantId());
BpmnTaskDelegateAssigner assigner = CollectionUtils.isEmpty(log.getAssigneeFull()) ? null : log.getAssigneeFull().get(0);
if (Objects.nonNull(assigner)) {
processTaskDocument.setAssigneeName(assigner.getAssignerName());
processTaskDocument.setAssigneeOuId(assigner.getOuId());
processTaskDocument.setAssigneePersonId(assigner.getPersonId());
processTaskDocument.setAssigneeTenantId(assigner.getTenantId());
}
logs.stream()
.filter(i -> !Objects.equals(NODE_CARBON_COPY.getType(), i.getNodeType()))
.forEach(log -> {
ProcessTaskDocument processTaskDocument = new ProcessTaskDocument();
processTaskDocument.setTaskId(log.getTaskId());
processTaskDocument.setProcessInstanceId(hpi.getId());
processTaskDocument.setTaskDefinitionKey(log.getActivityId());
processTaskDocument.setTaskName(log.getActivityName());
processTaskDocument.setTaskStatus(log.getStatus());
processTaskDocument.setAdvice(log.getAdvice());
processTaskDocument.setOperationDesc(log.getOperationDesc());
processTaskDocument.setTaskStartTime(log.getStartTime());
processTaskDocument.setTaskEndTime(log.getEndTime());
if (Objects.nonNull(log.getEndTime())) {
processTaskDocument.setDuration(DateUtil.betweenMs(log.getEndTime(), log.getStartTime()));
}
processTaskDocument.setTaskTenantId(log.getTenantId());
BpmnTaskDelegateAssigner assigner = CollectionUtils.isEmpty(log.getAssigneeFull()) ? null : log.getAssigneeFull().get(0);
if (Objects.nonNull(assigner)) {
processTaskDocument.setAssigneeName(assigner.getAssignerName());
processTaskDocument.setAssigneeOuId(assigner.getOuId());
processTaskDocument.setAssigneePersonId(assigner.getPersonId());
processTaskDocument.setAssigneeTenantId(assigner.getTenantId());
}
// esProcessTask.setAttachments(attachmentConverter.toVos(attachmentMap.getOrDefault(log.getTaskId(), Collections.emptyList())));
processTaskDocument.setApprovalMethod(log.getApprovalMethod());
processTaskDocument.setNodeType(log.getNodeType());
processTaskDocument.setNodeMode(log.getNodeMode());
toEsProcessTaskDocuments.add(processTaskDocument);
});
processTaskDocument.setApprovalMethod(log.getApprovalMethod());
processTaskDocument.setNodeType(log.getNodeType());
processTaskDocument.setNodeMode(log.getNodeMode());
toEsProcessTaskDocuments.add(processTaskDocument);
});
esProcessTaskService.insertBatch(ES_FIXED_ROUTING, hpi.getId(), toEsProcessTaskDocuments);
return toEsProcessTaskDocuments;
@ -196,7 +196,9 @@ public class AggregateProcessTaskService {
BpmnMetaParserHelper.getNodeType(flowElement)
.ifPresent(e -> processTaskDocument.setNodeType(e.getType()));
}
toEsProcessTaskDocuments.add(processTaskDocument);
if (!Objects.equals(processTaskDocument.getNodeType(), NODE_CARBON_COPY.getType())) {
toEsProcessTaskDocuments.add(processTaskDocument);
}
}
esProcessTaskService.insertBatch(ES_FIXED_ROUTING, hpi.getId(), toEsProcessTaskDocuments);
return toEsProcessTaskDocuments;