update - 调整选择人前入参的查询逻辑

This commit is contained in:
wangli 2023-12-05 01:14:40 +08:00
parent a56f2a9514
commit fe9661fe44
3 changed files with 21 additions and 19 deletions

View File

@ -19,7 +19,7 @@ public enum BpmnErrorCode implements IProjectRespCode {
// ========== convertor 02-001 ==========
CONVERTOR_UNKNOW_NODE_TYPE("02001", "节点类型【{}】暂不支持"),
CONVERTOR_META_DATA_FORMAT_ERROR("02002", "JSON 数据格式有误"),
CONVERTOR_META_DATA_FORMAT_ERROR("02002", "JSON 数据格式有误-{}: {}"),
CONVERTOR_COMMON_ERROR("02003", "JSON 转 BPMN 失败, 原因:【{}】"),
CONVERTOR_NODE_TYPE_NOT_SUPPORT("02004", "【{}】节点类型, ID:【{}】暂不支持"),

View File

@ -7,6 +7,7 @@ import cn.hutool.core.collection.CollUtil;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.List;
@ -28,20 +29,27 @@ public class EntWorkspaceProcessor implements ApproverScopeProcessor {
public ApproverScopeDTO select(UserTask userTask, DelegateExecution execution) {
// 获取组织信息
CooperationOrgDTO orgDTO = (CooperationOrgDTO) execution.getVariables().get(BIZ_ORG_RELATION);
ApproverScopeDTO build = ApproverScopeDTO.builder().build();
if (Objects.isNull(orgDTO)) {
return ApproverScopeDTO.builder().build();
return build;
}
List<OrgScope> orgScopes = orgDTO.getOrgScopes().stream()
.filter(o -> WorkspaceType.ENT == WorkspaceType.getType(o.getWorkspaceType()))
.collect(Collectors.toList());
List<OrgScope> workerTeamScopes = CollUtil.defaultIfEmpty(orgDTO.getWorkerTeamScopes(),
Collections.emptyList())
.stream()
.filter(o -> WorkspaceType.ENT == WorkspaceType.getType(o.getWorkspaceType()))
.collect(Collectors.toList());
return ApproverScopeDTO.builder().orgScopes(orgScopes)
.workerTeamScopes(workerTeamScopes).build();
if (!CollectionUtils.isEmpty(orgDTO.getOrgScopes())) {
List<OrgScope> orgScopes = orgDTO.getOrgScopes().stream()
.filter(o -> WorkspaceType.ENT == WorkspaceType.getType(o.getWorkspaceType()))
.collect(Collectors.toList());
build.setOrgScopes(orgScopes);
}
if (!CollectionUtils.isEmpty(orgDTO.getWorkerTeamScopes())) {
List<OrgScope> workerTeamScopes = CollUtil.defaultIfEmpty(orgDTO.getWorkerTeamScopes(),
Collections.emptyList())
.stream()
.filter(o -> WorkspaceType.ENT == WorkspaceType.getType(o.getWorkspaceType()))
.collect(Collectors.toList());
build.setWorkerTeamScopes(workerTeamScopes);
}
return build;
}
}

View File

@ -7,7 +7,6 @@ import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper;
import cn.axzo.workflow.core.deletage.BpmnTaskAssigneeSelector;
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeProcessor;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.http.HttpStatus;
import cn.hutool.json.JSONUtil;
@ -48,10 +47,6 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
applicationContext.getBean(approverScopeEnum.getProcessor(),
ApproverScopeProcessor.class);
ApproverScopeDTO scopeDto = processor.select(userTask, execution);
if (CollUtil.isEmpty(scopeDto.getOrgScopes())) {
log.info("roleTaskAssignee no get orgScopes");
return Collections.emptyList();
}
return invokeService(userTask, execution, scopeDto);
}
}).orElseGet(Collections::emptyList);
@ -83,8 +78,7 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
.collect(Collectors.toList()))
.orElse(Collections.emptyList());
} catch (Exception e) {
e.getStackTrace();
throw new WorkflowEngineException(CONVERTOR_META_DATA_FORMAT_ERROR);
throw new WorkflowEngineException(CONVERTOR_META_DATA_FORMAT_ERROR, "AbstractBpmnTaskAssigneeSelector#getTypes", e.getMessage());
}
}