diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/controller/FileController.java b/know_sub_business/src/main/java/com/supervision/knowsub/controller/FileController.java index 09b6c91..ff25e68 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/controller/FileController.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/controller/FileController.java @@ -1,5 +1,6 @@ package com.supervision.knowsub.controller; +import com.supervision.knowsub.exception.BusinessException; import com.supervision.knowsub.service.FileService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -24,6 +25,9 @@ public class FileController { @PostMapping("upload") public String fileUpload(@RequestParam(name = "file") MultipartFile file) throws IOException { byte[] bytes = file.getBytes(); + if (bytes.length > 20 * 1024 * 1024){ + throw new BusinessException("文件过大,文件大小请不要超过20MB"); + } return fileService.uploadFile(file.getOriginalFilename(), bytes); } 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<Knowledge> 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<KnowledgePageResVO> 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<Knowledge> queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd, - Integer pageNum, Integer pageSize); + IPage<KnowledgePageResVO> 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 73b6adf..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,30 +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.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.Set; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -47,9 +43,13 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private final KnowledgeFlowService knowledgeFlowService; + private final SystemDeptService systemDeptService; + + private final SystemBaseService systemBaseService; + @Override - public IPage<Knowledge> queryKnowledgePage(Integer status, + public IPage<KnowledgePageResVO> queryKnowledgePage(Integer status, String title, String publishDeptId, String baseId, @@ -57,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<KnowledgePageResVO> knowledgeIPage = knowledgeService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, pageNum, pageSize); + List<KnowledgePageResVO> records = knowledgeIPage.getRecords(); + if (CollUtil.isEmpty(records)){ + return knowledgeIPage; + } + // 获取所有部门 + Set<String> submitDeptSet = records.stream().map(Knowledge::getSubmittedDeptId).collect(Collectors.toSet()); + Set<String> publishDeptSet = records.stream().map(Knowledge::getPublishDeptId).collect(Collectors.toSet()); + Collection<String> deptIdSet = CollUtil.union(submitDeptSet, publishDeptSet); + Map<String, String> deptMap = systemDeptService.listByIds(deptIdSet).stream().collect(Collectors.toMap(SystemDept::getId, SystemDept::getDeptName)); + // 获取所有子库 + Set<String> baseIdSet = records.stream().map(Knowledge::getBaseId).collect(Collectors.toSet()); + Map<String, String> baseMap = systemBaseService.listByIds(baseIdSet).stream().collect(Collectors.toMap(SystemBase::getId, SystemBase::getBaseName)); + List<KnowledgePageResVO> 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 @@ -74,8 +95,8 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { var context = new KnowledgeContext(); context.setContext(reqVO.getContent()); knowledgeContextService.save(context); - - KnowledgeInfo baseInfo = reqVO.getKnowledgeInfo(); + // 保存基本信息 + KnowledgeInfo baseInfo = Optional.ofNullable(reqVO.getKnowledgeInfo()).orElse(new KnowledgeInfo()); baseInfo.setContextId(context.getId()); knowledgeInfoService.save(baseInfo); 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<Knowledge> { - IPage<Knowledge> 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<Knowledge> page); + IPage<KnowledgePageResVO> 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<Knowledge> 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<Knowledge> { * @param pageSize pageSize * @return IPage<Knowledge> */ - IPage<Knowledge> queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd,String userId, Integer pageNum, Integer pageSize); + IPage<KnowledgePageResVO> 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<KnowledgeMapper, Knowledge implements KnowledgeService { @Override - public IPage<Knowledge> queryKnowledgePage(Integer status, - String title, - String publishDeptId, - String baseId, - String submittedDeptId, - LocalDateTime publishDateBegin, - LocalDateTime publishDateEnd, String userId, Integer pageNum, Integer pageSize) { + public IPage<KnowledgePageResVO> 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 </sql> - <select id="queryKnowledgePage" resultType="com.supervision.knowsub.model.Knowledge"> + <select id="queryKnowledgePage" resultType="com.supervision.knowsub.vo.knowledge.KnowledgePageResVO"> select t1.* from ks_knowledge t1 left join ks_knowledge_info t2 on t1.info_id = t2.id