update - 异步化发起人的任务同意

This commit is contained in:
wangli 2024-04-29 11:25:10 +08:00
parent d47b969e96
commit 47f306a4f3

View File

@ -86,37 +86,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
log.info("AutoOperatorEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey()); log.info("AutoOperatorEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey());
if (Objects.equals(NODE_STARTER.getType(), delegateTask.getTaskDefinitionKey())) { if (Objects.equals(NODE_STARTER.getType(), delegateTask.getTaskDefinitionKey())) {
ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); createAsyncApproveJob(delegateTask);
JobService jobService = processEngineConfiguration.getJobServiceConfiguration().getJobService();
JobEntity job = jobService.createJob();
// 这里的 executionId 可为 null
job.setExecutionId(delegateTask.getExecutionId());
job.setProcessInstanceId(delegateTask.getProcessInstanceId());
job.setProcessDefinitionId(delegateTask.getProcessDefinitionId());
job.setElementId(delegateTask.getTaskDefinitionKey());
job.setElementName(delegateTask.getName());
job.setJobHandlerType(AsyncApproveTaskJobHandler.TYPE);
job.setTenantId(delegateTask.getTenantId());
BpmnTaskAuditDTO dto = new BpmnTaskAuditDTO();
dto.setTaskId(delegateTask.getId());
BpmnTaskDelegateAssigner initiator = getContext().getInitiator(() -> BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)));
if (Objects.nonNull(initiator)) {
delegateTask.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId(),
initiator.toJson());
}
dto.setApprover(initiator);
// 携带自定义的数据
job.setCustomValues(JSONUtil.toJsonStr(dto));
// 创建异步任务并调度
jobService.createAsyncJob(job, false);
jobService.scheduleAsyncJob(job);
/*BpmnTaskDelegateAssigner initiator = getContext().getInitiator(() -> BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR))); /*BpmnTaskDelegateAssigner initiator = getContext().getInitiator(() -> BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)));
if (Objects.nonNull(initiator)) { if (Objects.nonNull(initiator)) {
delegateTask.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId(), delegateTask.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId(),
@ -147,6 +117,37 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
log.info("AutoOperatorEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey()); log.info("AutoOperatorEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey());
} }
private void createAsyncApproveJob(DelegateTask delegateTask) {
ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration();
JobService jobService = processEngineConfiguration.getJobServiceConfiguration().getJobService();
JobEntity job = jobService.createJob();
// 这里的 executionId 可为 null
job.setExecutionId(delegateTask.getExecutionId());
job.setProcessInstanceId(delegateTask.getProcessInstanceId());
job.setProcessDefinitionId(delegateTask.getProcessDefinitionId());
job.setElementId(delegateTask.getTaskDefinitionKey());
job.setElementName(delegateTask.getName());
job.setJobHandlerType(AsyncApproveTaskJobHandler.TYPE);
job.setTenantId(delegateTask.getTenantId());
BpmnTaskAuditDTO dto = new BpmnTaskAuditDTO();
dto.setTaskId(delegateTask.getId());
BpmnTaskDelegateAssigner initiator = getContext().getInitiator(() -> BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)));
if (Objects.nonNull(initiator)) {
delegateTask.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId(),
initiator.toJson());
}
dto.setApprover(initiator);
// 携带自定义的数据
job.setCustomValues(JSONUtil.toJsonStr(dto));
// 创建异步任务并调度
jobService.createAsyncJob(job, false);
jobService.scheduleAsyncJob(job);
}
/** /**
* 校验当前的审批人是否存在过前一个节点 * 校验当前的审批人是否存在过前一个节点
* *