REQ-2596-节点审批人大于指定人数,按指定数量截取
This commit is contained in:
parent
196d9e61cd
commit
970e7e58ab
@ -156,4 +156,9 @@ public interface BpmnConstants {
|
|||||||
* 用于 MQ 的 Header, 记录当前事件的归属应用
|
* 用于 MQ 的 Header, 记录当前事件的归属应用
|
||||||
*/
|
*/
|
||||||
String MQ_OWNERSHIP_APP = "MQ_OWNERSHIP_APPLICATION";
|
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.function.Supplier;
|
||||||
import java.util.stream.Collectors;
|
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.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.ConvertorRespCode.CONVERTOR_META_DATA_FORMAT_ERROR;
|
||||||
import static cn.axzo.workflow.core.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_CALC_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();
|
ApproverScopeEnum processor = ((NoticeFlowElement) flowElement).getProcessor();
|
||||||
assigners.addAll(privateSelector(processor, flowElement, execution, throwException));
|
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,
|
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
|
@Override
|
||||||
public void setApplicationContext(ApplicationContext context) throws BeansException {
|
public void setApplicationContext(ApplicationContext context) throws BeansException {
|
||||||
this.applicationContext = context;
|
this.applicationContext = context;
|
||||||
|
|||||||
@ -39,7 +39,7 @@ public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssign
|
|||||||
}
|
}
|
||||||
BpmnMetaParserHelper.getApproverSpecifyValue((UserTask) flowElement)
|
BpmnMetaParserHelper.getApproverSpecifyValue((UserTask) flowElement)
|
||||||
.ifPresent(s -> assigners.addAll(JSON.parseArray(s, BpmnTaskDelegateAssigner.class)));
|
.ifPresent(s -> assigners.addAll(JSON.parseArray(s, BpmnTaskDelegateAssigner.class)));
|
||||||
return assigners;
|
return getLimitedAssignerList(assigners);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user