feat(autoSkip) - 新增如果某个节点的日志是需要隐藏的,则节点强制自动通过(跳过)
This commit is contained in:
parent
061264fb30
commit
f716a25a5f
@ -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;
|
||||
@ -186,8 +187,14 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
assigners.addAll(approverSelect(specify.getType(), userTask, execution, true));
|
||||
});
|
||||
|
||||
// 审批候选人为空时的兜底,
|
||||
emptyAssigneeHandle(assigners, userTask, execution, categoryVersion);
|
||||
// 部分节点查找人时,如果不存在组织则要求隐藏日志
|
||||
Boolean hiddenLog = execution.getVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + userTask.getId(), Boolean.class);
|
||||
|
||||
if (!Objects.equals(Boolean.TRUE, hiddenLog)) {
|
||||
// 审批候选人为空时的兜底,
|
||||
emptyAssigneeHandle(assigners, userTask, execution, categoryVersion);
|
||||
}
|
||||
|
||||
List<BpmnTaskDelegateAssigner> resultAssigners = getLimitedElementList(assigners, APPROVAL_ASSIGNER_LIMIT_NUMBER);
|
||||
for (BpmnTaskDelegateAssigner user : resultAssigners) {
|
||||
assigneeIdList.add(user.buildAssigneeId());
|
||||
|
||||
@ -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<Ta
|
||||
Process mainProcess = repositoryService.getBpmnModel(delegateTask.getProcessDefinitionId()).getMainProcess();
|
||||
UserTask userTask = (UserTask) mainProcess.getFlowElement(delegateTask.getTaskDefinitionKey());
|
||||
|
||||
// 检查当前节点的日志是否是要隐藏的,如果是在则直接自动过审
|
||||
Boolean hiddenLog = delegateTask.getVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + userTask.getId(), Boolean.class);
|
||||
if (Objects.equals(Boolean.TRUE, hiddenLog)) {
|
||||
autoPass(delegateTask, null, "组织不存在时自动跳过");
|
||||
log.info("AutoOperatorEventListener#onCreated...end:{}, processInstanceId:{}", delegateTask.getTaskDefinitionKey(), delegateTask.getProcessInstanceId());
|
||||
return;
|
||||
}
|
||||
|
||||
Optional<BpmnApproveConf> processApproveConf = BpmnMetaParserHelper.getProcessApproveConf(mainProcess);
|
||||
// 开启了电子签名不能自动过审
|
||||
Boolean activitySignature = BpmnMetaParserHelper.getActivitySignature(mainProcess.getFlowElement(delegateTask.getTaskDefinitionKey()));
|
||||
@ -83,11 +92,12 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
|
||||
boolean exists = checkApproverService.checkApproverExists(delegateTask, userTask, mainProcess, getContext());
|
||||
log.info("是否需要自动过程判断 exists:{},processInstId:{},taskDefinitionKey:{}", exists, delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey());
|
||||
if (exists) {
|
||||
autoPass(delegateTask, null,"已同意(同一审批人,自动过审)");
|
||||
autoPass(delegateTask, null, "已同意(同一审批人,自动过审)");
|
||||
}
|
||||
} else {
|
||||
// 检测节点自身配置是否有自动操作
|
||||
checkApprovalMethod(delegateTask, userTask);
|
||||
}
|
||||
// 检测节点自身配置是否有自动操作
|
||||
checkApprovalMethod(delegateTask, userTask);
|
||||
|
||||
log.info("AutoOperatorEventListener#onCreated...end:{}, processInstanceId:{}", delegateTask.getTaskDefinitionKey(), delegateTask.getProcessInstanceId());
|
||||
}
|
||||
@ -190,7 +200,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
|
||||
}
|
||||
|
||||
private void autoReject(DelegateTask delegateTask) {
|
||||
autoReject(delegateTask,"无需审批人,自动驳回" );
|
||||
autoReject(delegateTask, "无需审批人,自动驳回");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user