Quellcode durchsuchen

作者:张哲
时间:2022/12/23
类型:开发
描述:批量审核接口开发

ZizgZh vor 2 Jahren
Ursprung
Commit
ea6faa3eca

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

@@ -50,7 +50,7 @@ public class KnowledgeApproveController extends BaseController<KnowledgeApprove>
         return "业务--知识审批表";
     }
 
-    @ApiOperation(value = "审核管理列表列表(分页后台)")
+    @ApiOperation(value = "审核管理列表(分页后台)")
     @ApiImplicitParam(name = "queryData", value = "查询条件")
     @PostMapping("findAllKnowledgeApprove")
     public JsonPageResult findAllKnowledgeApprove(@RequestBody QueryData queryData) {

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

@@ -79,6 +79,8 @@ public class Knowledge  extends BaseExtEntity<java.lang.String> {
     @TableField(value = "IS_DEL")
     @TableLogic
     private Integer isDel;
+    @TableField(value = "DOCUMENT_ID")
+    private String documentId;
 
 
     @Override

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

@@ -38,4 +38,8 @@ public class knowledgeDto {
     @NotBlank(message = "缺失关键参数:文件名称")
     // 附件名称
     private String attachmentName;
+    // 作者
+    private String author;
+    // 作者id(创建人id)
+    private String createBy;
 }

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalVo.java

@@ -47,4 +47,6 @@ public class KnowledgeApprovalVo {
 
     // 排序
     private Integer sort;
+
+    private String remark;
 }

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

@@ -48,6 +48,9 @@ public class KnowledgeVo {
     // 附件ID
     private String attachment;
 
+    // 附件名
+    private String attachmentName;
+
     // 创建时间
     @DateTimeFormat(
             pattern = "yyyy-MM-dd HH:mm:ss"
@@ -84,6 +87,8 @@ public class KnowledgeVo {
     private String createBy;
     // 操作人
     private String updateBy;
+    // 组织架构权限
+    private String organizationId;
 
     // 流程节点
     private List<KnowledgeApprovalVo> approvals;

+ 3 - 1
src/main/java/com/redxun/knowledge/service/BannerServiceImpl.java

@@ -17,6 +17,7 @@ import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.entity.dao.KnowledgeCategory;
 import com.redxun.knowledge.entity.vo.BannerAdminVo;
 import com.redxun.knowledge.entity.vo.BannerPcVo;
+import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
 import com.redxun.knowledge.mapper.BannerMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -96,7 +97,8 @@ public class BannerServiceImpl extends SuperServiceImpl<BannerMapper, Banner> im
                 KnowledgeCategory knowledgeCategory = knowledgeCategoryService.findAllByCategoryId(knowledge.getCategoryId());
                 Map<String,Object> map = new HashMap<>();
                 map.put("knowledgeName",knowledge.getTitles());
-                map.put("knowledgeCategory",knowledgeCategory);
+                KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledgeCategory.getPkId());
+                map.put("knowledgeCategory",knowledgeCategoryAdminVo);
                 banner.setParams(map);
             }
         }

+ 20 - 6
src/main/java/com/redxun/knowledge/service/KnowledgeApproveServiceImpl.java

@@ -1,6 +1,8 @@
 
 package com.redxun.knowledge.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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;
@@ -96,9 +98,9 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
                     // 把该记录加到结果集中
                     knowledgeApprovalListVoList.add(value.get(i));
                     // 如果节点为终审节点,审核状态为3(待最终审核)
-                    if (value.get(i).getIsFinal() == 1 && value.get(i).getApprovalStatus() != 5){
-                        knowledgeMapper.updateApprovalStatus(value.get(i).getKnowledgerId(),3);
-                    }
+                    //if (value.get(i).getIsFinal() == 1 && value.get(i).getApprovalStatus() != 5){
+                    //    knowledgeMapper.updateApprovalStatus(value.get(i).getKnowledgerId(),3);
+                    //}
                     break;
                 }
             }
