From 50008b4786de04884cb7a8a57025bccb02812b68 Mon Sep 17 00:00:00 2001 From: liu Date: Fri, 28 Jun 2024 14:36:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../knowledge/KnowledgeManageController.java | 19 ++++---- .../service/KnowledgeManageService.java | 17 +++---- .../impl/KnowledgeManageServiceImpl.java | 45 +++++++++++++------ .../knowsub/mapper/KnowledgeMapper.java | 17 +++---- .../knowsub/service/KnowledgeService.java | 15 ++++--- .../service/impl/KnowledgeServiceImpl.java | 15 ++++--- .../vo/knowledge/KnowledgePageResVO.java | 18 ++++++++ .../main/resources/mapper/KnowledgeMapper.xml | 2 +- 8 files changed, 95 insertions(+), 53 deletions(-) create mode 100644 know_sub_model/src/main/java/com/supervision/knowsub/vo/knowledge/KnowledgePageResVO.java diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/controller/knowledge/KnowledgeManageController.java b/know_sub_business/src/main/java/com/supervision/knowsub/controller/knowledge/KnowledgeManageController.java index 5c4fca0..f4e1d2f 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/controller/knowledge/KnowledgeManageController.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/controller/knowledge/KnowledgeManageController.java @@ -7,6 +7,7 @@ import com.supervision.knowsub.entity.vo.knowledge.ModifyKnowledgeReqVO; import com.supervision.knowsub.entity.vo.knowledge.SaveKnowledgeReqVO; import com.supervision.knowsub.service.KnowledgeManageService; import com.supervision.knowsub.model.Knowledge; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; @@ -40,14 +41,14 @@ public class KnowledgeManageController { @Parameter(name = "pageSize", description = "分页", in = ParameterIn.QUERY) }) @GetMapping("queryKnowledgePage") - public IPage queryKnowledgePage(@RequestParam(required = false) Integer status, - @RequestParam(required = false) String title, - @RequestParam(required = false) String publishDeptId, - @RequestParam(required = false) String baseId, - @RequestParam(required = false) String submittedDeptId, - @RequestParam(required = false)LocalDateTime publishDateBegin, - @RequestParam(required = false)LocalDateTime publishDateEnd, - Integer pageNum, Integer pageSize) { + public IPage queryKnowledgePage(@RequestParam(required = false) Integer status, + @RequestParam(required = false) String title, + @RequestParam(required = false) String publishDeptId, + @RequestParam(required = false) String baseId, + @RequestParam(required = false) String submittedDeptId, + @RequestParam(required = false)LocalDateTime publishDateBegin, + @RequestParam(required = false)LocalDateTime publishDateEnd, + Integer pageNum, Integer pageSize) { return knowledgeManageService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, pageNum, pageSize); } @@ -57,7 +58,7 @@ public class KnowledgeManageController { knowledgeManageService.saveKnowledge(reqVO); } - @Operation(summary = "修改知识库(已撤回才能编辑)") + @Operation(summary = "修改知识库(已撤回和草稿状态才能编辑)") @PostMapping("updateKnowledge") public void updateKnowledge(@RequestBody ModifyKnowledgeReqVO reqVO) { Assert.notBlank(reqVO.getKnowledgeId(), "知识ID不能为空"); diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/service/KnowledgeManageService.java b/know_sub_business/src/main/java/com/supervision/knowsub/service/KnowledgeManageService.java index 072c37c..fc4ed74 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/service/KnowledgeManageService.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/service/KnowledgeManageService.java @@ -5,6 +5,7 @@ import com.supervision.knowsub.entity.vo.knowledge.KnowledgeDetailResVO; import com.supervision.knowsub.entity.vo.knowledge.ModifyKnowledgeReqVO; import com.supervision.knowsub.entity.vo.knowledge.SaveKnowledgeReqVO; import com.supervision.knowsub.model.Knowledge; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -12,14 +13,14 @@ import java.time.LocalDateTime; public interface KnowledgeManageService { - IPage queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd, - Integer pageNum, Integer pageSize); + IPage queryKnowledgePage(Integer status, + String title, + String publishDeptId, + String baseId, + String submittedDeptId, + LocalDateTime publishDateBegin, + LocalDateTime publishDateEnd, + Integer pageNum, Integer pageSize); void saveKnowledge(SaveKnowledgeReqVO reqVO); diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/KnowledgeManageServiceImpl.java b/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/KnowledgeManageServiceImpl.java index 8f225e0..74cbb72 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/KnowledgeManageServiceImpl.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/KnowledgeManageServiceImpl.java @@ -1,32 +1,26 @@ package com.supervision.knowsub.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.knowsub.domain.UserInfo; -import com.supervision.knowsub.entity.vo.knowledge.KnowledgeDetailResVO; -import com.supervision.knowsub.entity.vo.knowledge.KnowledgeLinkVO; -import com.supervision.knowsub.entity.vo.knowledge.ModifyKnowledgeReqVO; -import com.supervision.knowsub.entity.vo.knowledge.SaveKnowledgeReqVO; +import com.supervision.knowsub.entity.vo.knowledge.*; import com.supervision.knowsub.enums.FlowTypeEnum; import com.supervision.knowsub.enums.StatusEnum; import com.supervision.knowsub.exception.BusinessException; import com.supervision.knowsub.model.*; import com.supervision.knowsub.service.*; import com.supervision.knowsub.util.UserUtil; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.Instant; import java.time.LocalDateTime; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -49,9 +43,13 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private final KnowledgeFlowService knowledgeFlowService; + private final SystemDeptService systemDeptService; + + private final SystemBaseService systemBaseService; + @Override - public IPage queryKnowledgePage(Integer status, + public IPage queryKnowledgePage(Integer status, String title, String publishDeptId, String baseId, @@ -59,7 +57,28 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { LocalDateTime publishDateBegin, LocalDateTime publishDateEnd, Integer pageNum, Integer pageSize) { String userId = UserUtil.getUser().getId(); - return knowledgeService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, pageNum, pageSize); + IPage knowledgeIPage = knowledgeService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, pageNum, pageSize); + List records = knowledgeIPage.getRecords(); + if (CollUtil.isEmpty(records)){ + return knowledgeIPage; + } + // 获取所有部门 + Set submitDeptSet = records.stream().map(Knowledge::getSubmittedDeptId).collect(Collectors.toSet()); + Set publishDeptSet = records.stream().map(Knowledge::getPublishDeptId).collect(Collectors.toSet()); + Collection deptIdSet = CollUtil.union(submitDeptSet, publishDeptSet); + Map deptMap = systemDeptService.listByIds(deptIdSet).stream().collect(Collectors.toMap(SystemDept::getId, SystemDept::getDeptName)); + // 获取所有子库 + Set baseIdSet = records.stream().map(Knowledge::getBaseId).collect(Collectors.toSet()); + Map baseMap = systemBaseService.listByIds(baseIdSet).stream().collect(Collectors.toMap(SystemBase::getId, SystemBase::getBaseName)); + List list = records.stream().map(knowledge -> { + KnowledgePageResVO node = BeanUtil.copyProperties(knowledge, KnowledgePageResVO.class); + node.setBaseName(baseMap.getOrDefault(knowledge.getBaseId(), "全部")); + node.setSubmitDeptName(deptMap.getOrDefault(knowledge.getSubmittedDeptId(), "未知部门")); + node.setPublishDeptName(deptMap.getOrDefault(knowledge.getPublishDeptId(), "未知部门")); + return node; + }).toList(); + knowledgeIPage.setRecords(list); + return knowledgeIPage; } @Override diff --git a/know_sub_model/src/main/java/com/supervision/knowsub/mapper/KnowledgeMapper.java b/know_sub_model/src/main/java/com/supervision/knowsub/mapper/KnowledgeMapper.java index 8367028..185987a 100644 --- a/know_sub_model/src/main/java/com/supervision/knowsub/mapper/KnowledgeMapper.java +++ b/know_sub_model/src/main/java/com/supervision/knowsub/mapper/KnowledgeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.supervision.knowsub.model.Knowledge; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import org.apache.ibatis.annotations.Param; import java.time.LocalDateTime; @@ -16,14 +17,14 @@ import java.time.LocalDateTime; */ public interface KnowledgeMapper extends BaseMapper { - IPage queryKnowledgePage(@Param("status") Integer status, - @Param("title") String title, - @Param("publishDeptId") String publishDeptId, - @Param("baseId") String baseId, - @Param("submittedDeptId") String submittedDeptId, - @Param("publishDateBegin") LocalDateTime publishDateBegin, - @Param("publishDateEnd") LocalDateTime publishDateEnd, - @Param("userId") String userId, Page page); + IPage queryKnowledgePage(@Param("status") Integer status, + @Param("title") String title, + @Param("publishDeptId") String publishDeptId, + @Param("baseId") String baseId, + @Param("submittedDeptId") String submittedDeptId, + @Param("publishDateBegin") LocalDateTime publishDateBegin, + @Param("publishDateEnd") LocalDateTime publishDateEnd, + @Param("userId") String userId, Page page); } diff --git a/know_sub_model/src/main/java/com/supervision/knowsub/service/KnowledgeService.java b/know_sub_model/src/main/java/com/supervision/knowsub/service/KnowledgeService.java index ea98e8f..09d2499 100644 --- a/know_sub_model/src/main/java/com/supervision/knowsub/service/KnowledgeService.java +++ b/know_sub_model/src/main/java/com/supervision/knowsub/service/KnowledgeService.java @@ -3,6 +3,7 @@ package com.supervision.knowsub.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.knowsub.model.Knowledge; import com.baomidou.mybatisplus.extension.service.IService; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import java.time.LocalDateTime; @@ -19,12 +20,12 @@ public interface KnowledgeService extends IService { * @param pageSize pageSize * @return IPage */ - IPage queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd,String userId, Integer pageNum, Integer pageSize); + IPage queryKnowledgePage(Integer status, + String title, + String publishDeptId, + String baseId, + String submittedDeptId, + LocalDateTime publishDateBegin, + LocalDateTime publishDateEnd, String userId, Integer pageNum, Integer pageSize); } diff --git a/know_sub_model/src/main/java/com/supervision/knowsub/service/impl/KnowledgeServiceImpl.java b/know_sub_model/src/main/java/com/supervision/knowsub/service/impl/KnowledgeServiceImpl.java index 6079c84..9a8849b 100644 --- a/know_sub_model/src/main/java/com/supervision/knowsub/service/impl/KnowledgeServiceImpl.java +++ b/know_sub_model/src/main/java/com/supervision/knowsub/service/impl/KnowledgeServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.knowsub.model.Knowledge; import com.supervision.knowsub.service.KnowledgeService; import com.supervision.knowsub.mapper.KnowledgeMapper; +import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @@ -20,13 +21,13 @@ public class KnowledgeServiceImpl extends ServiceImpl queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd, String userId, Integer pageNum, Integer pageSize) { + public IPage queryKnowledgePage(Integer status, + String title, + String publishDeptId, + String baseId, + String submittedDeptId, + LocalDateTime publishDateBegin, + LocalDateTime publishDateEnd, String userId, Integer pageNum, Integer pageSize) { return this.baseMapper.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, new Page<>(pageNum, pageSize)); } } diff --git a/know_sub_model/src/main/java/com/supervision/knowsub/vo/knowledge/KnowledgePageResVO.java b/know_sub_model/src/main/java/com/supervision/knowsub/vo/knowledge/KnowledgePageResVO.java new file mode 100644 index 0000000..b424b97 --- /dev/null +++ b/know_sub_model/src/main/java/com/supervision/knowsub/vo/knowledge/KnowledgePageResVO.java @@ -0,0 +1,18 @@ +package com.supervision.knowsub.vo.knowledge; + +import com.supervision.knowsub.model.Knowledge; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class KnowledgePageResVO extends Knowledge { + + @Schema(description = "应用子库名称") + private String baseName; + @Schema(description = "报送部门名称") + private String submitDeptName; + @Schema(description = "发文部门名称") + private String publishDeptName; +} diff --git a/know_sub_model/src/main/resources/mapper/KnowledgeMapper.xml b/know_sub_model/src/main/resources/mapper/KnowledgeMapper.xml index e0bf68c..da671a7 100644 --- a/know_sub_model/src/main/resources/mapper/KnowledgeMapper.xml +++ b/know_sub_model/src/main/resources/mapper/KnowledgeMapper.xml @@ -28,7 +28,7 @@ status,submitted_dept_id,create_user_id, create_time,update_user_id,update_time - select t1.* from ks_knowledge t1 left join ks_knowledge_info t2 on t1.info_id = t2.id