diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java index 9925dd73b..88d24d466 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java @@ -55,6 +55,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.FLOW_SERVER_VERSION import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO; +import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_LOG_NODE_HAS_BEEN_HIDDEN; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_BUSINESS; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_SIGN; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER; @@ -188,8 +189,21 @@ public class EngineExecutionStartListener implements ExecutionListener { assigners.addAll(approverSelect(specify.getType(), userTask, execution, true)); }); - // 审批候选人为空时的兜底, - emptyAssigneeHandle(assigners, userTask, execution, categoryVersion); + // 部分节点查找人时,如果不存在组织则要求隐藏日志 + Boolean hiddenLog = false; + try { + hiddenLog = execution.getVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + userTask.getId(), Boolean.class); + log.info("查询是否是组织不存在,需要隐藏日志: {}", hiddenLog); + } catch (Exception e) { + // ignore + log.warn("查询需要隐藏日志标识异常: {}", e.getMessage(), e); + } + if (!Objects.equals(Boolean.TRUE, hiddenLog)) { + // 审批候选人为空时的兜底, + log.info("执行审批人为空的兜底"); + emptyAssigneeHandle(assigners, userTask, execution, categoryVersion); + } + List resultAssigners = getLimitedElementList(assigners, APPROVAL_ASSIGNER_LIMIT_NUMBER); for (BpmnTaskDelegateAssigner user : resultAssigners) { assigneeIdList.add(user.buildAssigneeId()); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/AutoOperatorEvent_101_Listener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/AutoOperatorEvent_101_Listener.java index a165a4771..5f61d9c70 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/AutoOperatorEvent_101_Listener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/AutoOperatorEvent_101_Listener.java @@ -37,6 +37,7 @@ import java.util.Optional; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO; +import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_LOG_NODE_HAS_BEEN_HIDDEN; import static cn.axzo.workflow.common.constant.BpmnConstants.WORKFLOW_ENGINE_VERSION; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER; @@ -70,6 +71,14 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener processApproveConf = BpmnMetaParserHelper.getProcessApproveConf(mainProcess); // 开启了电子签名不能自动过审 Boolean activitySignature = BpmnMetaParserHelper.getActivitySignature(mainProcess.getFlowElement(delegateTask.getTaskDefinitionKey())); @@ -83,7 +92,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener