update - 优化处理审批过程中计算审批人的调二方接口的参数处理

This commit is contained in:
wangli 2024-02-01 18:34:44 +08:00
parent cbe60a18d0
commit 2ab15f75f1
6 changed files with 19 additions and 14 deletions

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -53,15 +54,13 @@ public class AdminTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector
ApproverScopeDTO scopeDto) { ApproverScopeDTO scopeDto) {
ListFlowTaskAssignerReq.ListFlowTaskAssignerReqBuilder builder = ListFlowTaskAssignerReq.builder(); ListFlowTaskAssignerReq.ListFlowTaskAssignerReqBuilder builder = ListFlowTaskAssignerReq.builder();
if (!CollectionUtils.isEmpty(scopeDto.getOrgScopes())) { if (!CollectionUtils.isEmpty(scopeDto.getOrgScopes())) {
builder.orgScopes(scopeDto.getOrgScopes().stream() builder.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil .map(e -> BeanUtil.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
if (!CollectionUtils.isEmpty(scopeDto.getWorkerTeamScopes())) { if (!CollectionUtils.isEmpty(scopeDto.getWorkerTeamScopes())) {
builder.workerTeamScopes(scopeDto.getWorkerTeamScopes().stream() builder.workerTeamScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(w -> BeanUtil .map(w -> BeanUtil.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
ListFlowTaskAssignerReq req = builder.build(); ListFlowTaskAssignerReq req = builder.build();

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -50,11 +51,11 @@ public class IdentityTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelect
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution, protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) { ApproverScopeDTO scopeDto) {
ListFlowTaskAssignerReq req = ListFlowTaskAssignerReq.builder() ListFlowTaskAssignerReq req = ListFlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream() .orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil .map(e -> BeanUtil
.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class)) .copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList())) .collect(Collectors.toList()))
.workerTeamScopes(scopeDto.getWorkerTeamScopes().stream() .workerTeamScopes(ListUtils.emptyIfNull(scopeDto.getWorkerTeamScopes()).stream()
.map(w -> BeanUtil .map(w -> BeanUtil
.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class)) .copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList())) .collect(Collectors.toList()))

View File

@ -10,6 +10,7 @@ import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -60,7 +61,7 @@ public class InitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAssigne
return super.invokeService(userTask, execution, scopeDto); return super.invokeService(userTask, execution, scopeDto);
} }
FlowTaskAssignerReq req = FlowTaskAssignerReq.builder() FlowTaskAssignerReq req = FlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream() .orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(o -> FlowTaskAssignerReq.OrgScope.builder() .map(o -> FlowTaskAssignerReq.OrgScope.builder()
.ouId(o.getOuId()) .ouId(o.getOuId())
.workspaceId(o.getWorkspaceId()) .workspaceId(o.getWorkspaceId())

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -51,7 +52,7 @@ public class PositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelect
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution, protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) { ApproverScopeDTO scopeDto) {
FlowTaskAssignerReq req = FlowTaskAssignerReq.builder() FlowTaskAssignerReq req = FlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream() .orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil.copyProperties(e, FlowTaskAssignerReq.OrgScope.class)) .map(e -> BeanUtil.copyProperties(e, FlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList())) .collect(Collectors.toList()))
.jobCodes(super.getTypes(userTask)) .jobCodes(super.getTypes(userTask))

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO; import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask; import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -51,7 +52,7 @@ public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
@Override @Override
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution, protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) { ApproverScopeDTO scopeDto) {
Set<Long> workspaceIdSet = scopeDto.getOrgScopes().stream() Set<Long> workspaceIdSet = ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(OrgScope::getWorkspaceId) .map(OrgScope::getWorkspaceId)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
@ -59,7 +60,7 @@ public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
// ouIdsworkspaceIds 只能传其中一个 然后代码过滤 // ouIdsworkspaceIds 只能传其中一个 然后代码过滤
RoleUserParam param = RoleUserParam.builder() RoleUserParam param = RoleUserParam.builder()
.roleIds(super.getTypes(userTask).stream().map(Long::valueOf).collect(Collectors.toSet())) .roleIds(super.getTypes(userTask).stream().map(Long::valueOf).collect(Collectors.toSet()))
.ouIds(scopeDto.getOrgScopes().stream() .ouIds(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(OrgScope::getOuId) .map(OrgScope::getOuId)
.collect(Collectors.toList())) .collect(Collectors.toList()))
.build(); .build();

View File

@ -40,6 +40,7 @@ import javax.annotation.Resource;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
import java.util.Objects;
import static cn.axzo.workflow.common.constant.BpmnConstants.BIZ_ORG_RELATION; import static cn.axzo.workflow.common.constant.BpmnConstants.BIZ_ORG_RELATION;
import static cn.azxo.framework.common.model.CommonResponse.success; import static cn.azxo.framework.common.model.CommonResponse.success;
@ -81,9 +82,10 @@ public class BpmnProcessInstanceController implements ProcessInstanceApi {
try { try {
result = bpmnProcessInstanceService.createProcessInstance(dto); result = bpmnProcessInstanceService.createProcessInstance(dto);
} catch (Exception e) { } catch (Exception e) {
LogUtil.error(LogUtil.ErrorType.ERROR_BUSINESS, "发起审核createProcessInstance===>>>异常:{}", e.getMessage()); String errorMsg = Objects.nonNull(e.getCause()) ? e.getCause().getMessage() : e.getMessage();
LogUtil.error(LogUtil.ErrorType.ERROR_BUSINESS, "发起审核createProcessInstance===>>>异常:{}", errorMsg);
DingTalkUtils.sendDingTalk(profile, dto, e); DingTalkUtils.sendDingTalk(profile, dto, e);
return CommonResponse.fail(e.getMessage()); return CommonResponse.fail(errorMsg);
} }
return success(result); return success(result);
} }