From d6e78e3f0a37cc673a95e9847d894406eed326ae Mon Sep 17 00:00:00 2001 From: WendyYang Date: Sun, 12 Feb 2023 12:09:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=90=AF=E9=A1=B9=E7=9B=AE=E7=94=B3?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ningdatech/pmapi/common/config/BeanConfig.java | 1 - .../common/enumeration/ProjectProessStageEnum.java | 22 + .../pmapi/common/enums/ProjectProessStageEnum.java | 22 - .../com/ningdatech/pmapi/common/util/BizUtils.java | 53 +++ .../com/ningdatech/pmapi/common/util/TreeUtil.java | 442 +++++++++++++++++++++ .../ningdatech/pmapi/common/utils/BizUtils.java | 53 --- .../ningdatech/pmapi/common/utils/TreeUtil.java | 442 --------------------- .../manage/DeclaredProjectManage.java | 2 +- .../controller/AnnualPlanController.java | 13 +- .../projectlib/manage/AnnualPlanLibManage.java | 24 ++ .../model/req/StartProjectDeclareReq.java | 25 ++ .../pmapi/sys/controller/MenuController.java | 2 +- .../ningdatech/pmapi/sys/manage/MenuManage.java | 2 +- .../ningdatech/pmapi/sys/manage/NoticeManage.java | 2 +- .../controller/TodoCenterController.java | 2 - .../enumeration/IsAppendProjectEnum.java | 70 ++++ .../todocenter/enumeration/ProcessStatusEnum.java | 97 +++++ .../todocenter/enums/IsAppendProjectEnum.java | 70 ---- .../pmapi/todocenter/enums/ProcessStatusEnum.java | 97 ----- .../pmapi/todocenter/manage/TodoCenterManage.java | 4 +- 20 files changed, 749 insertions(+), 696 deletions(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/enumeration/ProjectProessStageEnum.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/enums/ProjectProessStageEnum.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/util/BizUtils.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/util/TreeUtil.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/utils/BizUtils.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/utils/TreeUtil.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/StartProjectDeclareReq.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/IsAppendProjectEnum.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/ProcessStatusEnum.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/IsAppendProjectEnum.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/ProcessStatusEnum.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java index 93bfd09..315f77a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java @@ -3,7 +3,6 @@ package com.ningdatech.pmapi.common.config; import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient; import com.ningdatech.pmapi.common.util.SpringContextHolder; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/enumeration/ProjectProessStageEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/enumeration/ProjectProessStageEnum.java new file mode 100644 index 0000000..99cc654 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/enumeration/ProjectProessStageEnum.java @@ -0,0 +1,22 @@ +package com.ningdatech.pmapi.common.enumeration; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +public enum ProjectProessStageEnum { + /** + * 项目流程配置 阶段枚举 + */ + ORG_INTERNAL_APPROVAL_PROCESS(1,"单位内部审批流程"), + PROJECT_PREQUALIFICATION_APPROVAL_PROCESS(2,"项目预审审批流程"), + DEPARTMENT_JOINT_APPROVAL_PROCESS(3,"部门联合审批流程"), + CONSTRUCTION_PROJECT_APPROVAL_PROCESS(4,"建设方案审批流程"), + ACCEPTANCE_DECLARATION_APPROVAL_PROCESS(5,"验收申报审批流程"); + + private Integer code; + private String desc; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/enums/ProjectProessStageEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/enums/ProjectProessStageEnum.java deleted file mode 100644 index 3b7ad16..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/enums/ProjectProessStageEnum.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ningdatech.pmapi.common.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@AllArgsConstructor -@NoArgsConstructor -public enum ProjectProessStageEnum { - /** - * 项目流程配置 阶段枚举 - */ - ORG_INTERNAL_APPROVAL_PROCESS(1,"单位内部审批流程"), - PROJECT_PREQUALIFICATION_APPROVAL_PROCESS(2,"项目预审审批流程"), - DEPARTMENT_JOINT_APPROVAL_PROCESS(3,"部门联合审批流程"), - CONSTRUCTION_PROJECT_APPROVAL_PROCESS(4,"建设方案审批流程"), - ACCEPTANCE_DECLARATION_APPROVAL_PROCESS(5,"验收申报审批流程"); - - private Integer code; - private String desc; -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/util/BizUtils.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/util/BizUtils.java new file mode 100644 index 0000000..136dfa8 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/util/BizUtils.java @@ -0,0 +1,53 @@ +package com.ningdatech.pmapi.common.util; + +import cn.hutool.core.util.StrUtil; +import com.ningdatech.basic.util.StrPool; +import org.springframework.util.NumberUtils; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +/** + *

+ * BizUtils + *

+ * + * @author WendyYang + * @since 17:32 2023/1/29 + */ +public class BizUtils { + + private BizUtils() { + + } + + public static List splitToNum(String str, Class aClass) { + if (StrUtil.isEmpty(str)) { + return Collections.emptyList(); + } + return Arrays.stream(str.split(StrPool.COMMA)) + .map(w -> NumberUtils.parseNumber(w, aClass)) + .collect(Collectors.toList()); + } + + public static List splitToLong(String str) { + return splitToNum(str, Long.class); + } + + + public static void notNull(T obj, Consumer consumer) { + if (obj != null) { + consumer.accept(obj); + } + } + + public static void notBlank(String str,Consumer consumer) { + if (StrUtil.isNotBlank(str)) { + consumer.accept(str); + } + } + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/util/TreeUtil.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/util/TreeUtil.java new file mode 100644 index 0000000..e75eeb3 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/util/TreeUtil.java @@ -0,0 +1,442 @@ +package com.ningdatech.pmapi.common.util; + + +import cn.hutool.core.collection.CollUtil; +import com.google.common.collect.Maps; +import com.ningdatech.basic.util.StrPool; +import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; +import com.ningdatech.pmapi.sys.entity.RoleMenu; +import com.ningdatech.pmapi.sys.entity.vo.MenuRoleVO; +import org.apache.commons.lang3.StringUtils; + +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + +/** + * list列表 转换成tree列表 + * + * @author PoffyZhang + */ +public final class TreeUtil { + private TreeUtil() { + } + + private static Map nodeMap = Maps.newConcurrentMap(); + + /** + * 判断id是否为根节点 + * + * @param id + * @return + */ + public static boolean isRoot(Long id) { + return id == null || StrPool.DEF_PARENT_ID.equals(id); + } + + + public static String getTreePath(String parentTreePath, Long parentId) { + return StrPool.COMMA + parentId + parentTreePath; + } + + /** + * 构建Tree结构 + * + * @param treeList 待转换的集合 + * @return 树结构 + */ + public static > List buildTree(List treeList) { + if (CollUtil.isEmpty(treeList)) { + return treeList; + } + //记录自己是自己的父节点的id集合 + List selfIdEqSelfParent = new ArrayList<>(); + + // 遍历两次 + foreachNodes(treeList, selfIdEqSelfParent); + foreachNodesWithTopMenu(treeList); + + // 找出根节点集合 + List trees = new ArrayList<>(); + + List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); + for (E baseNode : treeList) { + if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { + baseNode.setPid(null); + baseNode.setTopMenu(baseNode.getName()); + trees.add(baseNode); + } + } + return trees; + } + + /** + * 构建Tree结构 + * + * @param treeList 待转换的集合 + * @param title 菜单名 + * @return 树结构 + */ + public static > List buildTree(List treeList, String title) { + if (CollUtil.isEmpty(treeList)) { + return treeList; + } + //记录自己是自己的父节点的id集合 + List selfIdEqSelfParent = new ArrayList<>(); + + // 遍历两次 + foreachNodes(treeList, selfIdEqSelfParent); + foreachNodesWithTopMenu(treeList); + + // 找出根节点集合 + List trees = new ArrayList<>(); + + List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); + for (E baseNode : treeList) { + if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { + baseNode.setPid(null); + baseNode.setTopMenu(baseNode.getName()); + trees.add(baseNode); + } + } +// checkTitle(trees,title); + return trees; + } + + private static > + void foreachNodes(List treeList, List selfIdEqSelfParent) { + nodeMap = Maps.newConcurrentMap(); + for (E parent : treeList) { + Serializable id = parent.getId(); + nodeMap.put(parent.getId(), parent); + for (E children : treeList) { + if (parent != children) { + //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 + if (id.equals(children.getPid())) { + parent.initChildren(); + if (0L == parent.getPid()) { + children.setTopMenu(parent.getName()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + parent.getChildren().add(children); + } + } else if (id.equals(parent.getPid())) { + selfIdEqSelfParent.add(id); + } + } + } + } + + private static > void foreachNodesWithTopMenu(List treeList) { + for (E parent : treeList) { + Serializable id = parent.getId(); + for (E children : treeList) { + if (parent != children) { + if (id.equals(children.getPid())) { + if (0L == parent.getPid()) { + children.setTopMenu(parent.getName()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + } + } + } + } + } + + private static > + void checkTitle(List trees, String title) { + if (StringUtils.isBlank(title)) { + return; + } + for (E tree : trees) { + //筛选 从顶级往下查 + //递归筛选 + checkTitleNode(tree, title, trees, trees); + } + } + + private static > void checkTitleNode(MenuTreeEntity node, String title, List parents, List tops) { + if (!node.getTitle().contains(title)) { + if (CollUtil.isEmpty(node.getChildren())) { + removeNode(parents, node, tops); + } else { + Iterator iterator = node.getChildren().iterator(); + while (iterator.hasNext()) { + checkTitleNode(iterator.next(), title, node.getChildren(), tops); + } + } + } else { + //匹配到了 + return; + } + } + + private static > + void removeNode(List parents, MenuTreeEntity node, List tops) { + parents.remove(node); + //如果该层节点都被删了 要删除父级 + if (Objects.nonNull(node.getPid())) { + MenuTreeEntity parent = nodeMap.get(node.getPid()); + if (Objects.nonNull(parent)) { + if (Objects.nonNull(parent.getPid())) { + MenuTreeEntity parentN = nodeMap.get(parent.getPid()); + removeNode(parentN.getChildren(), parent, tops); + } else { + tops.remove(parent); + } + } + } else { + tops.remove(node); + } + } + + public static List buildTree(List treeList, List roleMenus) { + if (CollUtil.isEmpty(treeList)) { + return treeList; + } + //记录自己是自己的父节点的id集合 + List selfIdEqSelfParent = new ArrayList<>(); + + // 遍历两次 + foreachNodesCheckRoleWithoutParent(treeList, selfIdEqSelfParent, roleMenus); + foreachNodesWithTopMenu(treeList); + + // 找出根节点集合 + List trees = new ArrayList<>(); + + List allIds = treeList.stream().map(MenuRoleVO::getId).collect(Collectors.toList()); + for (MenuRoleVO baseNode : treeList) { + if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { + baseNode.setPid(null); + for (RoleMenu roleMenu : roleMenus) { + if (baseNode.getId().equals(roleMenu.getMenuId()) && + 2 != baseNode.getHasPermission()) { + baseNode.setTopMenu(baseNode.getName()); + trees.add(baseNode); + } + } + } + } + return trees; + } + + private static void foreachNodesWithRole(List treeList, + List selfIdEqSelfParent, List roleMenus) { + nodeMap = Maps.newConcurrentMap(); + for (MenuRoleVO parent : treeList) { + Serializable id = parent.getId(); + nodeMap.put(parent.getId(), parent); + for (MenuRoleVO children : treeList) { + if (parent != children) { + //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 + if (id.equals(children.getPid())) { + parent.initChildren(); + if (0L == parent.getPid()) { + children.setTopMenu(parent.getPath()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + parent.getChildren().add(children); + } + } else if (id.equals(parent.getPid())) { + selfIdEqSelfParent.add(id); + } + + for (RoleMenu roleMenu : roleMenus) { + if (children.getId().equals(roleMenu.getMenuId())) { + children.setHasPermission(1); + } + } + } + } + } + + public static List buildUserTree(List treeList, List roleMenus) { + if (CollUtil.isEmpty(treeList)) { + return Collections.emptyList(); + } + //记录自己是自己的父节点的id集合 + List selfIdEqSelfParent = new ArrayList<>(); + + // 遍历两次 + foreachNodesCheckRole(treeList, selfIdEqSelfParent, roleMenus); + foreachNodesWithTopMenu(treeList); + + // 找出根节点集合 + List trees = new ArrayList<>(); + + List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); + for (MenuRoleVO baseNode : treeList) { + if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { + baseNode.setPid(null); + Boolean isUserMenu = checkPermisson(baseNode.getId(), roleMenus); + if (isUserMenu) { + baseNode.setTopMenu(baseNode.getName()); + checkRedirect(baseNode); + trees.add(baseNode); + } else { + if (baseNode.getSize() > 0) { + baseNode.setTopMenu(baseNode.getName()); + checkRedirect(baseNode); + trees.add(baseNode); + } + } + } + } + return trees; + } + + //判断角色权限用 不用父级 + private static void foreachNodesCheckRoleWithoutParent(List treeList, List selfIdEqSelfParent, List roleMenus) { + nodeMap = Maps.newConcurrentMap(); + for (MenuRoleVO parent : treeList) { + Serializable id = parent.getId(); + nodeMap.put(parent.getId(), parent); + for (MenuRoleVO children : treeList) { + if (parent != children) { + //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 + if (id.equals(children.getPid())) { + parent.initChildren(); + + if (!checkPermisson(children.getId(), roleMenus)) { + continue; + } + + if (0L == parent.getPid()) { + children.setTopMenu(parent.getName()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + parent.getChildren().add(children); + } + } else if (id.equals(parent.getPid())) { + selfIdEqSelfParent.add(id); + } + + for (RoleMenu roleMenu : roleMenus) { + if (children.getId().equals(roleMenu.getMenuId())) { + children.setHasPermission(1); + } + } + } + } + } + + //判断当前登录权限用 + private static void foreachNodesCheckRole(List treeList, List selfIdEqSelfParent, List roleMenus) { + nodeMap = Maps.newConcurrentMap(); + for (MenuRoleVO parent : treeList) { + Serializable id = parent.getId(); + nodeMap.put(parent.getId(), parent); + for (MenuRoleVO children : treeList) { + if (parent != children) { + //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 + if (id.equals(children.getPid())) { + parent.initChildren(); + + if (!checkPermisson(children.getId(), roleMenus)) { + continue; + } + + if (0L == parent.getPid()) { + children.setTopMenu(parent.getName()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + parent.getChildren().add(children); + } + } else if (id.equals(parent.getPid())) { + selfIdEqSelfParent.add(id); + } + } + + //1层 2层 再加一下 + for (MenuRoleVO children : treeList) { + if (parent != children) { + if (id.equals(children.getPid())) { + + if (parent.getChildren().contains(children) || + children.getSize() == 0) { + continue; + } + + if (0L == parent.getPid()) { + children.setTopMenu(parent.getName()); + children.setLevel(2); + } else { + children.setTopMenu(parent.getTopMenu()); + children.setLevel(parent.getLevel() + 1); + } + parent.getChildren().add(children); + } + } + } + } + } + + /** + * 判断角色是否有该菜单权限 + * + * @param roleId + * @param roleMenus + * @return + */ + private static Boolean checkPermisson(Long roleId, List roleMenus) { + Boolean isUserMenu = false; + for (RoleMenu roleMenu : roleMenus) { + if (roleId.equals(roleMenu.getMenuId())) { + isUserMenu = true; + break; + } + } + return isUserMenu; + } + + /** + * 动态判断redirect + * + * @param baseNode + */ + private static void checkRedirect(MenuRoleVO baseNode) { + checkMenuRedirect(baseNode, baseNode.getChildren()); + } + + private static Boolean checkMenuRedirect(MenuRoleVO baseNode, List menus) { + if (baseNode.getSize() > 0) { + for (MenuRoleVO menu : menus) { + if (menu.getPath().endsWith("Datav")) { + baseNode.setRedirect(menu.getComponent()); + return Boolean.TRUE; + } + + if (menu.getSize() == 0 && 0 == menu.getHidden()) { + baseNode.setRedirect(menu.getComponent()); + return Boolean.TRUE; + } + } + + //一轮没有合适的菜单 去三级菜单找 + for (MenuRoleVO menu : menus) { + if (menu.getSize() > 0) { + if (checkMenuRedirect(baseNode, menu.getChildren())) { + return Boolean.TRUE; + } + } + } + } + + return Boolean.FALSE; + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/BizUtils.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/BizUtils.java deleted file mode 100644 index 20cf2f1..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/BizUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.ningdatech.pmapi.common.utils; - -import cn.hutool.core.util.StrUtil; -import com.ningdatech.basic.util.StrPool; -import org.springframework.util.NumberUtils; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.function.Consumer; -import java.util.stream.Collectors; - -/** - *

- * BizUtils - *

- * - * @author WendyYang - * @since 17:32 2023/1/29 - */ -public class BizUtils { - - private BizUtils() { - - } - - public static List splitToNum(String str, Class aClass) { - if (StrUtil.isEmpty(str)) { - return Collections.emptyList(); - } - return Arrays.stream(str.split(StrPool.COMMA)) - .map(w -> NumberUtils.parseNumber(w, aClass)) - .collect(Collectors.toList()); - } - - public static List splitToLong(String str) { - return splitToNum(str, Long.class); - } - - - public static void notNull(T obj, Consumer consumer) { - if (obj != null) { - consumer.accept(obj); - } - } - - public static void notBlank(String str,Consumer consumer) { - if (StrUtil.isNotBlank(str)) { - consumer.accept(str); - } - } - -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/TreeUtil.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/TreeUtil.java deleted file mode 100644 index 1359135..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/utils/TreeUtil.java +++ /dev/null @@ -1,442 +0,0 @@ -package com.ningdatech.pmapi.common.utils; - - -import cn.hutool.core.collection.CollUtil; -import com.google.common.collect.Maps; -import com.ningdatech.basic.util.StrPool; -import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; -import com.ningdatech.pmapi.sys.entity.RoleMenu; -import com.ningdatech.pmapi.sys.entity.vo.MenuRoleVO; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.*; -import java.util.stream.Collectors; - -/** - * list列表 转换成tree列表 - * - * @author PoffyZhang - */ -public final class TreeUtil { - private TreeUtil() { - } - - private static Map nodeMap = Maps.newConcurrentMap(); - - /** - * 判断id是否为根节点 - * - * @param id - * @return - */ - public static boolean isRoot(Long id) { - return id == null || StrPool.DEF_PARENT_ID.equals(id); - } - - - public static String getTreePath(String parentTreePath, Long parentId) { - return StrPool.COMMA + parentId + parentTreePath; - } - - /** - * 构建Tree结构 - * - * @param treeList 待转换的集合 - * @return 树结构 - */ - public static > List buildTree(List treeList) { - if (CollUtil.isEmpty(treeList)) { - return treeList; - } - //记录自己是自己的父节点的id集合 - List selfIdEqSelfParent = new ArrayList<>(); - - // 遍历两次 - foreachNodes(treeList, selfIdEqSelfParent); - foreachNodesWithTopMenu(treeList); - - // 找出根节点集合 - List trees = new ArrayList<>(); - - List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); - for (E baseNode : treeList) { - if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { - baseNode.setPid(null); - baseNode.setTopMenu(baseNode.getName()); - trees.add(baseNode); - } - } - return trees; - } - - /** - * 构建Tree结构 - * - * @param treeList 待转换的集合 - * @param title 菜单名 - * @return 树结构 - */ - public static > List buildTree(List treeList, String title) { - if (CollUtil.isEmpty(treeList)) { - return treeList; - } - //记录自己是自己的父节点的id集合 - List selfIdEqSelfParent = new ArrayList<>(); - - // 遍历两次 - foreachNodes(treeList, selfIdEqSelfParent); - foreachNodesWithTopMenu(treeList); - - // 找出根节点集合 - List trees = new ArrayList<>(); - - List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); - for (E baseNode : treeList) { - if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { - baseNode.setPid(null); - baseNode.setTopMenu(baseNode.getName()); - trees.add(baseNode); - } - } -// checkTitle(trees,title); - return trees; - } - - private static > - void foreachNodes(List treeList, List selfIdEqSelfParent) { - nodeMap = Maps.newConcurrentMap(); - for (E parent : treeList) { - Serializable id = parent.getId(); - nodeMap.put(parent.getId(), parent); - for (E children : treeList) { - if (parent != children) { - //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 - if (id.equals(children.getPid())) { - parent.initChildren(); - if (0L == parent.getPid()) { - children.setTopMenu(parent.getName()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - parent.getChildren().add(children); - } - } else if (id.equals(parent.getPid())) { - selfIdEqSelfParent.add(id); - } - } - } - } - - private static > void foreachNodesWithTopMenu(List treeList) { - for (E parent : treeList) { - Serializable id = parent.getId(); - for (E children : treeList) { - if (parent != children) { - if (id.equals(children.getPid())) { - if (0L == parent.getPid()) { - children.setTopMenu(parent.getName()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - } - } - } - } - } - - private static > - void checkTitle(List trees, String title) { - if (StringUtils.isBlank(title)) { - return; - } - for (E tree : trees) { - //筛选 从顶级往下查 - //递归筛选 - checkTitleNode(tree, title, trees, trees); - } - } - - private static > void checkTitleNode(MenuTreeEntity node, String title, List parents, List tops) { - if (!node.getTitle().contains(title)) { - if (CollUtil.isEmpty(node.getChildren())) { - removeNode(parents, node, tops); - } else { - Iterator iterator = node.getChildren().iterator(); - while (iterator.hasNext()) { - checkTitleNode(iterator.next(), title, node.getChildren(), tops); - } - } - } else { - //匹配到了 - return; - } - } - - private static > - void removeNode(List parents, MenuTreeEntity node, List tops) { - parents.remove(node); - //如果该层节点都被删了 要删除父级 - if (Objects.nonNull(node.getPid())) { - MenuTreeEntity parent = nodeMap.get(node.getPid()); - if (Objects.nonNull(parent)) { - if (Objects.nonNull(parent.getPid())) { - MenuTreeEntity parentN = nodeMap.get(parent.getPid()); - removeNode(parentN.getChildren(), parent, tops); - } else { - tops.remove(parent); - } - } - } else { - tops.remove(node); - } - } - - public static List buildTree(List treeList, List roleMenus) { - if (CollUtil.isEmpty(treeList)) { - return treeList; - } - //记录自己是自己的父节点的id集合 - List selfIdEqSelfParent = new ArrayList<>(); - - // 遍历两次 - foreachNodesCheckRoleWithoutParent(treeList, selfIdEqSelfParent, roleMenus); - foreachNodesWithTopMenu(treeList); - - // 找出根节点集合 - List trees = new ArrayList<>(); - - List allIds = treeList.stream().map(MenuRoleVO::getId).collect(Collectors.toList()); - for (MenuRoleVO baseNode : treeList) { - if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { - baseNode.setPid(null); - for (RoleMenu roleMenu : roleMenus) { - if (baseNode.getId().equals(roleMenu.getMenuId()) && - 2 != baseNode.getHasPermission()) { - baseNode.setTopMenu(baseNode.getName()); - trees.add(baseNode); - } - } - } - } - return trees; - } - - private static void foreachNodesWithRole(List treeList, - List selfIdEqSelfParent, List roleMenus) { - nodeMap = Maps.newConcurrentMap(); - for (MenuRoleVO parent : treeList) { - Serializable id = parent.getId(); - nodeMap.put(parent.getId(), parent); - for (MenuRoleVO children : treeList) { - if (parent != children) { - //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 - if (id.equals(children.getPid())) { - parent.initChildren(); - if (0L == parent.getPid()) { - children.setTopMenu(parent.getPath()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - parent.getChildren().add(children); - } - } else if (id.equals(parent.getPid())) { - selfIdEqSelfParent.add(id); - } - - for (RoleMenu roleMenu : roleMenus) { - if (children.getId().equals(roleMenu.getMenuId())) { - children.setHasPermission(1); - } - } - } - } - } - - public static List buildUserTree(List treeList, List roleMenus) { - if (CollUtil.isEmpty(treeList)) { - return Collections.emptyList(); - } - //记录自己是自己的父节点的id集合 - List selfIdEqSelfParent = new ArrayList<>(); - - // 遍历两次 - foreachNodesCheckRole(treeList, selfIdEqSelfParent, roleMenus); - foreachNodesWithTopMenu(treeList); - - // 找出根节点集合 - List trees = new ArrayList<>(); - - List allIds = treeList.stream().map(node -> node.getId()).collect(Collectors.toList()); - for (MenuRoleVO baseNode : treeList) { - if (!allIds.contains(baseNode.getPid()) || selfIdEqSelfParent.contains(baseNode.getPid())) { - baseNode.setPid(null); - Boolean isUserMenu = checkPermisson(baseNode.getId(), roleMenus); - if (isUserMenu) { - baseNode.setTopMenu(baseNode.getName()); - checkRedirect(baseNode); - trees.add(baseNode); - } else { - if (baseNode.getSize() > 0) { - baseNode.setTopMenu(baseNode.getName()); - checkRedirect(baseNode); - trees.add(baseNode); - } - } - } - } - return trees; - } - - //判断角色权限用 不用父级 - private static void foreachNodesCheckRoleWithoutParent(List treeList, List selfIdEqSelfParent, List roleMenus) { - nodeMap = Maps.newConcurrentMap(); - for (MenuRoleVO parent : treeList) { - Serializable id = parent.getId(); - nodeMap.put(parent.getId(), parent); - for (MenuRoleVO children : treeList) { - if (parent != children) { - //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 - if (id.equals(children.getPid())) { - parent.initChildren(); - - if (!checkPermisson(children.getId(), roleMenus)) { - continue; - } - - if (0L == parent.getPid()) { - children.setTopMenu(parent.getName()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - parent.getChildren().add(children); - } - } else if (id.equals(parent.getPid())) { - selfIdEqSelfParent.add(id); - } - - for (RoleMenu roleMenu : roleMenus) { - if (children.getId().equals(roleMenu.getMenuId())) { - children.setHasPermission(1); - } - } - } - } - } - - //判断当前登录权限用 - private static void foreachNodesCheckRole(List treeList, List selfIdEqSelfParent, List roleMenus) { - nodeMap = Maps.newConcurrentMap(); - for (MenuRoleVO parent : treeList) { - Serializable id = parent.getId(); - nodeMap.put(parent.getId(), parent); - for (MenuRoleVO children : treeList) { - if (parent != children) { - //parent != children 这个来判断自己的孩子不允许是自己,因为有时候,根节点的parent会被设置成为自己 - if (id.equals(children.getPid())) { - parent.initChildren(); - - if (!checkPermisson(children.getId(), roleMenus)) { - continue; - } - - if (0L == parent.getPid()) { - children.setTopMenu(parent.getName()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - parent.getChildren().add(children); - } - } else if (id.equals(parent.getPid())) { - selfIdEqSelfParent.add(id); - } - } - - //1层 2层 再加一下 - for (MenuRoleVO children : treeList) { - if (parent != children) { - if (id.equals(children.getPid())) { - - if (parent.getChildren().contains(children) || - children.getSize() == 0) { - continue; - } - - if (0L == parent.getPid()) { - children.setTopMenu(parent.getName()); - children.setLevel(2); - } else { - children.setTopMenu(parent.getTopMenu()); - children.setLevel(parent.getLevel() + 1); - } - parent.getChildren().add(children); - } - } - } - } - } - - /** - * 判断角色是否有该菜单权限 - * - * @param roleId - * @param roleMenus - * @return - */ - private static Boolean checkPermisson(Long roleId, List roleMenus) { - Boolean isUserMenu = false; - for (RoleMenu roleMenu : roleMenus) { - if (roleId.equals(roleMenu.getMenuId())) { - isUserMenu = true; - break; - } - } - return isUserMenu; - } - - /** - * 动态判断redirect - * - * @param baseNode - */ - private static void checkRedirect(MenuRoleVO baseNode) { - checkMenuRedirect(baseNode, baseNode.getChildren()); - } - - private static Boolean checkMenuRedirect(MenuRoleVO baseNode, List menus) { - if (baseNode.getSize() > 0) { - for (MenuRoleVO menu : menus) { - if (menu.getPath().endsWith("Datav")) { - baseNode.setRedirect(menu.getComponent()); - return Boolean.TRUE; - } - - if (menu.getSize() == 0 && 0 == menu.getHidden()) { - baseNode.setRedirect(menu.getComponent()); - return Boolean.TRUE; - } - } - - //一轮没有合适的菜单 去三级菜单找 - for (MenuRoleVO menu : menus) { - if (menu.getSize() > 0) { - if (checkMenuRedirect(baseNode, menu.getChildren())) { - return Boolean.TRUE; - } - } - } - } - - return Boolean.FALSE; - } -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java index 7d7a76b..60358f1 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ningdatech.basic.model.PageVo; -import com.ningdatech.pmapi.common.enums.ProjectProessStageEnum; +import com.ningdatech.pmapi.common.enumeration.ProjectProessStageEnum; import com.ningdatech.pmapi.projectdeclared.entity.ProjectDraft; import com.ningdatech.pmapi.projectdeclared.entity.dto.DeclaredProjectDto; import com.ningdatech.pmapi.projectdeclared.entity.dto.DeclaredProjectListParamDto; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java index 171a79e..500f879 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java @@ -3,13 +3,14 @@ package com.ningdatech.pmapi.projectlib.controller; import com.ningdatech.basic.model.PageVo; import com.ningdatech.pmapi.projectlib.manage.AnnualPlanLibManage; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; +import com.ningdatech.pmapi.projectlib.model.req.StartProjectDeclareReq; import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; /** *

@@ -33,4 +34,10 @@ public class AnnualPlanController { return annualPlanLibManage.annulPlanLibList(req); } + @PostMapping("/startProjectDeclared") + @ApiOperation("开启项目申报") + public void startProjectDeclared(@RequestBody @Valid StartProjectDeclareReq req) { + annualPlanLibManage.startProjectDeclared(req); + } + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java index ebb0435..1e3b004 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java @@ -2,16 +2,21 @@ package com.ningdatech.pmapi.projectlib.manage; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ningdatech.basic.exception.BizException; import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.util.CollUtils; +import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; +import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.helper.ProjectHelper; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; +import com.ningdatech.pmapi.projectlib.model.req.StartProjectDeclareReq; import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO; import com.ningdatech.pmapi.projectlib.service.IProjectService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; @@ -32,6 +37,7 @@ import static com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum.*; public class AnnualPlanLibManage { private final IProjectService projectService; + private final StateMachineUtils stateMachine; /** * 年度计划查询状态 @@ -57,6 +63,7 @@ public class AnnualPlanLibManage { public PageVo annulPlanLibList(ProjectListReq req) { LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + query.eq(Project::getIsTemporaryAugment, 0); query.orderByDesc(Project::getAnnualPlanAddTime); query.in(Project::getStatus, CollUtils.fieldList(ANNUAL_PLAN_LIST_STATUS, ProjectStatusEnum::getCode)); Page page = projectService.page(req.page(), query); @@ -82,4 +89,21 @@ public class AnnualPlanLibManage { return result; } + @Transactional(rollbackFor = Exception.class) + public void startProjectDeclared(StartProjectDeclareReq req) { + List projects = projectService.listByIds(req.getProjectIds()); + projects.forEach(w -> { + if (!IN_THE_ANNUAL_PLAN.eq(w.getStatus())) { + throw BizException.wrap("开启方案申报失败"); + } + }); + projects.forEach(project -> { + try { + stateMachine.execute(project, ProjectStatusChangeEvent.ANNUAL_PLAN_PROJECT_OPEN_PLAN_DECLARE); + } catch (Exception e) { + throw new BizException("开启方案申报失败"); + } + }); + } + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/StartProjectDeclareReq.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/StartProjectDeclareReq.java new file mode 100644 index 0000000..0bcb177 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/StartProjectDeclareReq.java @@ -0,0 +1,25 @@ +package com.ningdatech.pmapi.projectlib.model.req; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + *

+ * StartProjectDeclareReq + *

+ * + * @author WendyYang + * @since 17:47 2023/2/11 + */ +@Data +public class StartProjectDeclareReq { + + @ApiModelProperty("项目ID") + @NotEmpty(message = "项目ID不能为空") + private List projectIds; + + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java index 0cdc8fc..a34a9c2 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java @@ -7,7 +7,7 @@ import com.ningdatech.basic.auth.AbstractLoginUserUtil; import com.ningdatech.basic.util.CollUtils; import com.ningdatech.log.annotation.WebLog; import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; -import com.ningdatech.pmapi.common.utils.TreeUtil; +import com.ningdatech.pmapi.common.util.TreeUtil; import com.ningdatech.pmapi.sys.entity.Menu; import com.ningdatech.pmapi.sys.entity.dto.MenuQueryDTO; import com.ningdatech.pmapi.sys.entity.dto.MenuSaveDTO; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/MenuManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/MenuManage.java index 3307485..e6dabd7 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/MenuManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/MenuManage.java @@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ningdatech.basic.util.CollUtils; -import com.ningdatech.pmapi.common.utils.TreeUtil; +import com.ningdatech.pmapi.common.util.TreeUtil; import com.ningdatech.pmapi.sys.entity.Menu; import com.ningdatech.pmapi.sys.entity.RoleMenu; import com.ningdatech.pmapi.sys.entity.vo.MenuRoleVO; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java index bf45d80..3c48244 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java @@ -10,7 +10,7 @@ import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.util.CollUtils; import com.ningdatech.file.entity.vo.result.AttachFileVo; import com.ningdatech.file.service.FileService; -import com.ningdatech.pmapi.common.utils.BizUtils; +import com.ningdatech.pmapi.common.util.BizUtils; import com.ningdatech.pmapi.sys.entity.Notice; import com.ningdatech.pmapi.sys.entity.req.NoticeListReq; import com.ningdatech.pmapi.sys.entity.req.NoticeSaveReq; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java index 2c3c2aa..2a8baab 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java @@ -7,8 +7,6 @@ import javax.validation.Valid; import com.ningdatech.pmapi.common.util.ExcelDownUtil; import com.ningdatech.pmapi.todocenter.bean.vo.ProcessProgressDetailVo; import com.ningdatech.pmapi.todocenter.model.dto.req.ReqProcessHandlerDTO; -import com.wflow.utils.R; -import com.wflow.workflow.bean.vo.ProcessHandlerParamsVo; import org.springframework.web.bind.annotation.*; import com.ningdatech.basic.model.ApiResponse; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/IsAppendProjectEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/IsAppendProjectEnum.java new file mode 100644 index 0000000..d0d5ba1 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/IsAppendProjectEnum.java @@ -0,0 +1,70 @@ +package com.ningdatech.pmapi.todocenter.enumeration; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; + +import java.util.Objects; + +/** + * 是否增补项目枚举 + * + * @author CMM + */ +@Getter +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "IsAppendProjectEnum", description = "是否增补项目-枚举") +public enum IsAppendProjectEnum { + /** + * 非增补项目 + */ + NOT_APPEND_PROJECT(0, "非增补项目"), + + /** + * 增补项目 + */ + APPEND_PROJECT(1, "增补项目"); + + + private Integer code; + private String desc; + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public static String getDescByCode(Integer code) { + if (Objects.isNull(code)) { + return StringUtils.EMPTY; + } + for (IsAppendProjectEnum t : IsAppendProjectEnum.values()) { + if (code.equals(t.getCode())) { + return t.desc; + } + } + return StringUtils.EMPTY; + } + + public static IsAppendProjectEnum getEnumByValue(Integer code) { + if (Objects.isNull(code)) { + return null; + } + for (IsAppendProjectEnum t : IsAppendProjectEnum.values()) { + if (code.equals(t.getCode())) { + return t; + } + } + return null; + } + + public boolean eq(String val) { + return this.name().equals(val); + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/ProcessStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/ProcessStatusEnum.java new file mode 100644 index 0000000..fd07266 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enumeration/ProcessStatusEnum.java @@ -0,0 +1,97 @@ +package com.ningdatech.pmapi.todocenter.enumeration; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; + +import java.util.Objects; + +/** + * 待办中心-流程状态枚举 + * + * @author CMM + */ +@Getter +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "ProcessStatusEnum", description = "流程状态-枚举") +public enum ProcessStatusEnum { + /** + * 审核中 + */ + + UNDER_REVIEW(1, "审核中"), + + /** + * 被退回 + */ + BE_BACKED(2, "被退回"), + + /** + * 被驳回 + */ + BE_REJECTED(3, "被驳回"), + + /** + * 审核通过 + */ + APPROVED(4, "审核通过"), + /** + * 被撤回 + */ + WITHDRAW(5, "被撤回"); + + + private Integer code; + private String desc; + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public static String getDescByCode(Integer code) { + if (Objects.isNull(code)) { + return StringUtils.EMPTY; + } + for (ProcessStatusEnum t : ProcessStatusEnum.values()) { + if (code.equals(t.getCode())) { + return t.desc; + } + } + return StringUtils.EMPTY; + } + + public static Integer getCodeByDesc(String desc) { + if (Objects.isNull(desc)) { + return null; + } + for (ProcessStatusEnum t : ProcessStatusEnum.values()) { + if (desc.equals(t.getDesc())) { + return t.code; + } + } + return null; + } + + public static ProcessStatusEnum getEnumByValue(Integer code) { + if (Objects.isNull(code)) { + return null; + } + for (ProcessStatusEnum t : ProcessStatusEnum.values()) { + if (code.equals(t.getCode())) { + return t; + } + } + return null; + } + + public boolean eq(String val) { + return this.name().equals(val); + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/IsAppendProjectEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/IsAppendProjectEnum.java deleted file mode 100644 index a744804..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/IsAppendProjectEnum.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.ningdatech.pmapi.todocenter.enums; - -import java.util.Objects; - -import org.apache.commons.lang3.StringUtils; - -import io.swagger.annotations.ApiModel; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; - -/** - * 是否增补项目枚举 - * @author CMM - */ -@Getter -@AllArgsConstructor -@NoArgsConstructor -@ApiModel(value = "IsAppendProjectEnum", description = "是否增补项目-枚举") -public enum IsAppendProjectEnum { - /** - * 非增补项目 - */ - NOT_APPEND_PROJECT(0, "非增补项目"), - - /** - *增补项目 - */ - APPEND_PROJECT(1, "增补项目"); - - - private Integer code; - private String desc; - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public static String getDescByCode(Integer code) { - if(Objects.isNull(code)){ - return StringUtils.EMPTY; - } - for (IsAppendProjectEnum t : IsAppendProjectEnum.values()) { - if (code.equals(t.getCode())) { - return t.desc; - } - } - return StringUtils.EMPTY; - } - - public static IsAppendProjectEnum getEnumByValue(Integer code) { - if(Objects.isNull(code)){ - return null; - } - for (IsAppendProjectEnum t : IsAppendProjectEnum.values()) { - if (code.equals(t.getCode())) { - return t; - } - } - return null; - } - - public boolean eq(String val) { - return this.name().equals(val); - } -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/ProcessStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/ProcessStatusEnum.java deleted file mode 100644 index 91d311d..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/enums/ProcessStatusEnum.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.ningdatech.pmapi.todocenter.enums; - -import java.util.Objects; - -import org.apache.commons.lang3.StringUtils; - -import io.swagger.annotations.ApiModel; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; - -/** - * 待办中心-流程状态枚举 - * @author CMM - */ -@Getter -@AllArgsConstructor -@NoArgsConstructor -@ApiModel(value = "ProcessStatusEnum", description = "流程状态-枚举") -public enum ProcessStatusEnum { - /** - * 审核中 - */ - - UNDER_REVIEW(1, "审核中"), - - /** - * 被退回 - */ - BE_BACKED(2, "被退回"), - - /** - * 被驳回 - */ - BE_REJECTED(3,"被驳回"), - - /** - * 审核通过 - */ - APPROVED(4,"审核通过"), - /** - * 被撤回 - */ - WITHDRAW(5,"被撤回"); - - - private Integer code; - private String desc; - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public static String getDescByCode(Integer code) { - if(Objects.isNull(code)){ - return StringUtils.EMPTY; - } - for (ProcessStatusEnum t : ProcessStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t.desc; - } - } - return StringUtils.EMPTY; - } - - public static Integer getCodeByDesc(String desc) { - if(Objects.isNull(desc)){ - return null; - } - for (ProcessStatusEnum t : ProcessStatusEnum.values()) { - if (desc.equals(t.getCode())) { - return t.code; - } - } - return null; - } - - public static ProcessStatusEnum getEnumByValue(Integer code) { - if(Objects.isNull(code)){ - return null; - } - for (ProcessStatusEnum t : ProcessStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t; - } - } - return null; - } - - public boolean eq(String val) { - return this.name().equals(val); - } -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java index c7b1627..a1b2ac6 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java @@ -33,8 +33,8 @@ import com.ningdatech.pmapi.todocenter.bean.entity.ProgressNode; import com.ningdatech.pmapi.todocenter.bean.vo.ProcessProgressDetailVo; import com.ningdatech.pmapi.todocenter.bean.vo.ProgressNodeAuditInfoVo; import com.ningdatech.pmapi.todocenter.constant.HisProInsEndActId; -import com.ningdatech.pmapi.todocenter.enums.IsAppendProjectEnum; -import com.ningdatech.pmapi.todocenter.enums.ProcessStatusEnum; +import com.ningdatech.pmapi.todocenter.enumeration.IsAppendProjectEnum; +import com.ningdatech.pmapi.todocenter.enumeration.ProcessStatusEnum; import com.ningdatech.pmapi.todocenter.extension.cmd.BackToHisApprovalNodeCmd; import com.ningdatech.pmapi.todocenter.extension.cmd.SaveCommentCmd; import com.ningdatech.pmapi.todocenter.model.dto.req.ReqProcessHandlerDTO;