Browse Source

接口: 知识详情

YangL 2 years ago
parent
commit
844c470a1a

+ 10 - 1
src/main/java/com/redxun/knowledge/controller/KnowledgeController.java

@@ -7,6 +7,7 @@ import com.redxun.common.base.entity.JsonResult;
 import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.entity.dto.knowledgeDto;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
+import com.redxun.knowledge.entity.vo.KnowledgeVo;
 import com.redxun.knowledge.service.KnowledgeServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
@@ -50,12 +51,20 @@ public class KnowledgeController extends BaseController<Knowledge> {
     }
 
     @ApiOperation("新增知识")
-    @GetMapping("create")
+    @PostMapping("create")
     public JsonResult create(@Validated @RequestBody knowledgeDto knowledgeDto) {
         JsonResult jsonResult = JsonResult.getSuccessResult("新增知识成功!");
         String pkId = knowledgeService.create(knowledgeDto);
         jsonResult.setData(pkId);
         return jsonResult;
     }
+
+    @ApiOperation("知识详情")
+    @GetMapping("info")
+    public JsonResult info(@RequestParam(value = "pkId") String pkId) {
+        JsonResult jsonResult = JsonResult.getSuccessResult("获取知识详情成功!");
+        jsonResult.setData(knowledgeService.info(pkId));
+        return jsonResult;
+    }
 }
 

+ 6 - 2
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprove.java

@@ -36,6 +36,10 @@ public class KnowledgeApprove  extends BaseExtEntity<java.lang.String> {
     @TableId(value = "PK_ID",type = IdType.INPUT)
 	private String pkId;
 
+    //节点名称
+    @TableField(value = "NAME")
+    private String name;
+
     //知识ID;对应知识表主键ID
     @TableField(value = "KNOWLEDGER_ID")
     private String knowledgerId;
@@ -71,8 +75,8 @@ public class KnowledgeApprove  extends BaseExtEntity<java.lang.String> {
     @TableLogic
     private Integer isDel;
 
-    @TableField(value = "COMMENT")
-    private String comment;
+    @TableField(value = "REMARK")
+    private String remark;
 
 
 

+ 1 - 0
src/main/java/com/redxun/knowledge/entity/dto/knowledgeDto.java

@@ -1,5 +1,6 @@
 package com.redxun.knowledge.entity.dto;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;

+ 5 - 1
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalVo.java

@@ -1,6 +1,7 @@
 package com.redxun.knowledge.entity.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -41,6 +42,9 @@ public class KnowledgeApprovalVo {
     )
     private Date approvalTime;
 
-    // 审核状态 :提交审核 审核通过 审核通过 审核驳回
+    // 审核状态 :提交审核 审核通过 审核驳回
     private String approvalStatus;
+
+    // 排序
+    private Integer sort;
 }

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

@@ -0,0 +1,71 @@
+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;
+import java.util.List;
+
+@Data
+public class KnowledgeVo {
+    // 主键
+    private String pkId;
+
+    // 知识分类ID
+    private String categoryId;
+
+    // 知识类型 1-文档知识 2-维基知识
+    private Integer type;
+
+    // 知识类型名称
+    private String getTypeName() {
+        if (type != null) {
+            if (type == 1) {
+                return "文档知识";
+            } else if (type == 2) {
+                return "维基知识";
+            }
+        }
+
+        return "";
+    }
+
+    // 知识标题
+    private String title;
+
+    // 作者名称
+    private String author;
+
+    // 知识内容
+    private String content;
+
+    // 简介
+    private String summary;
+
+    // 附件ID
+    private String attachment;
+
+    // 创建时间
+    @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 createTime;
+
+    // 浏览数量
+    private Integer views;
+
+    // 审批状态 1-待节点审核 2-节点驳回 3-待最终审核 4-最终驳回 5-最终通过
+    private Integer approvalStatus;
+
+    // 流程节点
+    private List<KnowledgeApprovalVo> approvals;
+}

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

@@ -3,6 +3,7 @@ package com.redxun.knowledge.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.model.JPaasUser;
@@ -10,11 +11,20 @@ import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.Knowledge;
+import com.redxun.knowledge.entity.dao.KnowledgeApprovalNode;
+import com.redxun.knowledge.entity.dao.KnowledgeApprove;
+import com.redxun.knowledge.entity.dao.KnowledgeLabel;
 import com.redxun.knowledge.entity.dto.knowledgeDto;
+import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
+import com.redxun.knowledge.entity.vo.KnowledgeVo;
+import com.redxun.knowledge.mapper.KnowledgeApprovalNodeMapper;
+import com.redxun.knowledge.mapper.KnowledgeApproveMapper;
 import com.redxun.knowledge.mapper.KnowledgeMapper;
+import org.checkerframework.checker.units.qual.K;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
@@ -28,6 +38,12 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     @Resource
     private KnowledgeMapper knowledgeMapper;
 
+    @Resource
+    private KnowledgeApprovalNodeMapper knowledgeApprovalNodeMapper;
+
+    @Resource
+    private KnowledgeApproveMapper knowledgeApproveMapper;
+
     @Resource
     private UserService userService;
 
@@ -68,9 +84,87 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             }
 
             insert(knowledge);
