REQ-2924-调整角色,管理员查询api
This commit is contained in:
parent
969f5dc70b
commit
fa66b6f4ec
@ -1,24 +1,30 @@
|
||||
package cn.axzo.workflow.server.controller.delegate;
|
||||
|
||||
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.axzo.karma.client.feign.FlowSupportApi;
|
||||
import cn.axzo.karma.client.model.request.ListFlowTaskAssignerReq;
|
||||
import cn.axzo.karma.client.model.response.FlowTaskAssignerResp;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
|
||||
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO.OrgScope;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryItemVO;
|
||||
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessModelService;
|
||||
import cn.axzo.workflow.core.service.CategoryService;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.BPM_MODEL_CATEGORY;
|
||||
|
||||
/**
|
||||
* 基于"角色"查询审批人
|
||||
*
|
||||
@ -30,7 +36,13 @@ import java.util.stream.Collectors;
|
||||
public class BasedRoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
|
||||
|
||||
@Autowired
|
||||
private TyrSaasRoleUserApi tyrSaasRoleUserApi;
|
||||
private FlowSupportApi flowSupportApi;
|
||||
|
||||
@Autowired
|
||||
private CategoryService categoryService;
|
||||
|
||||
@Autowired
|
||||
private BpmnProcessModelService bpmnProcessModelService;
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
@ -51,33 +63,46 @@ public class BasedRoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelec
|
||||
@Override
|
||||
protected List<BpmnTaskDelegateAssigner> invokeService(FlowElement flowElement, DelegateExecution execution,
|
||||
ApproverScopeDTO scopeDto) {
|
||||
Set<Long> workspaceIdSet = ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
|
||||
.map(OrgScope::getWorkspaceId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
|
||||
// ouIds、workspaceIds 只能传其中一个 然后代码过滤
|
||||
RoleUserParam param = RoleUserParam.builder()
|
||||
.roleIds(super.getTypes(flowElement).stream().map(Long::valueOf).collect(Collectors.toSet()))
|
||||
.ouIds(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
|
||||
.map(OrgScope::getOuId)
|
||||
BpmnModelDetailVO detailVO = bpmnProcessModelService.getById(execution.getProcessDefinitionId(), null);
|
||||
Optional<CategoryItemVO> categoryItemVO = categoryService.get(BPM_MODEL_CATEGORY, detailVO.getKey());
|
||||
Map<String, Object> variables = execution.getVariables();
|
||||
ListFlowTaskAssignerReq req = ListFlowTaskAssignerReq.builder()
|
||||
.procInstId(execution.getProcessInstanceId())
|
||||
.procInstType(Integer.valueOf(Objects.requireNonNull(categoryItemVO.map(CategoryItemVO::getWorkspaceTypeCode).orElse(null))))
|
||||
.orgScopes(scopeDto.getOrgScopes().stream()
|
||||
.map(os -> ListFlowTaskAssignerReq.OrgScope.builder()
|
||||
.ouId(os.getOuId())
|
||||
.nodeId(os.getNodeId())
|
||||
.workspaceId(os.getWorkspaceId())
|
||||
.workspaceType(os.getWorkspaceType())
|
||||
.build())
|
||||
.collect(Collectors.toList()))
|
||||
.workerTeamScopes(scopeDto.getWorkerTeamScopes().stream()
|
||||
.map(ot -> ListFlowTaskAssignerReq.OrgScope.builder()
|
||||
.workspaceId(ot.getWorkspaceId())
|
||||
.ouId(ot.getOuId())
|
||||
.nodeId(ot.getNodeId())
|
||||
.workspaceType(ot.getWorkspaceType())
|
||||
.build())
|
||||
.collect(Collectors.toList()))
|
||||
.roleIds(super.getTypes(flowElement).stream().map(Long::valueOf).collect(Collectors.toList()))
|
||||
.variables(variables)
|
||||
.build();
|
||||
List<SaasRoleUserDTO> flowTaskAssigners = parseApiResult(() -> tyrSaasRoleUserApi.roleUserList(param),
|
||||
|
||||
List<FlowTaskAssignerResp> flowTaskAssigners = parseApiResult(() -> flowSupportApi.listTaskAssignerByRoles(req),
|
||||
"审批节点: " + flowElement.getId() + ", 通过角色查询审批人",
|
||||
"cn.axzo.tyr.client.feign.TyrSaasRoleUserApi.roleUserList", param)
|
||||
.stream().filter(f -> workspaceIdSet.contains(f.getWorkspaceId()))
|
||||
.collect(Collectors.toList());
|
||||
"cn.axzo.karma.client.feign.FlowSupportApi.listTaskAssignerByRoles", req);
|
||||
|
||||
if (CollUtil.isEmpty(flowTaskAssigners)) {
|
||||
return super.invokeService(flowElement, execution, scopeDto);
|
||||
}
|
||||
return flowTaskAssigners.stream().map(u -> BpmnTaskDelegateAssigner.builder()
|
||||
.assignee(String.valueOf(u.getIdentityId()))
|
||||
.assigneeType(String.valueOf(u.getIdentityType()))
|
||||
.tenantId(String.valueOf(u.getWorkspaceId()))
|
||||
return flowTaskAssigners.stream()
|
||||
.map(u -> BpmnTaskDelegateAssigner.builder()
|
||||
.assignee(String.valueOf(u.getAssignee()))
|
||||
.assigneeType(String.valueOf(u.getAssigneeType()))
|
||||
.tenantId(String.valueOf(u.getTenantId()))
|
||||
.ouId(String.valueOf(u.getOuId()))
|
||||
.personId(String.valueOf(u.getNaturalPersonId()))
|
||||
.personId(String.valueOf(u.getPersonId()))
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -70,9 +70,9 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne
|
||||
}
|
||||
});
|
||||
List<FlowTaskAssignerResp> flowTaskAssigners =
|
||||
parseApiResult(() -> flowSupportApi.listTaskAssignerAdmin(req),
|
||||
parseApiResult(() -> flowSupportApi.listTaskAssignerAdminV2(req),
|
||||
"审批节点: " + flowElement.getId() + ", 通过管理员查询审批人",
|
||||
"cn.axzo.karma.client.feign.FlowSupportApi.listTaskAssignerAdmin", req);
|
||||
"cn.axzo.karma.client.feign.FlowSupportApi.listTaskAssignerAdminV2", req);
|
||||
|
||||
|
||||
if (CollUtil.isEmpty(flowTaskAssigners)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user