REQ-2596-节点审批人大于指定人数,按指定数量截取
This commit is contained in:
parent
196d9e61cd
commit
970e7e58ab
@ -156,4 +156,9 @@ public interface BpmnConstants {
|
||||
* 用于 MQ 的 Header, 记录当前事件的归属应用
|
||||
*/
|
||||
String MQ_OWNERSHIP_APP = "MQ_OWNERSHIP_APPLICATION";
|
||||
|
||||
/**
|
||||
* 审批人数量限制
|
||||
*/
|
||||
Integer ASSIGNER_LIMIT_NUMBER = 60;
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@ import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.ASSIGNER_LIMIT_NUMBER;
|
||||
import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.CALC_TASK_ASSIGNEE_ERROR;
|
||||
import static cn.axzo.workflow.core.common.code.ConvertorRespCode.CONVERTOR_META_DATA_FORMAT_ERROR;
|
||||
import static cn.axzo.workflow.core.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_CALC_ERROR;
|
||||
@ -72,7 +73,7 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
|
||||
ApproverScopeEnum processor = ((NoticeFlowElement) flowElement).getProcessor();
|
||||
assigners.addAll(privateSelector(processor, flowElement, execution, throwException));
|
||||
}
|
||||
return assigners.stream().filter(i -> StringUtils.hasText(i.getPersonId())).collect(Collectors.toList());
|
||||
return getLimitedAssignerList(assigners.stream().filter(i -> StringUtils.hasText(i.getPersonId())).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private List<BpmnTaskDelegateAssigner> privateSelector(ApproverScopeEnum processorType, FlowElement flowElement,
|
||||
@ -174,6 +175,19 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定数量审批人
|
||||
*
|
||||
* @param assigners 原始的审批人列表
|
||||
* @return 截取后的审批人列表
|
||||
*/
|
||||
protected List<BpmnTaskDelegateAssigner> getLimitedAssignerList(List<BpmnTaskDelegateAssigner> assigners) {
|
||||
if (CollectionUtils.isEmpty(assigners) || assigners.size() <= ASSIGNER_LIMIT_NUMBER) {
|
||||
return assigners;
|
||||
}
|
||||
return assigners.subList(0, ASSIGNER_LIMIT_NUMBER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setApplicationContext(ApplicationContext context) throws BeansException {
|
||||
this.applicationContext = context;
|
||||
|
||||
@ -39,7 +39,7 @@ public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssign
|
||||
}
|
||||
BpmnMetaParserHelper.getApproverSpecifyValue((UserTask) flowElement)
|
||||
.ifPresent(s -> assigners.addAll(JSON.parseArray(s, BpmnTaskDelegateAssigner.class)));
|
||||
return assigners;
|
||||
return getLimitedAssignerList(assigners);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user