From fd06e8c95e795a22efd0ad9270c1e2b88047bfd0 Mon Sep 17 00:00:00 2001 From: liu Date: Tue, 25 Jun 2024 16:12:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9F=A5=E8=AF=86=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/知识审批流转.png | Bin 0 -> 28225 bytes .../knowledge/KnowledgeManageController.java | 15 +-- .../vo/knowledge/KnowledgeDetailResVO.java | 24 ++++ .../supervision/knowsub/enums/StatusEnum.java | 11 +- .../knowsub/service/FileService.java | 5 + .../service/KnowledgeManageService.java | 7 ++ .../knowsub/service/impl/FileServiceImpl.java | 11 ++ .../impl/KnowledgeManageServiceImpl.java | 108 ++++++++++++++---- .../supervision/knowsub/model/Knowledge.java | 4 +- 9 files changed, 144 insertions(+), 41 deletions(-) create mode 100644 doc/知识审批流转.png create mode 100644 know_sub_business/src/main/java/com/supervision/knowsub/entity/vo/knowledge/KnowledgeDetailResVO.java diff --git a/doc/知识审批流转.png b/doc/知识审批流转.png new file mode 100644 index 0000000000000000000000000000000000000000..3db500e3f1b21b847f4dc1f62315dc725049df15 GIT binary patch literal 28225 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 literal 0 HcmV?d00001 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 736bf14..5f859cc 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 @@ -2,6 +2,7 @@ package com.supervision.knowsub.controller.knowledge; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.metadata.IPage; +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.service.KnowledgeManageService; @@ -26,7 +27,7 @@ public class KnowledgeManageController { @Operation(summary = "查询知识库分页") @Parameters({ - @Parameter(name = "status", description = "流转状态 为空查全部,1草稿 2待审批 3驳回 4通过 5删除 6已失效", in = ParameterIn.QUERY), + @Parameter(name = "status", description = "流转状态 为空查全部,1草稿 2通过 3驳回 4已撤回 5已失效 6已删除 10待审批(新增) 11待审批(删除) 12待审批(撤回)", in = ParameterIn.QUERY), @Parameter(name = "title", description = "标题,支持模糊", in = ParameterIn.QUERY), @Parameter(name = "publishDeptName", description = "发文部门,支持模糊", in = ParameterIn.QUERY), @Parameter(name = "pageNum", description = "分页", in = ParameterIn.QUERY), @@ -55,19 +56,19 @@ public class KnowledgeManageController { @Operation(summary = "撤回知识库") @GetMapping("recallKnowledge") - public void recallKnowledge() { - + public void recallKnowledge(String knowledgeId) { + knowledgeManageService.recallKnowledge(knowledgeId); } @Operation(summary = "查看知识的详细信息") @GetMapping("queryKnowledgeDetail") - public void queryKnowledgeDetail(String knowledgeId) { - + public KnowledgeDetailResVO queryKnowledgeDetail(String knowledgeId) { + return knowledgeManageService.queryKnowledgeDetail(knowledgeId); } - @Operation(summary = "删除知识库") + @Operation(summary = "删除知识库-逻辑删除") @GetMapping("deleteKnowledge") - public void deleteKnowledge() { + public void deleteKnowledge(String knowledgeId) { } diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/entity/vo/knowledge/KnowledgeDetailResVO.java b/know_sub_business/src/main/java/com/supervision/knowsub/entity/vo/knowledge/KnowledgeDetailResVO.java new file mode 100644 index 0000000..ed16966 --- /dev/null +++ b/know_sub_business/src/main/java/com/supervision/knowsub/entity/vo/knowledge/KnowledgeDetailResVO.java @@ -0,0 +1,24 @@ +package com.supervision.knowsub.entity.vo.knowledge; + +import com.supervision.knowsub.model.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class KnowledgeDetailResVO { + + private Knowledge knowledge; + + private KnowledgeBaseInfo knowledgeBaseInfo; + + private KnowledgeContext knowledgeContext; + + private List knowledgeLinkList; + + private List fileInfoList; +} diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/enums/StatusEnum.java b/know_sub_business/src/main/java/com/supervision/knowsub/enums/StatusEnum.java index 9325359..51b7beb 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/enums/StatusEnum.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/enums/StatusEnum.java @@ -1,14 +1,9 @@ package com.supervision.knowsub.enums; /** - * * 1 草稿 - * * 2 通过 - * * 3 驳回 - * * 4 已撤回 - * * 5 已失效 - * * 10 待审批(新增) - * * 11 待审批(删除) - * * 12 待审批(撤回) + * 1草稿 2通过 3驳回 4已撤回 5已失效 6已删除 10待审批(新增) 11待审批(删除) 12待审批(撤回) + * + * */ public enum StatusEnum { diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/service/FileService.java b/know_sub_business/src/main/java/com/supervision/knowsub/service/FileService.java index c54ae5d..d974e51 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/service/FileService.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/service/FileService.java @@ -1,10 +1,15 @@ package com.supervision.knowsub.service; +import com.supervision.knowsub.model.FileInfo; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + public interface FileService { String uploadFile(String fileName, byte[] fileBytes); void deleteFileById(String fileId); + + List listByFileId(List fileIdList); } 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 130612b..2335208 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 @@ -1,6 +1,7 @@ package com.supervision.knowsub.service; import com.baomidou.mybatisplus.core.metadata.IPage; +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; @@ -13,4 +14,10 @@ public interface KnowledgeManageService { void saveKnowledge(SaveKnowledgeReqVO reqVO); void updateKnowledge(ModifyKnowledgeReqVO reqVO); + + void recallKnowledge(String knowledgeId); + + KnowledgeDetailResVO queryKnowledgeDetail(String knowledgeId); + + void deleteKnowledge(String knowledgeId); } diff --git a/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/FileServiceImpl.java b/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/FileServiceImpl.java index 96c36a2..b6763c8 100644 --- a/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/FileServiceImpl.java +++ b/know_sub_business/src/main/java/com/supervision/knowsub/service/impl/FileServiceImpl.java @@ -1,5 +1,6 @@ package com.supervision.knowsub.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.unit.DataSizeUtil; @@ -16,6 +17,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; @Service @Slf4j @@ -57,4 +60,12 @@ public class FileServiceImpl implements FileService { fileInfoService.removeById(fileId); } } + + @Override + public List listByFileId(List fileIdList) { + if (CollUtil.isEmpty(fileIdList)){ + return new ArrayList<>(); + } + return fileInfoService.lambdaQuery().in(FileInfo::getId, fileIdList).list(); + } } 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 d74826c..c44651f 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 @@ -3,6 +3,7 @@ package com.supervision.knowsub.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.metadata.IPage; +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; @@ -17,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -35,6 +37,8 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private final KnowledgeLinkService knowledgeLinkService; + private final KnowledgeFlowRecordService flowRecordService; + private final FileService fileService; @@ -60,7 +64,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { knowledge.setPublishDept(reqVO.getPublishDept()); // 目前只有人工添加 knowledge.setKnowledgeFrom(1); - knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus()); + knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus()); knowledge.setSubmittedDeptId(reqVO.getSubmittedDeptId()); if (1 == reqVO.getOperate()) { knowledge.setDraftBelongUserId(reqVO.getUserId()); @@ -92,14 +96,13 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { } /** - * * @param reqVO */ @Override public void updateKnowledge(ModifyKnowledgeReqVO reqVO) { Knowledge knowledge = knowledgeService.getOptById(reqVO.getKnowledgeId()).orElseThrow(() -> new BusinessException("未找到知识")); - // 首先校验状态,草稿/已撤回/已失效/驳回,才能修改 - Set canModifyStatusSet = Set.of(StatusEnum.DRAFT.getStatus(), StatusEnum.RECALL.getStatus(), StatusEnum.INVALID.getStatus(),StatusEnum.REJECT.getStatus()); + // 首先校验状态,草稿/已撤回/已失效/驳回,才能修改(通过的,要先撤回才能修改) + Set canModifyStatusSet = Set.of(StatusEnum.DRAFT.getStatus(), StatusEnum.RECALL.getStatus(), StatusEnum.INVALID.getStatus(), StatusEnum.REJECT.getStatus()); if (!canModifyStatusSet.contains(knowledge.getStatus())) { throw new BusinessException("当前状态不支持修改"); } @@ -112,7 +115,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { // TODO 这里目前子库设置为空 knowledge.setPublishDept(reqVO.getPublishDept()); knowledge.setSubmittedDeptId(reqVO.getSubmittedDeptId()); - knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus()); + knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus()); // 如果保存为草稿 if (1 == reqVO.getOperate()) { @@ -121,19 +124,19 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { knowledgeService.updateById(knowledge); // 更新基础信息 KnowledgeBaseInfo knowledgeBaseInfo = reqVO.getKnowledgeBaseInfo(); - Assert.notBlank(knowledgeBaseInfo.getKnowledgeId(),"知识ID不能为空"); + Assert.notBlank(knowledgeBaseInfo.getKnowledgeId(), "知识ID不能为空"); // 这里需要用SQL进行更新,不能用封装的updateById,因为前端某些字段可能变为空,用updateById不能让那个想为空的变成空 knowledgeBaseInfoService.lambdaUpdate() - .set(KnowledgeBaseInfo::getPolicyType,knowledgeBaseInfo.getPolicyType()) - .set(KnowledgeBaseInfo::getTerritory,knowledgeBaseInfo.getTerritory()) - .set(KnowledgeBaseInfo::getPublishScope,knowledgeBaseInfo.getPublishScope()) - .set(KnowledgeBaseInfo::getKnowledgeTag,knowledgeBaseInfo.getKnowledgeTag()) - .set(KnowledgeBaseInfo::getAutoLoseEffect,knowledgeBaseInfo.getAutoLoseEffect()) - .set(KnowledgeBaseInfo::getExecTimeBegin,knowledgeBaseInfo.getExecTimeBegin()) - .set(KnowledgeBaseInfo::getExecTimeEnd,knowledgeBaseInfo.getExecTimeEnd()) - .set(KnowledgeBaseInfo::getTimeliness,knowledgeBaseInfo.getTimeliness()) - .set(KnowledgeBaseInfo::getPublishDate,knowledgeBaseInfo.getPublishDate()) - .eq(KnowledgeBaseInfo::getKnowledgeId,knowledgeBaseInfo.getKnowledgeId()).update(); + .set(KnowledgeBaseInfo::getPolicyType, knowledgeBaseInfo.getPolicyType()) + .set(KnowledgeBaseInfo::getTerritory, knowledgeBaseInfo.getTerritory()) + .set(KnowledgeBaseInfo::getPublishScope, knowledgeBaseInfo.getPublishScope()) + .set(KnowledgeBaseInfo::getKnowledgeTag, knowledgeBaseInfo.getKnowledgeTag()) + .set(KnowledgeBaseInfo::getAutoLoseEffect, knowledgeBaseInfo.getAutoLoseEffect()) + .set(KnowledgeBaseInfo::getExecTimeBegin, knowledgeBaseInfo.getExecTimeBegin()) + .set(KnowledgeBaseInfo::getExecTimeEnd, knowledgeBaseInfo.getExecTimeEnd()) + .set(KnowledgeBaseInfo::getTimeliness, knowledgeBaseInfo.getTimeliness()) + .set(KnowledgeBaseInfo::getPublishDate, knowledgeBaseInfo.getPublishDate()) + .eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeBaseInfo.getKnowledgeId()).update(); // 有可能更新附件 updateKnowledgeFile(reqVO, knowledge); // 有可能更新URL @@ -147,7 +150,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private void updateKnowledgeLink(ModifyKnowledgeReqVO reqVO, Knowledge knowledge) { // 直接删除原来的 - knowledgeLinkService.lambdaUpdate().eq(KnowledgeLink::getKnowledgeId,knowledge.getId()).remove(); + knowledgeLinkService.lambdaUpdate().eq(KnowledgeLink::getKnowledgeId, knowledge.getId()).remove(); for (KnowledgeLinkVO knowLedgeLinkVO : reqVO.getLinkList()) { KnowledgeLink knowledgeLink = new KnowledgeLink(); knowledgeLink.setLinkName(knowLedgeLinkVO.getLinkName()); @@ -160,28 +163,28 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private void updateKnowledgeFile(ModifyKnowledgeReqVO reqVO, Knowledge knowledge) { // 获取数据库中的附件ID List oldFileList = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledge.getId()).list(); - if (CollUtil.isEmpty(reqVO.getFileIdList())){ - if (CollUtil.isNotEmpty(oldFileList)){ - knowledgeAttachmentService.lambdaUpdate().eq(KnowledgeAttachment::getKnowledgeId,knowledge.getId()).remove(); + if (CollUtil.isEmpty(reqVO.getFileIdList())) { + if (CollUtil.isNotEmpty(oldFileList)) { + knowledgeAttachmentService.lambdaUpdate().eq(KnowledgeAttachment::getKnowledgeId, knowledge.getId()).remove(); // 删除文件 for (KnowledgeAttachment knowledgeAttachment : oldFileList) { fileService.deleteFileById(knowledgeAttachment.getFileId()); } } - }else { + } else { List newFileIdList = reqVO.getFileIdList(); // 遍历旧的附件,如果新的附件列表中不包含,则删除 for (KnowledgeAttachment oldFile : oldFileList) { - if (!newFileIdList.contains(oldFile.getId())){ - knowledgeAttachmentService.lambdaUpdate().eq(KnowledgeAttachment::getFileId,oldFile.getId()).remove(); + if (!newFileIdList.contains(oldFile.getId())) { + knowledgeAttachmentService.lambdaUpdate().eq(KnowledgeAttachment::getFileId, oldFile.getId()).remove(); fileService.deleteFileById(oldFile.getFileId()); } } List oldFileIdList = oldFileList.stream().map(KnowledgeAttachment::getFileId).toList(); // 再添加新的附件 for (String fileId : reqVO.getFileIdList()) { - if (!oldFileIdList.contains(fileId)){ + if (!oldFileIdList.contains(fileId)) { KnowledgeAttachment attachment = new KnowledgeAttachment(); attachment.setKnowledgeId(knowledge.getId()); attachment.setFileId(fileId); @@ -193,5 +196,62 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { } + @Override + public void recallKnowledge(String knowledgeId) { + Knowledge knowledge = knowledgeService.getOptById(knowledgeId).orElseThrow(() -> new BusinessException("未找到知识")); + // 只有通过状态或已失效状态才支持撤回 + Set canRecallStatusSet = Set.of(StatusEnum.PASS.getStatus(), StatusEnum.INVALID.getStatus()); + if (!canRecallStatusSet.contains(knowledge.getStatus())) { + throw new BusinessException("该知识状态不能撤回"); + } + // TODO 走撤回流程 + + } + + @Override + public KnowledgeDetailResVO queryKnowledgeDetail(String knowledgeId) { + Knowledge knowledge = knowledgeService.getOptById(knowledgeId).orElseThrow(() -> new BusinessException("未找到知识")); + KnowledgeBaseInfo knowledgeBaseInfo = knowledgeBaseInfoService.lambdaQuery().eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeId).oneOpt().orElse(new KnowledgeBaseInfo()); + KnowledgeContext knowledgeContext = knowledgeContextService.getOptById(knowledge.getContentId()).orElse(new KnowledgeContext()); + List knowledgeLinkList = knowledgeLinkService.lambdaQuery().eq(KnowledgeLink::getKnowledgeId, knowledgeId).list(); + List knowledgeAttachmentList = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list(); + List fileIdList = knowledgeAttachmentList.stream().map(KnowledgeAttachment::getFileId).toList(); + List fileInfos = fileService.listByFileId(fileIdList); + return new KnowledgeDetailResVO(knowledge, knowledgeBaseInfo, knowledgeContext, knowledgeLinkList, fileInfos); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteKnowledge(String knowledgeId) { + // 删除是逻辑删除,如果当前状态是草稿,且没有走过审批流程,则可以直接删除 + Knowledge knowledge = knowledgeService.getOptById(knowledgeId).orElseThrow(() -> new BusinessException("未找到知识")); + if (Objects.equals(StatusEnum.DRAFT.getStatus(), knowledge.getStatus())) { + // 需要判断之前是否走过审批流程 + if (flowRecordService.lambdaQuery().eq(KnowledgeFlowRecord::getKnowledgeId, knowledgeId).count() == 0) { + // 如果没有走过审批的记录,则可以直接删除 + knowledgeService.removeById(knowledgeId); + knowledgeBaseInfoService.lambdaUpdate().eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeId).remove(); + knowledgeContextService.lambdaUpdate().eq(KnowledgeContext::getId, knowledge.getContentId()).remove(); + // 删除文件 + List list = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list(); + List fileIdList = list.stream().map(KnowledgeAttachment::getFileId).toList(); + fileService.listByFileId(fileIdList); + knowledgeAttachmentService.lambdaUpdate().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).remove(); + } else { + // 如果有过审批记录,则直接修改状态为删除 + knowledge.setStatus(StatusEnum.DELETE.getStatus()); + knowledgeService.updateById(knowledge); + } + } + // 如果非草稿,则校验是否是通过/驳回/已失效状态,如果是,则需要走审批流程进行删除 + Set canDeleteStatusSet = Set.of(StatusEnum.PASS.getStatus(), StatusEnum.REJECT.getStatus(), StatusEnum.INVALID.getStatus()); + if (canDeleteStatusSet.contains(knowledge.getStatus())) { + // TODO 这时需要走审批流程进行删除 + } else { + throw new BusinessException("审批中的知识不支持删除"); + } + + + } } diff --git a/know_sub_model/src/main/java/com/supervision/knowsub/model/Knowledge.java b/know_sub_model/src/main/java/com/supervision/knowsub/model/Knowledge.java index 7b976cb..8d9b5d1 100644 --- a/know_sub_model/src/main/java/com/supervision/knowsub/model/Knowledge.java +++ b/know_sub_model/src/main/java/com/supervision/knowsub/model/Knowledge.java @@ -55,9 +55,9 @@ public class Knowledge implements Serializable { private Integer knowledgeFrom; /** - * 流转状态 1草稿 2待审批 3驳回 4通过 5已失效 6已撤回 + * 流转状态 */ - @Schema(description = "流转状态 1草稿 2待审批 3驳回 4通过 5已失效 6已撤回") + @Schema(description = "流转状态 1草稿 2通过 3驳回 4已撤回 5已失效 6已删除 10待审批(新增) 11待审批(删除) 12待审批(撤回)") private Integer status; /**