From bbaf9db56d9c622607f9ee7c4fd3ed5dff6bf7c7 Mon Sep 17 00:00:00 2001 From: yuquan.zhu <zhuyuquan@foreveross.com> Date: Wed, 26 Aug 2020 16:57:58 +0800 Subject: [PATCH] 改审批发起逻辑 --- src/main/java/cn/timer/api/controller/spmk/SpmkController.java | 57 ++++++++++++++++++++++++++++++++++++++++----------------- src/main/java/cn/timer/api/utils/router/RouterUtils.java | 31 +++++++++++++++++++++++++------ 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/main/java/cn/timer/api/controller/spmk/SpmkController.java b/src/main/java/cn/timer/api/controller/spmk/SpmkController.java index dcda66e..57f52ab 100644 --- a/src/main/java/cn/timer/api/controller/spmk/SpmkController.java +++ b/src/main/java/cn/timer/api/controller/spmk/SpmkController.java @@ -525,26 +525,30 @@ public class SpmkController { Router router = spmkApproveSummaryDto.getRouter(); List<Router> routers = router.getChildren(); +// routers = RouterUtils.clearRouters(routers); + if(routers==null){ + return ResultUtil.error("无法发起,请完善审批流程"); + } if (CollectionUtil.isNotEmpty(routers)) { - boolean hasAudit=false; - if(routers.size()>0){ - for (Relation relation:routers.get(0).getRelation()) { - if(relation.getUsers().size()>0){ - hasAudit=true; - } - } - } -// List<Relation> relations = routers.get(0).getRelation(); -// if (relations == null || relations.size() < 1) { -// return ResultUtil.error("无法发起,请完善审批流程"); +// boolean hasAudit=false; +// if(routers.size()>0){ +// for (Relation relation:routers.get(0).getRelation()) { +// if(relation.getUsers().size()>0){ +// hasAudit=true; +// } +// } // } -// List<User> users = relations.get(0).getUsers(); -// if (CollectionUtil.isEmpty(users)) { -// return ResultUtil.error("无法发起,请完善审批流程"); +//// List<Relation> relations = routers.get(0).getRelation(); +//// if (relations == null || relations.size() < 1) { +//// return ResultUtil.error("无法发起,请完善审批流程"); +//// } +//// List<User> users = relations.get(0).getUsers(); +//// if (CollectionUtil.isEmpty(users)) { +//// return ResultUtil.error("无法发起,请完善审批流程"); +//// } +// if(!hasAudit){ +// return ResultUtil.error("请选择审批人!"); // } - if(!hasAudit){ - return ResultUtil.error("请选择审批人!"); - } }else { return ResultUtil.error("无法发起,请完善审批流程"); } @@ -560,6 +564,25 @@ public class SpmkController { RouterUtils.NextNode(listRouter, jSONObject, ISFIRST); List<FlowChildren> listFlowChildren = new ArrayList<FlowChildren>(); RouterUtils.getIsFlowChildren(listRouter,listFlowChildren); + + if(listFlowChildren.isEmpty()){ + return ResultUtil.error("无法发起,请完善审批流程"); + } + + for (FlowChildren flowChildrenItem: listFlowChildren) { + if("audit".equals(flowChildrenItem.getClassName())){ + boolean hasAudit=false; + for (Relation relation:flowChildrenItem.getRelation()) { + if(relation.getUsers().size()>0){ + hasAudit=true; + } + } + if(!hasAudit){ + return ResultUtil.error("审批流程设置审批人为空无法发起!"); + } + } + } + Logoutput("listFlowChildren"); // 当前审批人 diff --git a/src/main/java/cn/timer/api/utils/router/RouterUtils.java b/src/main/java/cn/timer/api/utils/router/RouterUtils.java index 988ae32..386e158 100644 --- a/src/main/java/cn/timer/api/utils/router/RouterUtils.java +++ b/src/main/java/cn/timer/api/utils/router/RouterUtils.java @@ -389,12 +389,26 @@ public class RouterUtils { if(router.getRelation() != null) { for (Relation relation : router.getRelation()) { - if (relation != null && CollectionUtil.isNotEmpty(relation.getUsers())) { - if (router.getFlow()) { - FlowChildren fc = FlowChildren.builder().build(); - BeanUtil.copyProperties(router, fc, "condition","children"); - listFlowChildren.add(fc); - getIsFlowChildren(router.getChildren(), listFlowChildren); + if (relation != null) { + if(CollectionUtil.isNotEmpty(relation.getUsers())){ + if (router.getFlow()) { + FlowChildren fc = FlowChildren.builder().build(); + BeanUtil.copyProperties(router, fc, "condition","children"); + listFlowChildren.add(fc); + getIsFlowChildren(router.getChildren(), listFlowChildren); + } + }else{ + //无审批人,查询是否跳过或者失败! 0不处理 1指定成员 2自动通过 + if("executive".equals(relation.getType()) && relation.getEmpty() == 2){ + getIsFlowChildren(router.getChildren(), listFlowChildren); + }else if("executive".equals(relation.getType()) && relation.getEmpty() == 0){ + FlowChildren fc = FlowChildren.builder().build(); + BeanUtil.copyProperties(router, fc, "condition","children"); + listFlowChildren.add(fc); + getIsFlowChildren(router.getChildren(), listFlowChildren); + }else { + //未开发 + } } } } @@ -714,4 +728,9 @@ public class RouterUtils { } + public static List<Router> clearRouters(List<Router> routers){ + + return routers; + } + } -- libgit2 0.26.0