@@ -126,7 +128,11 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
     @Transactional(rollbackFor = Exception.class)
     @Override
     public int update(KnowledgeApprove entity) {
+        // 当前记录
         KnowledgeApprove knowledgeApprove = knowledgeApproveMapper.selectById(entity.getPkId());
+        // 当前记录的下一条记录
+        KnowledgeApprove knowledgeApproveNext = knowledgeApproveMapper.
+                selectOne(new QueryWrapper<KnowledgeApprove>().eq("SORT", knowledgeApprove.getSort() + 1).eq("KNOWLEDGER_ID",knowledgeApprove.getKnowledgerId()));
         // 如果审核节点不是终审节点且知识未通过,修改知识状态为节点驳回 2
         if (knowledgeApprove.getIsFinal() == 0 && entity.getResult() == 0){
             Knowledge knowledge = new Knowledge();
@@ -158,14 +164,22 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             sendMessage(createBy,entity.getRemark());
             //把该知识附件信息传入搜索平台
             Knowledge knowledges = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
-            searchService.notice(knowledges.getAttachment(),knowledges.getAttachmentName(),null,
+            searchService.notice(knowledges.getPkId(),knowledges.getDocumentId(),knowledges.getAttachmentName(),null,
                     fileUrl + knowledges.getAttachment(),null,
                     knowledges.getCreateBy(),
                     knowledges.getAuthor(),null,1);
         }
+        // 如果当前节点的下个节点为终审节点通过且当前节点审核通过,修改状态为待最终审核
+        if (knowledgeApproveNext != null && knowledgeApproveNext.getIsFinal() == 1 && entity.getResult() == 1){
+            Knowledge knowledge = new Knowledge();
+            knowledge.setPkId(knowledgeApprove.getKnowledgerId());
+            knowledge.setApprovalStatus(3);
+            knowledgeMapper.updateById(knowledge);
+        }
+        // TODO: 2022/12/22  发短信问题
         // 如果审核通过了,发送短信通知下一个人审核
-        //if (knowledgeApprove.getResult() == 1 && knowledgeApprove.getIsFinal() != 1){
-        //    // TODO: 2022/12/9
+        //if (knowledgeApproveNext != null && entity.getResult() == 1){
+        //    sendMessage(knowledgeApproveNext.getApproverId(),entity.getRemark());
         //}
         return this.getRepository().updateById(entity);
     }

+ 6 - 5
src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java

@@ -160,11 +160,8 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
     @Override
     public int update(KnowledgeCategory entity) {
         KnowledgeCategory knowledgeCategory = this.get(entity.getPkId());
-        if (!knowledgeCategory.getName().equals(entity.getName())){
-            Integer count = this.baseMapper.selectCount(new QueryWrapper<KnowledgeCategory>().eq("NAME", entity.getName()));
-            if (count > 0){
-                throw new RuntimeException("分类名称已存在,请重新输入");
-            }
+        if (knowledgeCategory.getIsSys() == 1){
+            throw new RuntimeException("系统内置节点,无法修改");
         }
         if (entity.getParent() != null){
             if (entity.getSort() == null) {
@@ -193,6 +190,7 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
      */
     @Transactional(rollbackFor = Exception.class)
     public Integer deleteKnowledgeCategory(String knowledgeCategoryId) {
+
         // 查询该分类下是否还有知识
         Boolean hasKnowledge = hasKnowledge(knowledgeCategoryId);
         if (hasKnowledge){
@@ -204,6 +202,9 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
         if (hasChirld){
             return 1;
         }
+        if (knowledgeCategory.getIsSys() == 1){
+            throw new RuntimeException("系统内置节点,无法修改");
+        }
         // 变更sort
         knowledgeCategoryMapper.deleteBySort(knowledgeCategory.getParent(),knowledgeCategory.getSort());
         knowledgeCategoryMapper.deleteKnowledgeCategory(knowledgeCategoryId);

+ 28 - 10
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -22,6 +22,7 @@ import com.redxun.search.service.SearchService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -35,6 +36,9 @@ import java.util.stream.Collectors;
 @Service
 public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Knowledge> implements BaseService<Knowledge> {
 
+    @Value("${file.url}")
+    private String fileUrl;
+
     @Resource
     private KnowledgeMapper knowledgeMapper;
 
@@ -56,6 +60,9 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     @Autowired
     private KnowledgeCategoryMapper knowledgeCategoryMapper;
 
+    @Autowired
+    private SearchService searchService;
+
     @Override
     public BaseDao<Knowledge> getRepository() {
         return knowledgeMapper;
@@ -89,6 +96,8 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             knowledge.setAttachmentName(knowledgeDto.getAttachmentName());
             knowledge.setAttachmentType(knowledgeDto.getAttachmentType());
             knowledge.setContent(knowledgeDto.getContent());
+            //knowledge.setAuthor(knowledgeDto.getAuthor());
+            //knowledge.setCreateBy(knowledgeDto.getCreateBy());
 
             JPaasUser user = userService.queryUser(userService.queryLoginUser());
             if (user != null) {
@@ -153,6 +162,7 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
                 approvalVo.setActualApproverName(approve.getActualApproverName());
                 approvalVo.setApprovalTime(approve.getApprovalTime());
                 approvalVo.setSort(approve.getSort());
+                approvalVo.setRemark(approve.getRemark());
                 // 审核状态 :提交审核 审核通过 审核驳回
                 if (approve.getResult() == null && isFirstNoneApprove) {
                     isFirstNoneApprove = false;
@@ -179,8 +189,10 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         knowledgeVo.setContent(knowledge.getContent());
         knowledgeVo.setSummary(knowledge.getSummary());
         knowledgeVo.setAttachment(knowledge.getAttachment());
+        knowledgeVo.setAttachmentName(knowledge.getAttachmentName());
         knowledgeVo.setCreateTime(knowledge.getCreateTime());
         knowledgeVo.setApprovalStatus(knowledge.getApprovalStatus());
+        knowledgeVo.setCreateBy(knowledge.getCreateBy());
         knowledgeVo.setApprovals(approvals);
         knowledgeVo.setKnowledgeCategoryAdminVo(knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId()));
         return knowledgeVo;
@@ -193,12 +205,11 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
      */
     public IPage findAllKnowledge(QueryFilter filter) {
         Map<String, Object> params = PageHelper.constructParams(filter);
-        if (filter.getParams().containsKey("categoryId")){
-            String categoryId = (String) filter.getParams().get("categoryId");
-            String strip = StringUtils.strip(categoryId, "[]");
-            String[] split = strip.split(",");
-            filter.getParams().put("categoryId",split[0]);
-        }
+        //配合前端传入分类id
+        //if (filter.getParams().containsKey("categoryIds")){
+        //    String[] categoryIds = (String[]) filter.getParams().get("categoryIds");
+        //    filter.getParams().put("categoryId",categoryIds[0]);
+        //}
         IPage page = knowledgeMapper.findAllKnowledge(filter.getPage(), filter.getParams(), params);
         List<KnowledgeVo> knowledgeVoList = page.getRecords();
         knowledgeVoList.forEach(e -> {
@@ -240,15 +251,22 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         Knowledge knowledge = this.get(entity.getPkId());
         // 知识为待节点审核状态和待最终审核状态,修改失败;知识为最终审核通过,修改失败
         if (knowledge.getApprovalStatus() == 3 || knowledge.getApprovalStatus() == 1){
-            throw new RuntimeException("当前知识正在审核中,无法修改");
-        } else if (knowledge.getApprovalStatus() == 5){
-            throw new RuntimeException("当前知识已通过最终审核,无法修改");
+            throw new RuntimeException("知识正在审核中,无法修改");
         } else {
+        //} else if (knowledge.getApprovalStatus() == 5){
+        //    throw new RuntimeException("当前知识已通过最终审核,无法修改");
+        //} else {
             //知识被驳回了,重新修改进行审核(批次加1)
             entity.setApprovalStatus(1);
             entity.setApprovalBatch(knowledge.getApprovalBatch() + 1);
+            //把该知识附件信息传入搜索平台
+            searchService.notice(entity.getPkId(),entity.getDocumentId(),entity.getAttachmentName(),null,
+                    fileUrl + entity.getAttachment(),null,
+                    entity.getCreateBy(),
+                    entity.getAuthor(),null,1);
+            return this.getRepository().updateById(entity);
         }
-        return this.getRepository().updateById(entity);
+
     }
 
     /**

+ 1 - 1
src/main/java/com/redxun/search/service/SearchService.java

@@ -44,6 +44,6 @@ public interface SearchService {
      * @param needText
      * @return
      */
-    Map<String,Object> notice(String documentId,String documentName,String documentPath,String documentUrl,
+    Map<String,Object> notice(String pkId,String documentId,String documentName,String documentPath,String documentUrl,
                   String documentMd5,String uploaderId,String uploader,String remark,Integer needText);
 }

+ 13 - 2
src/main/java/com/redxun/search/service/impl/SearchServiceImpl.java

@@ -2,10 +2,13 @@ package com.redxun.search.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.common.utils.MD5Utils;
+import com.redxun.knowledge.entity.dao.Knowledge;
+import com.redxun.knowledge.mapper.KnowledgeMapper;
 import com.redxun.search.service.SearchService;
 import com.redxun.search.utils.HttpRequestHelper;
 import com.redxun.search.utils.MD5;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
@@ -28,6 +31,9 @@ public class SearchServiceImpl implements SearchService {
 
     public static final String URL = "http://10.5.101.92:80";
 
+    @Autowired
+    private KnowledgeMapper knowledgeMapper;
+
     public Map<String,Object> search(String keyword, Integer pageIndex, Integer pageSize,
                          Integer range, Integer secretType, HttpServletRequest httpServletRequest) {
         Map<String,Object> result = new HashMap<>();
@@ -59,13 +65,13 @@ public class SearchServiceImpl implements SearchService {
     }
 
     @Override
-    public Map<String,Object> notice(String documentId, String documentName, String documentPath,
+    public Map<String,Object> notice(String pkId,String documentId, String documentName, String documentPath,
                          String documentUrl, String documentMd5, String uploaderId,
                          String uploader, String remark, Integer needText) {
         Map<String,Object> result = new HashMap<>();
         Map<String,Object> paramMap = new HashMap<>();
         Map<String,Object> headerMap = new HashMap<>();
-        //paramMap.put("documentId",documentId);
+        paramMap.put("documentId",documentId);
         paramMap.put("documentName",documentName);
         paramMap.put("documentPath",documentPath);
         paramMap.put("documentUrl",documentUrl);
@@ -83,7 +89,12 @@ public class SearchServiceImpl implements SearchService {
         if(null != respone && 200 == respone.getIntValue("code")) {
             result.put("code",respone.getIntValue("code"));
             result.put("message",respone.getString("message"));
+            // 上传成功,文件Id回填
             result.put("data",respone.getJSONObject("data"));
+            Knowledge knowledge = knowledgeMapper.selectById(pkId);
+            knowledge.setDocumentId(respone.getJSONObject("data").getString("data"));
+            knowledgeMapper.updateById(knowledge);
+
         } else {
             assert respone != null;
             result.put("code",respone.getIntValue("code"));

+ 11 - 3
src/main/resources/mapper/knowledge/KnowledgeMapper.xml

@@ -25,12 +25,13 @@
                 <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="documentId" column="DOCUMENT_ID" jdbcType="DATE"/>
     </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_
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,DOCUMENT_ID
     </sql>
 
 
@@ -56,11 +57,15 @@
     <include refid="COLUMNS" />
     FROM KM_KNOWLEDGE
     <where>
+        <if test="@rx.Ognl@isNotEmpty(params.keyword)">
+            (TITLES LIKE '%' || #{params.keyword} || '%' OR
+            TYPE LIKE '%' || #{params.keyword} || '%')
+        </if>
         <if test="@rx.Ognl@isNotEmpty(params.titles)">
-            TITLES LIKE '%' || #{params.titles} || '%'
+            and TITLES LIKE '%' || #{params.titles} || '%'
         </if>
         <if test="@rx.Ognl@isNotEmpty(params.categoryId)">
-            CATEGORY_ID = #{params.categoryId}
+            and CATEGORY_ID = #{params.categoryId}
         </if>
         <if test="@rx.Ognl@isNotEmpty(params.type)">
             and TYPE = #{params.type}
@@ -77,6 +82,9 @@
         <if test="@rx.Ognl@isNotEmpty(params.approvalStatus)">
             and APPROVAL_STATUS = 5
         </if>
+        <if test="@rx.Ognl@isNotEmpty(params.createBy)">
+            and CREATE_BY_ = #{params.createBy}
+        </if>
         and IS_DEL = 0
     </where>
         ORDER BY