瀏覽代碼

作者:张哲
时间:2023/05/11
类型:优化
描述:里程碑(1) 审核流程修改

zizg 2 年之前
父節點
當前提交
5643d952e1

+ 26 - 3
src/main/java/com/redxun/knowledge/controller/KnowledgeApprovalNodeController.java

@@ -14,11 +14,13 @@ import com.redxun.common.tool.StringUtils;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.KnowledgeApprovalNode;
 import com.redxun.knowledge.entity.dao.KnowledgeApprovalNodeFlower;
+import com.redxun.knowledge.entity.dao.KnowledgeCategory;
 import com.redxun.knowledge.entity.dto.KnowledgeApprovalNodeDto;
 import com.redxun.knowledge.entity.dto.KnowledgeApprovalNodeFlowerDto;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeFlowerVo;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeVo;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
+import com.redxun.knowledge.mapper.KnowledgeCategoryMapper;
 import com.redxun.knowledge.service.KnowledgeApprovalNodeServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
@@ -27,12 +29,12 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -45,6 +47,9 @@ public class KnowledgeApprovalNodeController extends BaseController<KnowledgeApp
     @Autowired
     KnowledgeApprovalNodeServiceImpl knowledgeApprovalNodeService;
 
+    @Autowired
+    private KnowledgeCategoryMapper knowledgeCategoryMapper;
+
     @Override
     public BaseService getBaseService() {
         return knowledgeApprovalNodeService;
@@ -108,10 +113,28 @@ public class KnowledgeApprovalNodeController extends BaseController<KnowledgeApp
         if (validResult.hasErrors()) {
             return jsonResult.setMessage("流程名称不能为空");
         }
+
+        //返回到前端
+        Map<String,Object> result = new HashMap<>();
+        if (!CollectionUtils.isEmpty(knowledgeApprovalNodeFlowerDto.getCategoryId())){
+            List<String> categoryName = new ArrayList<>();
+            knowledgeApprovalNodeFlowerDto.getCategoryId().forEach(h -> {
+                KnowledgeCategory knowledgeCategory = knowledgeCategoryMapper.selectById(h);
+                if (!Objects.isNull(knowledgeCategory)){
+                    categoryName.add(knowledgeCategory.getName());
+                }
+            });
+            result.put("category",knowledgeApprovalNodeFlowerDto.getCategoryId());
+            result.put("categoryName",categoryName);
+
+        }
+
         try {
-            Map<String, Object> result = knowledgeApprovalNodeService.insertApprovalNodes(knowledgeApprovalNodeFlowerDto);
+            String pkId = knowledgeApprovalNodeService.insertApprovalNodes(knowledgeApprovalNodeFlowerDto);
+            result.put("pkId",pkId);
             jsonResult.setData(result);
         } catch (Exception e) {
+            jsonResult.setData(result);
             jsonResult.setMessage(e.getMessage());
             jsonResult.setSuccess(false);
         }

+ 3 - 0
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprovalNode.java

@@ -55,6 +55,9 @@ public class KnowledgeApprovalNode extends BaseExtEntity<java.lang.String> {
     @TableField(value = "FLOWER_ID")
     private String flowerId;
 
+    @TableField(value = "SORT")
+    private Integer sort;
+
     @Override
     public String getPkId() {
         return pkId;

+ 14 - 22
src/main/java/com/redxun/knowledge/service/KnowledgeApprovalNodeServiceImpl.java

@@ -30,7 +30,7 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.stream.Collectors;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * [业务--知识审批节点表]业务服务类
@@ -92,7 +92,7 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
      * @param knowledgeApprovalNodeFlowerDto
      */
     @Transactional(rollbackFor = Exception.class)
-    public Map<String,Object> insertApprovalNodes(KnowledgeApprovalNodeFlowerDto knowledgeApprovalNodeFlowerDto) throws Exception{
+    public String insertApprovalNodes(KnowledgeApprovalNodeFlowerDto knowledgeApprovalNodeFlowerDto) throws Exception{
         //修改(清除原本数据)
         if (StringUtils.isNotEmpty(knowledgeApprovalNodeFlowerDto.getPkId())){
             knowledgeApprovalNodeMapper.deleteByFlowerId(knowledgeApprovalNodeFlowerDto.getPkId());
@@ -101,11 +101,15 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
 
         //判断输入的分类是否存在流程
         knowledgeApprovalNodeFlowerDto.getCategoryId().forEach(e -> {
-            List<KnowledgeApprovalNodeCategory> knowledgeApprovalNodeCategoryList = knowledgeApprovalNodeCategoryMapper.
-                    selectList(new LambdaQueryWrapper<KnowledgeApprovalNodeCategory>().eq(KnowledgeApprovalNodeCategory::getCategoryId, e));
-            if (!CollectionUtils.isEmpty(knowledgeApprovalNodeCategoryList)){
-                throw new RuntimeException("添加失败,关联的分类已有流程");
-
+            KnowledgeApprovalNodeCategory knowledgeApprovalNodeCategory = knowledgeApprovalNodeCategoryMapper.
+                    selectOne(new LambdaQueryWrapper<KnowledgeApprovalNodeCategory>().eq(KnowledgeApprovalNodeCategory::getCategoryId, e));
+            if (!Objects.isNull(knowledgeApprovalNodeCategory)){
+                KnowledgeCategory knowledgeCategory = knowledgeCategoryMapper.selectById(knowledgeApprovalNodeCategory.getCategoryId());
+                if (!Objects.isNull(knowledgeCategory)){
+                    throw new RuntimeException("添加失败,关联的分类" +knowledgeCategory.getName() + "已有流程");
+                } else {
+                    throw new RuntimeException("添加失败,关联的分类不存在");
+                }
             }
         });
 
@@ -139,28 +143,16 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
         //关联节点
         List<KnowledgeApprovalNodeDto> knowledgeApprovalNodes = knowledgeApprovalNodeFlowerDto.getKnowledgeApprovalNode();
         if (!CollectionUtils.isEmpty(knowledgeApprovalNodes)) {
+            AtomicInteger sort = new AtomicInteger(1);
             knowledgeApprovalNodes.forEach(e -> {
                 KnowledgeApprovalNode knowledgeApprovalNode = new KnowledgeApprovalNode();
                 BeanUtils.copyProperties(e, knowledgeApprovalNode);
                 knowledgeApprovalNode.setFlowerId(knowledgeApprovalNodeFlower.getPkId());
+                knowledgeApprovalNode.setSort(sort.getAndIncrement());
                 knowledgeApprovalNodeMapper.insert(knowledgeApprovalNode);
             });
         }
-        //返回到前端
-        Map<String,Object> result = new HashMap<>();
-        if (!CollectionUtils.isEmpty(knowledgeApprovalNodeFlowerDto.getCategoryId())){
-            List<String> categoryName = new ArrayList<>();
-            knowledgeApprovalNodeFlowerDto.getCategoryId().forEach(h -> {
-                KnowledgeCategory knowledgeCategory = knowledgeCategoryMapper.selectById(h);
-                if (!Objects.isNull(knowledgeCategory)){
-                    categoryName.add(knowledgeCategory.getName());
-                }
-            });
-            result.put("category",knowledgeApprovalNodeFlowerDto.getCategoryId());
-            result.put("categoryName",categoryName);
-
-        }
-        return result;
+        return knowledgeApprovalNodeFlower.getPkId();
     }
 
     /**

+ 4 - 2
src/main/java/com/redxun/knowledge/service/KnowledgeApproveServiceImpl.java

@@ -121,8 +121,10 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             }
         }
         // 放入知识分类信息
-        List<KnowledgeApprovalListVo> collect = knowledgeApprovalListVoList.stream().
+        List<KnowledgeApprovalListVo> collectList = knowledgeApprovalListVoList.stream().
                 sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
+        Page pages = PageListUtils.getPages(filter.getPage().getCurrent(), filter.getPage().getSize(), collectList);
+        List<KnowledgeApprovalListVo> collect = pages.getRecords();
         collect.forEach(e -> {
             String categoryId = e.getCategoryId();
             KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(categoryId);
@@ -152,7 +154,7 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
         long count = collect.stream().filter(e -> e.getIsAudit() == 0).count();
         log.info("该用户可审核记录 -> {}", count);
         // 重新组装分页数据
-        Page pages = PageListUtils.getPages(filter.getPage().getCurrent(), filter.getPage().getSize(), collect);
+       // Page pages = PageListUtils.getPages(filter.getPage().getCurrent(), filter.getPage().getSize(), collect);
         return pages;
     }
 

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

@@ -621,6 +621,14 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             //是草稿,直接修改数据结束
             if (entity.getIsDraft() != null && entity.getIsDraft() == 0){
                 entity.setApprovalStatus(6);
+                IUser users = ContextUtil.getCurrentUser();
+                entity.setCreateDepId(users.getDeptId());
+                entity.setTenantId(users.getTenantId());
+                entity.setCompanyId(users.getCompanyId());
+                entity.setCreateBy(users.getUserId());
+                entity.setCreateTime(new Date());
+                entity.setUpdateBy(users.getUserId());
+                entity.setUpdateTime(new Date());
                 return this.getRepository().updateById(entity);
             }
             //知识被驳回了,重新修改进行审核(批次加1)

+ 2 - 2
src/main/resources/mapper/knowledge/KnowledgeApprovalNodeFlowerMapper.xml

@@ -59,7 +59,7 @@
                            on flower.PK_ID = node.FLOWER_ID and node.IS_DEL = 0
                  left join KM_KNOWLEDGE_APPROVAL_NODE_CATEGORY category on flower.PK_ID = category.FLOWER_ID and category.IS_DEL = 0
        where flower.IS_DEL = 0
-       order by flower.CREATE_TIME_,node.IS_FINAL,node.CREATE_TIME_
+       order by flower.CREATE_TIME_,node.IS_FINAL,node.sort
     </select>
 
     <select id="findAllNodesByCategoryId" resultType="com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeVo">
@@ -79,7 +79,7 @@
                 and category.CATEGORY_ID = #{categoryId}
             </if>
         </where>
-        order by isFinal,node.CREATE_TIME_
+        order by isFinal,node.sort
     </select>
 
 </mapper>

+ 2 - 1
src/main/resources/mapper/knowledge/KnowledgeApprovalNodeMapper.xml

@@ -16,11 +16,12 @@
         <result property="createTime" column="CREATE_TIME_" jdbcType="DATE"/>
         <result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
         <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
+        <result property="sort" column="sort" jdbcType="INTEGER"/>
     </resultMap>
 
     <sql id="COLUMNS">
         PK_ID,NAME,APPROVER_ID,APPROVER_NAME,IS_FINAL,IS_DEL,COMPANY_ID_,
-        CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
+        CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,SORT
     </sql>