瀏覽代碼

作者:张哲
时间:2023/05/06
类型:开发
描述:里程碑(1) 增加草稿

zizg 1 年之前
父節點
當前提交
a5ed53d21b

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/dao/Knowledge.java

@@ -80,6 +80,8 @@ public class Knowledge extends BaseExtEntity<java.lang.String> {
     private Integer isDel;
     @TableField(value = "DOCUMENT_ID")
     private String documentId;
+    @TableField(value = "IS_DRAFT")
+    private Integer isDraft;
 
     // 是否在当前组织架构权限中(0 在 1 不在 没最终通过时返回为null)
     @TableField(exist = false)

+ 4 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeDto.java

@@ -45,4 +45,8 @@ public class KnowledgeDto {
     private String createBy;
     // 作者id(创建人id)
     private String updateBy;
+
+    private Integer isDraft;
+
+    private String organizationId;
 }

+ 34 - 23
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -139,6 +139,8 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             knowledge.setCreateTime(new Date());
             knowledge.setUpdateBy(users.getUserId());
             knowledge.setUpdateTime(new Date());
+            knowledge.setIsDraft(knowledgeDto.getIsDraft());
+            knowledge.setOrganizationId(knowledgeDto.getOrganizationId());
 
             JPaasUser user = userService.queryUser(userService.queryLoginUser());
             if (user != null) {
@@ -147,27 +149,29 @@ 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.setUpdateBy(users.getUserId());
-                        knowledgeApprove.setSort(index + 1);
-                        knowledgeApprove.setIsFinal(node.getIsFinal());
-                        knowledgeApprove.setCreateBy(userService.queryLoginUser());
-                        knowledgeApprove.setCreateTime(new Date());
-
-                        knowledgeApproveMapper.insert(knowledgeApprove);
+            // 从知识审批节点表拉取审批节点(不是草稿则拉取)
+            if ("1".equals(knowledgeDto.getIsDraft())) {
+                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.setUpdateBy(users.getUserId());
+                            knowledgeApprove.setSort(index + 1);
+                            knowledgeApprove.setIsFinal(node.getIsFinal());
+                            knowledgeApprove.setCreateBy(userService.queryLoginUser());
+                            knowledgeApprove.setCreateTime(new Date());
+
+                            knowledgeApproveMapper.insert(knowledgeApprove);
+                        }
                     }
                 }
             }
@@ -587,8 +591,13 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         if (knowledge.getApprovalStatus() == 3 || knowledge.getApprovalStatus() == 1) {
             return -1;
         } else {
+            //是草稿,直接修改数据结束
+            if ("0".equals(entity.getIsDraft())){
+                return this.getRepository().updateById(entity);
+            }
             //知识被驳回了,重新修改进行审核(批次加1)
             entity.setApprovalStatus(1);
+            entity.setViews(0);
             entity.setApprovalBatch(knowledge.getApprovalBatch() + 1);
             //删除原有的审批节点
             knowledgeApproveMapper.deleteByKnowledgeId(entity.getPkId());
@@ -615,8 +624,10 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
                     }
                 }
             }
-            // 清空组织架构/职系/职等信息
-            entity.setOrganizationId("");
+            // 组织架构/职系/职等信息
+            if (StringUtils.isEmpty(entity.getOrganizationId())){
+                entity.setOrganizationId("");
+            }
             return this.getRepository().updateById(entity);
         }
 

+ 15 - 7
src/main/resources/mapper/knowledge/KnowledgeMapper.xml

@@ -27,13 +27,14 @@
         <result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
         <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
         <result property="documentId" column="DOCUMENT_ID" jdbcType="DATE"/>
+        <result property="isDraft" column="IS_DRAFT" jdbcType="INTEGER"/>
     </resultMap>
 
     <sql id="COLUMNS">
         PK_ID
         ,CATEGORY_ID,TITLES,TYPE,SUMMARY,VIEWS,AUTHOR,CONTENT,ATTACHMENT,
         ATTACHMENT_NAME,ATTACHMENT_TYPE,APPROVAL_STATUS,APPROVAL_BATCH,ORGANIZATION_ID,IS_DEL,
