Forráskód Böngészése

作者:张哲
时间:2022/12/5
类型:开发
描述:知识审核列表

ZizgZh 2 éve
szülő
commit
08ebfd4fbf

+ 39 - 11
src/main/java/com/redxun/knowledge/controller/KnowledgeApproveController.java

@@ -1,19 +1,27 @@
 
 package com.redxun.knowledge.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.redxun.common.base.entity.JsonPageResult;
 import com.redxun.common.base.entity.JsonResult;
+import com.redxun.common.base.entity.QueryData;
+import com.redxun.common.base.search.QueryFilter;
+import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.tool.StringUtils;
+import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.KnowledgeApprove;
 import com.redxun.knowledge.service.KnowledgeApproveServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import java.util.Arrays;
 import java.util.List;
 
@@ -21,22 +29,42 @@ import java.util.List;
 @RestController
 @RequestMapping("/api-knowledge/knowledge/knowledgeApprove")
 @Api(tags = "业务--知识审批表")
-@ClassDefine(title = "业务--知识审批表",alias = "KnowledgeApproveController",path = "/knowledge/knowledgeApprove",packages = "",packageName = "子系统名称")
+@ClassDefine(title = "业务--知识审批表", alias = "KnowledgeApproveController", path = "/knowledge/knowledgeApprove", packages = "", packageName = "子系统名称")
 public class KnowledgeApproveController extends BaseController<KnowledgeApprove> {
 
-@Autowired
-KnowledgeApproveServiceImpl knowledgeApproveService;
+    @Autowired
+    KnowledgeApproveServiceImpl knowledgeApproveService;
 
 
-@Override
-public BaseService getBaseService() {
-return knowledgeApproveService;
-}
+    @Override
+    public BaseService getBaseService() {
+        return knowledgeApproveService;
+    }
+
+    @Override
+    public String getComment() {
+        return "业务--知识审批表";
+    }
+
+    @ApiOperation(value = "审核管理列表列表(分页后台)")
+    @ApiImplicitParam(name = "queryData", value = "查询条件")
+    @PostMapping("findAllKnowledgeApprove")
+    public JsonPageResult findAllKnowledgeApprove(@RequestBody QueryData queryData) {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            IPage page = knowledgeApproveService.findAllKnowledgeApprove(filter);
+            this.handlePage(page);
+            jsonResult.setPageData(page);
+        } catch (Exception e) {
+            jsonResult.setSuccess(false);
+            this.logger.error(ExceptionUtil.getExceptionMessage(e));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
+        }
+        return jsonResult;
+    }
+
 
-@Override
-public String getComment() {
-return "业务--知识审批表";
-}
 
 }
 

+ 49 - 3
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalListVo.java

@@ -1,6 +1,9 @@
 package com.redxun.knowledge.entity.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -11,7 +14,25 @@ import java.util.Date;
 @Data
 public class KnowledgeApprovalListVo {
 
-    // 节点审核时间
+    //主键
+    private String pkId;
+
+    //知识ID;对应知识表主键ID
+    private String knowledgerId;
+
+    //知识标题
+    private String titles;
+
+    //知识类型;1-文档知识 2-维基知识
+    private Integer type;
+
+    //知识分类ID;对应知识分类表ID
+    private String categoryId;
+
+    //作者;作者名称
+    private String author;
+
+    //操作时间
     @DateTimeFormat(
             pattern = "yyyy-MM-dd HH:mm:ss"
     )
@@ -22,8 +43,33 @@ public class KnowledgeApprovalListVo {
             pattern = "yyyy-MM-dd HH:mm:ss",
             timezone = "GMT+8"
     )
-    private Date approvalTime;
+    private Date createTime;
 
-    private KnowledgeVo knowledgeVo;
+    //审批状态;1-待节点审核 2-节点驳回 3-待最终审核 4-最终驳回 5-最终通过
+    private Integer approvalStatus;
 
+    // 审核人
+    private String createBy;
+
+    //最近一次审核时间
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date ApprovalTime;
+
+    //审批结论;0-不通过 1-通过
+    private Integer result;
+
+    //审批人名称
+    private String approverName;
+
+    private KnowledgeCategoryAdminVo knowledgeCategoryAdminVo;
 }
