Sfoglia il codice sorgente

作者:张哲
时间:2023/05/06
类型:开发
描述:里程碑(1) 新增&修改知识变更

zizg 2 anni fa
parent
commit
845fb04381

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeApprovalNodeDto.java

@@ -13,6 +13,7 @@ package com.redxun.knowledge.entity.dto;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 
@@ -27,6 +28,7 @@ public class KnowledgeApprovalNodeDto {
     //审批人名称;可以是人员或者部门名称
     private String approverName;
     //是否为最终节点
+    @NotNull(message = "请选择是否是最终节点")
     private Integer isFinal;
 
 }

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalNodeVo.java

@@ -20,6 +20,8 @@ public class KnowledgeApprovalNodeVo implements Serializable {
 
     private String name;
 
+    private String approverId;
+
     private String approverName;
 
     private Integer isFinal;

+ 32 - 8
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -25,10 +25,7 @@ import com.redxun.knowledge.common.MessageService;
 import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.*;
 import com.redxun.knowledge.entity.dto.KnowledgeDto;
-import com.redxun.knowledge.entity.vo.KnowledgeApprovalListVo;
-import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
-import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
-import com.redxun.knowledge.entity.vo.KnowledgeVo;
+import com.redxun.knowledge.entity.vo.*;
 import com.redxun.knowledge.map.entity.dao.MapContent;
 import com.redxun.knowledge.map.mapper.MapContentMapper;
 import com.redxun.knowledge.mapper.*;
@@ -96,6 +93,9 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     @Autowired
     private AlbumCatalogueKnowledgeMapper albumCatalogueKnowledgeMapper;
 
+    @Autowired
+    private KnowledgeApprovalNodeServiceImpl knowledgeApprovalNodeService;
+
 
     @Override
     public BaseDao<Knowledge> getRepository() {
@@ -151,9 +151,9 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
 
             // 从知识审批节点表拉取审批节点(不是草稿则拉取)
             if ("1".equals(knowledgeDto.getIsDraft())) {
-                List<KnowledgeApprovalNode> approvalVoList = knowledgeApprovalNodeMapper.selectList(new QueryWrapper<KnowledgeApprovalNode>().eq("IS_DEL", 0).orderByAsc("IS_FINAL", "CREATE_TIME_"));
+                List<KnowledgeApprovalNodeVo> approvalVoList = getKnowledgeApprovalNode(knowledgeDto.getCategoryId());
                 if (ObjectUtils.isNotEmpty(approvalVoList)) {
-                    KnowledgeApprovalNode node;
+                    KnowledgeApprovalNodeVo node;
                     for (int index = 0; index < approvalVoList.size(); index++) {
                         node = approvalVoList.get(index);
                         if (node != null) {
@@ -182,6 +182,30 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         return "";
     }
 
+    /**
+     * 拉取审核流程
+     * @param category
+     * @return
+     */
+    private List<KnowledgeApprovalNodeVo> getKnowledgeApprovalNode(String category){
+        List<KnowledgeApprovalNodeVo> knowledgeApprovalNodeVoList = knowledgeApprovalNodeService.findAllNodesByCategoryId(category);
+        //查询其上级是否有审核流程
+        while (true) {
+            KnowledgeCategory knowledgeCategory = knowledgeCategoryMapper.selectById(category);
+            if ("0".equals(knowledgeCategory.getParent())) {
+                break;
+            }
+            KnowledgeCategory knowledgeCategoryParent = knowledgeCategoryMapper.
+                    selectOne(new LambdaQueryWrapper<KnowledgeCategory>().eq(KnowledgeCategory::getPkId, knowledgeCategory.getParent()));
+            knowledgeApprovalNodeVoList = knowledgeApprovalNodeService.findAllNodesByCategoryId(knowledgeCategoryParent.getPkId());
+        }
+        //该分类没有审核流程,使用默认流程
+        if (CollectionUtils.isEmpty(knowledgeApprovalNodeVoList)){
+            knowledgeApprovalNodeVoList = knowledgeApprovalNodeService.findAllNodesByCategoryId(null);
+        }
+        return knowledgeApprovalNodeVoList;
+    }
+
     /**
      * 数据回显
      *
@@ -602,9 +626,9 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             //删除原有的审批节点
             knowledgeApproveMapper.deleteByKnowledgeId(entity.getPkId());
             //重新拉取审核节点
-            List<KnowledgeApprovalNode> approvalVoList = knowledgeApprovalNodeMapper.selectList(new QueryWrapper<KnowledgeApprovalNode>().eq("IS_DEL", 0).orderByAsc("IS_FINAL", "CREATE_TIME_"));
+            List<KnowledgeApprovalNodeVo> approvalVoList = getKnowledgeApprovalNode(entity.getCategoryId());
             if (ObjectUtils.isNotEmpty(approvalVoList)) {
-                KnowledgeApprovalNode node;
+                KnowledgeApprovalNodeVo node;
                 for (int index = 0; index < approvalVoList.size(); index++) {
                     node = approvalVoList.get(index);
                     if (node != null) {

+ 3 - 1
src/main/resources/mapper/knowledge/KnowledgeApprovalNodeFlowerMapper.xml

@@ -64,7 +64,8 @@
                node.PK_ID pkId,
                node.NAME    name,
                node.APPROVER_NAME approverName,
-               node.IS_FINAL isFinal
+               node.IS_FINAL isFinal,
+               node.APPROVER_ID approverId
         from KM_KNOWLEDGE_APPROVAL_NODE_FLOWER flower
                  left join KM_KNOWLEDGE_APPROVAL_NODE node
                            on flower.PK_ID = node.FLOWER_ID and node.IS_DEL = 0
@@ -75,6 +76,7 @@
                 and category.CATEGORY_ID = #{categoryId}
             </if>
         </where>
+        order by isFinal,node.CREATE_TIME_
     </select>
 
 </mapper>