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.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
@ -53,15 +54,13 @@ public class AdminTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector
ApproverScopeDTO scopeDto) {
ListFlowTaskAssignerReq.ListFlowTaskAssignerReqBuilder builder = ListFlowTaskAssignerReq.builder();
if (!CollectionUtils.isEmpty(scopeDto.getOrgScopes())) {
builder.orgScopes(scopeDto.getOrgScopes().stream()
.map(e -> BeanUtil
.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
builder.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList()));
}
if (!CollectionUtils.isEmpty(scopeDto.getWorkerTeamScopes())) {
builder.workerTeamScopes(scopeDto.getWorkerTeamScopes().stream()
.map(w -> BeanUtil
.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
builder.workerTeamScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(w -> BeanUtil.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList()));
}
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.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
@ -50,11 +51,11 @@ public class IdentityTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelect
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) {
ListFlowTaskAssignerReq req = ListFlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream()
.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil
.copyProperties(e, ListFlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList()))
.workerTeamScopes(scopeDto.getWorkerTeamScopes().stream()
.workerTeamScopes(ListUtils.emptyIfNull(scopeDto.getWorkerTeamScopes()).stream()
.map(w -> BeanUtil
.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class))
.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.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
@ -60,7 +61,7 @@ public class InitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAssigne
return super.invokeService(userTask, execution, scopeDto);
}
FlowTaskAssignerReq req = FlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream()
.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(o -> FlowTaskAssignerReq.OrgScope.builder()
.ouId(o.getOuId())
.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.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
@ -51,7 +52,7 @@ public class PositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelect
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) {
FlowTaskAssignerReq req = FlowTaskAssignerReq.builder()
.orgScopes(scopeDto.getOrgScopes().stream()
.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil.copyProperties(e, FlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList()))
.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.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
@ -51,7 +52,7 @@ public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
@Override
protected List<BpmnTaskDelegateAssigner> invokeService(UserTask userTask, DelegateExecution execution,
ApproverScopeDTO scopeDto) {
Set<Long> workspaceIdSet = scopeDto.getOrgScopes().stream()
Set<Long> workspaceIdSet = ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(OrgScope::getWorkspaceId)
.collect(Collectors.toSet());
@ -59,7 +60,7 @@ public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
// ouIdsworkspaceIds 只能传其中一个 然后代码过滤
RoleUserParam param = RoleUserParam.builder()
.roleIds(super.getTypes(userTask).stream().map(Long::valueOf).collect(Collectors.toSet()))
.ouIds(scopeDto.getOrgScopes().stream()
.ouIds(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(OrgScope::getOuId)
.collect(Collectors.toList()))
.build();

View File

@ -40,6 +40,7 @@ import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Objects;
import static cn.axzo.workflow.common.constant.BpmnConstants.BIZ_ORG_RELATION;
import static cn.azxo.framework.common.model.CommonResponse.success;
@ -81,9 +82,10 @@ public class BpmnProcessInstanceController implements ProcessInstanceApi {
try {
result = bpmnProcessInstanceService.createProcessInstance(dto);
} 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);
return CommonResponse.fail(e.getMessage());
return CommonResponse.fail(errorMsg);
}
return success(result);
}