feat(REQ-4468) - 调整因为提级审批导致节点选人会异常的问题

This commit is contained in:
wangli 2025-07-06 19:20:51 +08:00
parent 620de09afd
commit 9ba4bbc5b9
2 changed files with 5 additions and 3 deletions

View File

@ -90,8 +90,7 @@ public class EngineExecutionStartListener implements ExecutionListener {
String currentActivityId = execution.getCurrentActivityId();
String assigneeListVariableName = INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO + currentActivityId;
if (execution.hasVariable(assigneeListVariableName)) {
// 加签转交提级审批的动作中会操作该变量导致回退后只用了当时被变更后的人就不符合逻辑了
execution.removeVariable(assigneeListVariableName);
return;
}
Process mainProcess = ProcessDefinitionUtil.getBpmnModel(execution.getProcessDefinitionId()).getMainProcess();
UserTask userTask = (UserTask) mainProcess.getFlowElement(currentActivityId);

View File

@ -28,6 +28,7 @@ import org.springframework.stereotype.Component;
import java.util.Objects;
import static cn.axzo.workflow.common.constant.BpmnConstants.BIZ_NODE_ALTER;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO;
/**
* Core 包内置的活动事件处理,可共用与 Jar 包集成和微服务集成
@ -111,6 +112,7 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE
*/
@Override
public void onEnd(DelegateExecution execution) {
log.warn("activity end: processInstanceId : {}, activity: {}", execution.getProcessInstanceId(), execution.getCurrentActivityId());
// ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration();
// ManagementService managementService = processEngineConfiguration.getManagementService();
// Job timerJob = managementService.createTimerJobQuery()
@ -120,7 +122,8 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE
// if (Objects.nonNull(timerJob)) {
// CommandContextUtil.getTimerJobService().deleteTimerJob((TimerJobEntity) timerJob);
// }
execution.removeVariable(INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO + execution.getCurrentActivityId());
log.warn("delete activity list info success...");
TermNodePausingDTO dto = new TermNodePausingDTO();
dto.setActivityId(execution.getCurrentActivityId());
dto.setProcessInstanceId(execution.getProcessInstanceId());