update - 完善抄送节点关联 taskId
This commit is contained in:
parent
19a51ae430
commit
b176a303cc
@ -2,11 +2,14 @@ package cn.axzo.workflow.core.engine.listener;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.ExtHiTaskSearchDTO;
|
||||
import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomCarbonCopyUserSelectorCmd;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventBuilder;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventImpl;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventType;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst;
|
||||
import cn.axzo.workflow.core.service.ExtAxHiTaskInstService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmnHistoricTaskInstanceConverter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
@ -28,8 +31,10 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT;
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getCarbonCopyConfigs;
|
||||
@ -55,6 +60,8 @@ public class EngineCarbonCopyEventListener implements JavaDelegate {
|
||||
@Resource
|
||||
private BpmnHistoricTaskInstanceConverter historicTaskInstanceConverter;
|
||||
@Resource
|
||||
private ExtAxHiTaskInstService extAxHiTaskInstService;
|
||||
@Resource
|
||||
private String serviceVersion;
|
||||
|
||||
@Override
|
||||
@ -103,9 +110,21 @@ public class EngineCarbonCopyEventListener implements JavaDelegate {
|
||||
|
||||
MessagePushEventImpl event = MessagePushEventBuilder.createEvent(MessagePushEventType.CARBON_COPY,
|
||||
carbonUsers, bpmnNoticeConf, execution.getProcessInstanceId(),
|
||||
execution.getTenantId(), null);
|
||||
execution.getTenantId(), getCarbonTaskId(execution));
|
||||
eventDispatcher.dispatchEvent(event, processEngineConfiguration.getEngineCfgKey());
|
||||
}
|
||||
|
||||
private String getCarbonTaskId(DelegateExecution execution) {
|
||||
AtomicReference<String> taskId = new AtomicReference<>(null);
|
||||
ExtHiTaskSearchDTO searchDTO = new ExtHiTaskSearchDTO();
|
||||
searchDTO.setProcessInstanceId(execution.getProcessInstanceId());
|
||||
searchDTO.setTaskDefinitionKey(execution.getCurrentActivityId());
|
||||
extAxHiTaskInstService.queryList(searchDTO)
|
||||
.stream()
|
||||
.max(Comparator.comparing(ExtAxHiTaskInst::getCreateAt))
|
||||
.ifPresent(i -> taskId.set(i.getTaskId()));
|
||||
return taskId.get();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user