4
0
Эх сурвалжийг харах

作者:张哲
时间:2022/12/2
类型:开发
描述:知识管理模块开发

ZizgZh 2 жил өмнө
parent
commit
5cbcdfc3aa

+ 18 - 0
src/main/java/com/redxun/knowledge/controller/KnowledgeController.java

@@ -102,5 +102,23 @@ public class KnowledgeController extends BaseController<Knowledge> {
         }
         return JsonResult.Success("删除成功!");
     }
+
+    @ApiOperation(value = "知识审核")
+    @ApiImplicitParam(name = "queryData", value = "查询条件")
+    @PostMapping("findAllAuditKnowledge")
+    public JsonPageResult findAllAuditKnowledge(@RequestBody QueryData queryData) {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            IPage page = knowledgeService.findAllAuditKnowledge(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;
+    }
 }
 

+ 29 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalListVo.java

@@ -0,0 +1,29 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+// 知识审核列表VO
+@Data
+public class KnowledgeApprovalListVo {
+
+    // 节点审核时间
+    @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;
+
+    private KnowledgeVo knowledgeVo;
+
+}

+ 17 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeVo.java

@@ -2,6 +2,7 @@ package com.redxun.knowledge.entity.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.redxun.knowledge.entity.dao.KnowledgeApprove;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -60,6 +61,19 @@ public class KnowledgeVo {
     )
     private Date createTime;
 
+    // 操作时间
+    @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 updateTime;
+
     // 浏览数量
     private Integer views;
 
@@ -69,6 +83,9 @@ public class KnowledgeVo {
     // 流程节点
     private List<KnowledgeApprovalVo> approvals;
 
+    // 第一个流程节点
+    private KnowledgeApprove approvalsFirst;
+
     //所属分类
     private KnowledgeCategoryAdminVo knowledgeCategoryAdminVo;
 }

+ 2 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeMapper.java

@@ -19,4 +19,6 @@ public interface KnowledgeMapper extends BaseDao<Knowledge> {
     IPage findAllKnowledge(IPage page, @Param("params") Map<String, Object> params,@Param("w") Map<String, Object> order);
 
     void deleteKnowledge(String knowledgeId);
+
+    IPage findAllAuditKnowledge(IPage page, @Param("params") Map<String, Object> params, @Param("w") Map<String, Object> order);
 }

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

@@ -12,6 +12,7 @@ import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.model.JPaasUser;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.*;
 import com.redxun.knowledge.entity.dto.knowledgeDto;
@@ -213,7 +214,52 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         if (count > 0){
             return false;
         }
+        // 把知识审批表中对应数据删除掉
+        knowledgeApproveMapper.deleteByKnowledgeId(knowledgeId);
         knowledgeMapper.deleteKnowledge(knowledgeId);
         return true;
     }
+
+    /**
+     * 修改知识,如当前知识在审核状态,无法修改
+     * @param entity
+     * @return
+     */
+    @Override
+    public int update(Knowledge entity) {
+        Knowledge knowledge = this.get(entity.getPkId());
+        if (knowledge.getApprovalStatus() == 3){
+            throw new RuntimeException("当前知识正在审核中,无法修改");
+        }
+        entity.setApprovalStatus(1);
+        // TODO: 2022/12/2  把审核表中批次加1
+        return this.getRepository().updateById(entity);
+    }
+
+    /**
+     * 查找待审核的知识(分页查询,超过99条只显示前99条记录)
+     * @param filter
+     * @return
+     */
+    public IPage findAllAuditKnowledge(QueryFilter filter) {
+        Map<String, Object> params = PageHelper.constructParams(filter);
+        // 只查询待节点审核的数据
+        IPage page = knowledgeMapper.findAllAuditKnowledge(filter.getPage(), filter.getParams(), params);
+        List<KnowledgeVo> knowledgeVoList = page.getRecords();
+        // 查询其所属分类信息以及审核表第一节点的审核人信息
+        knowledgeVoList.forEach(e -> {
+            KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(e.getCategoryId());
+            e.setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
+            List<KnowledgeApprove> knowledgerList = knowledgeApproveMapper.selectList(
+                    new QueryWrapper<KnowledgeApprove>().eq("KNOWLEDGER_ID", e.getPkId()).orderByAsc("SORT"));
+            e.setApprovalsFirst(knowledgerList.get(0));
+        });
+        // 数据大于99条,取前99条数据返回
+        if (page.getSize() > 99){
+            List<KnowledgeVo> recordsPre = knowledgeVoList.stream().limit(99).collect(Collectors.toList());
+            page.setRecords(recordsPre);
+            page.setSize(99);
+        }
+        return page;
+    }
 }

+ 28 - 0
src/main/resources/mapper/knowledge/KnowledgeMapper.xml

@@ -86,6 +86,34 @@
         where PK_ID = #{pkId}
     </delete>
 
+    <select id="findAllAuditKnowledge" resultType="com.redxun.knowledge.entity.vo.KnowledgeVo">
+        SELECT
+        <include refid="COLUMNS" />
+        FROM KM_KNOWLEDGE
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(params.titles)">
+                TITLES LIKE '%' || #{params.titles} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.categoryId)">
+                CATEGORY_ID = #{params.categoryId}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.type)">
+                and TYPE = #{params.type}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.author)">
+                and AUTHOR LIKE '%' || #{params.author} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.beginTime)">
+                and CREATE_TIME_ &gt;= TO_DATE(#{params.beginTime}, 'YYYY-MM-DD')
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.endTime)">
+                and CREATE_TIME_ &lt;= TO_DATE(#{params.endTime}, 'YYYY-MM-DD')
+            </if>
+            and IS_DEL = 0 and APPROVAL_STATUS = 1
+        </where>
+        ORDER BY CREATE_TIME_ DESC
+    </select>
+
 
 </mapper>