diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java index 034a0f572..6e09fcc58 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java @@ -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(); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java index e14bafd52..97c2ff1bf 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java @@ -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 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())) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java index 2ba725e60..6d97d51d5 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java @@ -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()) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java index 660d2c280..7507670ea 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java @@ -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 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)) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java index 2f7488bea..230d2154c 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java @@ -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 invokeService(UserTask userTask, DelegateExecution execution, ApproverScopeDTO scopeDto) { - Set workspaceIdSet = scopeDto.getOrgScopes().stream() + Set workspaceIdSet = ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream() .map(OrgScope::getWorkspaceId) .collect(Collectors.toSet()); @@ -59,7 +60,7 @@ public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { // ouIds、workspaceIds 只能传其中一个 然后代码过滤 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(); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java index faf5a4ec9..6bdd54113 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java @@ -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); }