+

+ 8 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeApproveMapper.java

@@ -1,8 +1,12 @@
 package com.redxun.knowledge.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.knowledge.entity.dao.KnowledgeApprove;
 import org.apache.ibatis.annotations.Mapper;
 import com.redxun.common.base.db.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
 * 业务--知识审批表数据库访问层
@@ -10,4 +14,8 @@ import com.redxun.common.base.db.BaseDao;
 @Mapper
 public interface KnowledgeApproveMapper extends BaseDao<KnowledgeApprove> {
 
+    // 根据知识id删除对应的审批记录
+    void deleteByKnowledgeId(String knowledgeId);
+
+    IPage findAllKnowledgeApprove(IPage page, @Param("params") Map<String, Object> params, @Param("w") Map<String, Object> order);
 }

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

@@ -3,15 +3,26 @@ package com.redxun.knowledge.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.db.PageHelper;
+import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.entity.dao.KnowledgeApprove;
+import com.redxun.knowledge.entity.vo.BannerAdminVo;
+import com.redxun.knowledge.entity.vo.KnowledgeApprovalListVo;
+import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
 import com.redxun.knowledge.mapper.KnowledgeApproveMapper;
+import javafx.scene.layout.BackgroundRepeat;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.List;
+import org.springframework.util.StringUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
 
 /**
@@ -23,9 +34,51 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
     @Resource
     private KnowledgeApproveMapper knowledgeApproveMapper;
 
+    @Autowired
+    private KnowledgeCategoryServiceImpl knowledgeCategoryService;
+
     @Override
     public BaseDao<KnowledgeApprove> getRepository() {
         return knowledgeApproveMapper;
     }
 
+    public IPage findAllKnowledgeApprove(QueryFilter filter) {
+        Map<String, Object> params = PageHelper.constructParams(filter);
+        IPage page = knowledgeApproveMapper.findAllKnowledgeApprove(filter.getPage(), filter.getParams(), params);
+        // 查询出全部记录
+        List<KnowledgeApprovalListVo> knowledgeApprovalListVos = page.getRecords();
+        // 根据知识Id进行数据分组
+        Map<String, List<KnowledgeApprovalListVo>> result =
+                knowledgeApprovalListVos.stream().collect(Collectors.groupingBy(KnowledgeApprovalListVo::getKnowledgerId));
+        // 结果集
+        List<KnowledgeApprovalListVo> knowledgeApprovalListVoList = new ArrayList<>();
+        // 遍历每组的数据
+        Set<Map.Entry<String, List<KnowledgeApprovalListVo>>> entries = result.entrySet();
+        for (Map.Entry<String, List<KnowledgeApprovalListVo>> entry : entries) {
+            List<KnowledgeApprovalListVo> value = entry.getValue();
+            for (int i = 0; i < value.size(); i++) {
+                // 判断审批结果是否为null(如果审批结果没有null,证明审批已结束;如果等于0,证明审批没通过)
+                if (value.get(i).getResult() == null || value.get(i).getResult() == 0) {
+                    if (i != 0) {
+                        // 如果不是第一条数据,取前一条数据的审批时间
+                        Date approvalTime = value.get(i - 1).getApprovalTime();
+                        value.get(i).setApprovalTime(approvalTime);
+                    }
+                    // 把该记录加到结果集中
+                    knowledgeApprovalListVoList.add(value.get(i));
+                    break;
+                }
+            }
+        }
+        // 放入知识分类信息
+        knowledgeApprovalListVoList.forEach(e -> {
+            String categoryId = e.getCategoryId();
+            KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(categoryId);
+            e.setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
+        });
+        // 重新组装分页数据
+        page.setRecords(knowledgeApprovalListVoList);
+        page.setTotal(knowledgeApprovalListVoList.size());
+        return page;
+    }
 }

+ 4 - 1
src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java

@@ -100,10 +100,13 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
      */
     public KnowledgeCategoryAdminVo findAllParentByCategoryId(String categoryId) {
         KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryMapper.selectByCategoryId(categoryId);
+        // 如果父id等于0,则直接返回(0为顶级分类)
+        if ("0".equals(knowledgeCategoryAdminVo.getParent())){
+            return knowledgeCategoryAdminVo;
+        }
         KnowledgeCategoryAdminVo allParent = findAllParent(knowledgeCategoryAdminVo.getParent());
         knowledgeCategoryAdminVo.setParents(allParent);
         return knowledgeCategoryAdminVo;
-
     }
 
     /**

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

@@ -184,6 +184,7 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         knowledgeVo.setCreateTime(knowledge.getCreateTime());
         knowledgeVo.setApprovalStatus(knowledge.getApprovalStatus());
         knowledgeVo.setApprovals(approvals);
+        knowledgeVo.setKnowledgeCategoryAdminVo(knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId()));
         return knowledgeVo;
     }
 

+ 50 - 2
src/main/resources/mapper/knowledge/KnowledgeApproveMapper.xml

@@ -22,12 +22,21 @@
                 <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="comment" column="COMMENT" jdbcType="VARCHAR"/>
+                <result property="name" column="NAME" jdbcType="VARCHAR"/>
+                <result property="remark" column="REMARK" jdbcType="VARCHAR" />
     </resultMap>
 
+    <sql id="COLUMNS">
+        PK_ID,KNOWLEDGER_ID,RESULT,APPROVER_ID,APPROVER_NAME,ACTUAL_APPROVER,ACTUAL_APPROVER_NAME,
+        APPROVAL_TIME,APPROVAL_BATCH,SORT,IS_FINAL,IS_DEL,
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,NAME,REMARK
+    </sql>
+
 
     <select id="query" resultType="com.redxun.knowledge.entity.dao.KnowledgeApprove" parameterType="java.util.Map">
-        select PK_ID,KNOWLEDGER_ID,RESULT,APPROVER_ID,APPROVER_NAME,ACTUAL_APPROVER,ACTUAL_APPROVER_NAME,APPROVAL_TIME,APPROVAL_BATCH,SORT,IS_FINAL,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_,COMMENT from KM_KNOWLEDGE_APPROVE
+        select
+        <include refid="COLUMNS" />
+        from KM_KNOWLEDGE_APPROVE
         <where>
             <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
                 ${w.whereSql}
@@ -41,6 +50,45 @@
         </if>
     </select>
 
+    <select id="findAllKnowledgeApprove" resultType="com.redxun.knowledge.entity.vo.KnowledgeApprovalListVo">
+        SELECT ka.PK_ID,ka.KNOWLEDGER_ID,k.TITLES,k.TYPE,k.CATEGORY_ID,k.AUTHOR,
+        ka.CREATE_TIME_,k.APPROVAL_STATUS,ka.CREATE_BY_,ka.RESULT,ka.APPROVER_NAME,ka.APPROVAL_TIME
+        from KM_KNOWLEDGE_APPROVE  ka
+        JOIN KM_KNOWLEDGE k
+        on ka.KNOWLEDGER_ID = k.PK_ID
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(params.titles)">
+                k.TITLES LIKE '%' || #{params.titles} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.categoryId)">
+                and k.CATEGORY_ID = #{params.categoryId}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.type)">
+                and k.TYPE = #{params.type}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.author)">
+                and k.AUTHOR LIKE '%' || #{params.author} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.beginTime)">
+                and ka.CREATE_TIME_ &gt;= TO_DATE(#{params.beginTime}, 'YYYY-MM-DD')
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.endTime)">
+                and ka.CREATE_TIME_ &lt;= TO_DATE(#{params.endTime}, 'YYYY-MM-DD')
+            </if>
+            and ka.IS_DEL = 0
+        </where>
+        ORDER BY ka.SORT,ka.CREATE_TIME_ DESC
+    </select>
+
+
+
+    <update id="deleteByKnowledgeId">
+        update KM_KNOWLEDGE_APPROVE
+        SET
+            IS_DEL = 1,UPDATE_TIME_ = sysdate
+        where KNOWLEDGER_ID = #{knowledgeId}
+    </update>
+
 </mapper>