REQ-2516-调整人员数据截取代码
This commit is contained in:
parent
c4dab46b74
commit
da29cbd5e0
@ -379,6 +379,22 @@ public class CustomTaskHelper {
|
||||
.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定数量元素
|
||||
*
|
||||
* @param assigners 原始列表列表
|
||||
* @return 截取后的列表
|
||||
*/
|
||||
public static <T> List<T> getLimitedElementList(List<T> assigners, Integer limitNumber) {
|
||||
if (limitNumber == null || limitNumber <= 0) {
|
||||
throw new IllegalArgumentException("limit number must be greater than 0");
|
||||
}
|
||||
if (CollectionUtils.isEmpty(assigners) || assigners.size() <= limitNumber) {
|
||||
return assigners;
|
||||
}
|
||||
return assigners.subList(0, limitNumber);
|
||||
}
|
||||
|
||||
public static List<BpmnTaskDelegateAssigner> getHistoryOperationUsers(CommandContext commandContext, String processInstanceId,
|
||||
BpmnHistoricTaskInstanceConverter historicTaskInstanceConverter,
|
||||
String serviceVersion) {
|
||||
|
||||
@ -37,6 +37,7 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.ASSIGNER_LIMIT_NUMBER;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.BPM_ALLOW_SKIP_USER_TASK;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.DUMMY_ASSIGNEE;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.DUMMY_ASSIGNEE_TYPE;
|
||||
@ -53,6 +54,7 @@ import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getApprove
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getApproverSpecify;
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getNodeType;
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getProcessServerVersion;
|
||||
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.getLimitedElementList;
|
||||
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.removeDuplicateByPersonId;
|
||||
|
||||
|
||||
@ -148,13 +150,13 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
|
||||
// 审批候选人为空时的兜底
|
||||
emptyAssigneeHandle(assigners, userTask, execution);
|
||||
|
||||
for (BpmnTaskDelegateAssigner user : assigners) {
|
||||
List<BpmnTaskDelegateAssigner> resultAssigners = getLimitedElementList(assigners, ASSIGNER_LIMIT_NUMBER);
|
||||
for (BpmnTaskDelegateAssigner user : resultAssigners) {
|
||||
assigneeIdList.add(user.buildAssigneeId());
|
||||
}
|
||||
|
||||
execution.setVariable(INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + currentActivityId,
|
||||
assigners);
|
||||
resultAssigners);
|
||||
break;
|
||||
}
|
||||
// UserTask 多实例, 该变量用于引擎
|
||||
@ -249,8 +251,8 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
});
|
||||
}
|
||||
|
||||
// 按 personId 去重
|
||||
return removeDuplicateByPersonId(assigners);
|
||||
// 按 personId 去重,再截取指定个数
|
||||
return getLimitedElementList(removeDuplicateByPersonId(assigners), ASSIGNER_LIMIT_NUMBER);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -73,7 +73,7 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
|
||||
ApproverScopeEnum processor = ((NoticeFlowElement) flowElement).getProcessor();
|
||||
assigners.addAll(privateSelector(processor, flowElement, execution, throwException));
|
||||
}
|
||||
return getLimitedAssignerList(assigners.stream().filter(i -> StringUtils.hasText(i.getPersonId())).collect(Collectors.toList()));
|
||||
return assigners.stream().filter(i -> StringUtils.hasText(i.getPersonId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<BpmnTaskDelegateAssigner> privateSelector(ApproverScopeEnum processorType, FlowElement flowElement,
|
||||
@ -175,19 +175,6 @@ 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 getLimitedAssignerList(assigners);
|
||||
return assigners;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user