+
+            // 从知识审批节点表拉取审批节点
+            List<KnowledgeApprovalNode> approvalVoList = knowledgeApprovalNodeMapper.selectList(new QueryWrapper<KnowledgeApprovalNode>().eq("IS_DEL", 0).orderByAsc("IS_FINAL", "CREATE_TIME_"));
+            if (ObjectUtils.isNotEmpty(approvalVoList)) {
+                KnowledgeApprovalNode node;
+                for (int index = 0; index < approvalVoList.size(); index++) {
+                    node = approvalVoList.get(index);
+                    if (node != null) {
+                        KnowledgeApprove knowledgeApprove = new KnowledgeApprove();
+                        knowledgeApprove.setPkId(IdGenerator.getIdStr());
+                        knowledgeApprove.setName(node.getName());
+                        knowledgeApprove.setKnowledgerId(knowledge.getPkId());
+                        knowledgeApprove.setApproverId(node.getApproverId());
+                        knowledgeApprove.setApproverName(node.getApproverName());
+                        knowledgeApprove.setApprovalBatch(1);
+                        knowledgeApprove.setSort(index + 1);
+                        knowledgeApprove.setIsFinal(node.getIsFinal());
+                        knowledgeApprove.setCreateBy(userService.queryLoginUser());
+                        knowledgeApprove.setCreateTime(new Date());
+
+                        knowledgeApproveMapper.insert(knowledgeApprove);
+                    }
+                }
+            }
+
             return knowledge.getPkId();
         }
 
         return "";
     }
+
+    public KnowledgeVo info(String pkId) {
+        Knowledge knowledge = get(pkId);
+
+        List<KnowledgeApprove> approvalVoList = knowledgeApproveMapper.selectList(new QueryWrapper<KnowledgeApprove>().eq("KNOWLEDGER_ID", pkId).orderByAsc("SORT"));
+        List<KnowledgeApprovalVo> approvals = new ArrayList<>();
+        // 审核节点
+        if (ObjectUtils.isNotEmpty(approvalVoList)) {
+            KnowledgeApprove approve = null;
+            KnowledgeApprovalVo approvalVo = null;
+            boolean isFirstNoneApprove = true;
+            for (int index = 0; index < approvalVoList.size(); index++) {
+                approve = approvalVoList.get(index);
+                approvalVo = new KnowledgeApprovalVo();
+                approvalVo.setPkId(approve.getPkId());
+                approvalVo.setName(approve.getName());
+                approvalVo.setApproverId(approve.getApproverId());
+                approvalVo.setApproverName(approve.getApproverName());
+                approvalVo.setActualApprover(approve.getActualApprover());
+                approvalVo.setActualApproverName(approve.getActualApproverName());
+                approvalVo.setApprovalTime(approve.getApprovalTime());
+                approvalVo.setSort(approve.getSort());
+                // 审核状态 :提交审核 审核通过 审核驳回
+                if (approve.getResult() == null && isFirstNoneApprove) {
+                    isFirstNoneApprove = false;
+                    approvalVo.setApprovalStatus("提交审核");
+                } else {
+                    if (approve.getResult() == null) {
+                        approvalVo.setApprovalStatus("");
+                    } else if (approve.getResult() == 0) {
+                        approvalVo.setApprovalStatus("审核驳回");
+                    } else if (approve.getResult() == 1) {
+                        approvalVo.setApprovalStatus("审核通过");
+                    }
+                }
+                approvals.add(approvalVo);
+            }
+        }
+
+        KnowledgeVo knowledgeVo = new KnowledgeVo();
+        knowledgeVo.setPkId(knowledge.getPkId());
+        knowledgeVo.setCategoryId(knowledge.getCategoryId());
+        knowledgeVo.setType(knowledge.getType());
+        knowledgeVo.setTitle(knowledge.getTitle());
+        knowledgeVo.setAuthor(knowledge.getAuthor());
+        knowledgeVo.setContent(knowledge.getContent());
+        knowledgeVo.setSummary(knowledge.getSummary());
+        knowledgeVo.setAttachment(knowledge.getAttachment());
+        knowledgeVo.setCreateTime(knowledge.getCreateTime());
+        knowledgeVo.setApprovalStatus(knowledge.getApprovalStatus());
+        knowledgeVo.setApprovals(approvals);
+        return knowledgeVo;
+    }
 }

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

@@ -40,7 +40,7 @@
         SELECT PK_ID, NAME, APPROVER_ID, APPROVER_NAME, '--' AS APPROVAL_STATUS
         FROM KM_KNOWLEDGE_APPROVAL_NODE
         WHERE IS_DEL = 0
-        ORDER BY IS_FINAL ASC
+        ORDER BY IS_FINAL ASC, CREATE_TIME_ ASC
     </select>
 </mapper>