-        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,DOCUMENT_ID
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,DOCUMENT_ID,IS_DRAFT
     </sql>
 
 
@@ -94,6 +95,12 @@
             <if test="@rx.Ognl@isNotEmpty(params.createBy)">
                 and CREATE_BY_ = #{params.createBy}
             </if>
+            <if test="@rx.Ognl@isEmpty(params.isDraft)">
+                and IS_DRAFT = 1
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.isDraft)">
+                and IS_DRAFT = 0
+            </if>
             and IS_DEL = 0
         </where>
         ORDER BY
@@ -144,7 +151,7 @@
             <if test="@rx.Ognl@isNotEmpty(params.approvalStatus)">
                 and k.APPROVAL_STATUS = #{params.approvalStatus}
             </if>
-            and k.IS_DEL = 0 and (APPROVAL_STATUS = 1 OR APPROVAL_STATUS = 3)
+            and k.IS_DEL = 0 and (APPROVAL_STATUS = 1 OR APPROVAL_STATUS = 3) and k.IS_DRAFT = 1
         </where>
         ORDER BY ka.CREATE_TIME_ DESC,ka.SORT ASC
     </select>
@@ -159,7 +166,7 @@
         k.CATEGORY_ID IN (
         SELECT c.PK_ID FROM KM_KNOWLEDGE_CATEGORY c WHERE c.IS_DEL = 0 START WITH c.PK_ID = #{params.categoryId} CONNECT
         BY PRIOR c.PK_ID = c.PARENT and c.IS_DEL = 0
-        ) and k.APPROVAL_STATUS = 5
+        ) and k.APPROVAL_STATUS = 5 and k.IS_DRAFT = 1
         ORDER BY VIEWS DESC
     </select>
 
@@ -177,7 +184,7 @@
         k.COMPANY_ID_,k.CREATE_DEP_ID_,k.TENANT_ID_,k.CREATE_BY_,k.CREATE_TIME_,k.UPDATE_BY_,k.UPDATE_TIME_,k.DOCUMENT_ID
         FROM KM_KNOWLEDGE k JOIN KM_KNOWLEDGE_APPROVE ka ON k.PK_ID = ka.KNOWLEDGER_ID
         <where>
-            k.IS_DEL = 0 and (APPROVAL_STATUS = 1 OR APPROVAL_STATUS = 3)
+            k.IS_DEL = 0 and (APPROVAL_STATUS = 1 OR APPROVAL_STATUS = 3) and k.IS_DRAFT = 1
         </where>
         ORDER BY ka.CREATE_TIME_ DESC,ka.SORT ASC
     </select>
@@ -196,7 +203,7 @@
         INSERT INTO KM_KNOWLEDGE(
         PK_ID,CATEGORY_ID,TITLES,TYPE,SUMMARY,AUTHOR,CONTENT,ATTACHMENT,
         ATTACHMENT_NAME,ATTACHMENT_TYPE,APPROVAL_STATUS,APPROVAL_BATCH,ORGANIZATION_ID,
-        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,DOCUMENT_ID
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,DOCUMENT_ID,IS_DRAFT
         )VALUES(
         #{pkId,jdbcType=VARCHAR},
         #{categoryId},
@@ -218,7 +225,8 @@
         #{createTime},
         #{updateBy},
         #{updateTime},
-        #{documentId}
+        #{documentId},
+        #{isDraft}
         );
         END;
     </insert>
@@ -227,7 +235,7 @@
         select
         <include refid="COLUMNS"/>
         from KM_KNOWLEDGE k
-        where APPROVAL_STATUS = 5 AND IS_DEL = 0 AND TYPE = 2
+        where APPROVAL_STATUS = 5 AND IS_DEL = 0 AND TYPE = 2 and IS_DRAFT = 1
         AND k.CATEGORY_ID IN (
         SELECT c.PK_ID FROM KM_KNOWLEDGE_CATEGORY c WHERE c.IS_DEL = 0 START WITH c.PK_ID = #{categoryId} CONNECT BY
         PRIOR c.PK_ID = c.PARENT and c.IS_DEL = 0