提交知识审批部分业务

release_1.0.0
liu 11 months ago
parent fb8b39b876
commit 13de6c99c2

@ -1,13 +1,20 @@
package com.supervision.knowsub.controller.knowledge; package com.supervision.knowsub.controller.knowledge;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.supervision.knowsub.service.KnowledgeFlowService;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import java.time.Instant;
import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime;
@Slf4j @Slf4j
@RestController @RestController
@ -16,10 +23,33 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("knowledgeFlow") @RequestMapping("knowledgeFlow")
public class KnowledgeFlowController { public class KnowledgeFlowController {
private final KnowledgeFlowService knowledgeFlowService;
@Operation(summary = "分页查询知识审批流程") @Operation(summary = "分页查询知识审批流程")
@Parameters({
@Parameter(name = "processStatus", description = "审批状态 1未审批 2已审批", in = ParameterIn.QUERY),
@Parameter(name = "title", description = "标题,支持模糊", in = ParameterIn.QUERY),
@Parameter(name = "publishDeptId", description = "发文部门id", in = ParameterIn.QUERY),
@Parameter(name = "baseId", description = "应用字库ID", in = ParameterIn.QUERY),
@Parameter(name = "submittedDeptId", description = "报送部门ID", in = ParameterIn.QUERY),
@Parameter(name = "flowType", description = "审批类型 1知识报送 2:知识撤回 3 知识删除", in = ParameterIn.QUERY),
@Parameter(name = "publishDateBegin", description = "发文时间开始", in = ParameterIn.QUERY),
@Parameter(name = "publishDateEnd", description = "发文时间结束", in = ParameterIn.QUERY),
@Parameter(name = "pageNum", description = "分页", in = ParameterIn.QUERY),
@Parameter(name = "pageSize", description = "分页", in = ParameterIn.QUERY)
})
@GetMapping("queryKnowledgeFlowPage") @GetMapping("queryKnowledgeFlowPage")
public void queryKnowledgeFlowPage() { public IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus,
@RequestParam(required = false) String title,
@RequestParam(required = false) String publishDeptId,
@RequestParam(required = false) String baseId,
@RequestParam(required = false) String submittedDeptId,
@RequestParam(required = false) Instant flowType,
@RequestParam(required = false) LocalDateTime publishDateBegin,
@RequestParam(required = false) LocalDateTime publishDateEnd,
Integer pageNum, Integer pageSize) {
return knowledgeFlowService.queryKnowledgeFlowPage(processStatus, title, publishDeptId, baseId, submittedDeptId, flowType,
publishDateBegin, publishDateEnd, pageNum, pageSize);
} }
@Operation(summary = "审批知识流程") @Operation(summary = "审批知识流程")
@ -30,11 +60,9 @@ public class KnowledgeFlowController {
@Operation(summary = "查询知识库流转记录") @Operation(summary = "查询知识库流转记录")
@GetMapping("queryKnowledgeFlowRecord") @GetMapping("queryKnowledgeFlowRecord")
public void queryKnowledgeFlowRecord(String knowledgeId){ public void queryKnowledgeFlowRecord(String knowledgeId) {
} }
} }

@ -16,6 +16,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
@Slf4j @Slf4j
@RestController @RestController
@Tag(name = "知识库查询") @Tag(name = "知识库查询")
@ -29,16 +31,24 @@ public class KnowledgeManageController {
@Parameters({ @Parameters({
@Parameter(name = "status", description = "流转状态 为空查全部,1草稿 2通过 3驳回 4已撤回 5已失效 6已删除 10待审批(新增) 11待审批(删除) 12待审批(撤回)", 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 = "title", description = "标题,支持模糊", in = ParameterIn.QUERY),
@Parameter(name = "publishDeptName", description = "发文部门,支持模糊", in = ParameterIn.QUERY), @Parameter(name = "publishDeptId", description = "发文部门id", in = ParameterIn.QUERY),
@Parameter(name = "baseId", description = "应用字库ID", in = ParameterIn.QUERY),
@Parameter(name = "submittedDeptId", description = "报送部门ID", in = ParameterIn.QUERY),
@Parameter(name = "publishDateBegin", description = "发文时间开始", in = ParameterIn.QUERY),
@Parameter(name = "publishDateEnd", description = "发文时间结束", in = ParameterIn.QUERY),
@Parameter(name = "pageNum", description = "分页", in = ParameterIn.QUERY), @Parameter(name = "pageNum", description = "分页", in = ParameterIn.QUERY),
@Parameter(name = "pageSize", description = "分页", in = ParameterIn.QUERY) @Parameter(name = "pageSize", description = "分页", in = ParameterIn.QUERY)
}) })
@GetMapping("queryKnowledgePage") @GetMapping("queryKnowledgePage")
public IPage<Knowledge> queryKnowledgePage(@RequestParam(required = false) Integer status, public IPage<Knowledge> queryKnowledgePage(@RequestParam(required = false) Integer status,
@RequestParam(required = false) String title, @RequestParam(required = false) String title,
@RequestParam(required = false) String publishDeptName, @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) { Integer pageNum, Integer pageSize) {
return knowledgeManageService.queryKnowledgePage(status, title, publishDeptName, pageNum, pageSize); return knowledgeManageService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, pageNum, pageSize);
} }
@Operation(summary = "新增知识库") @Operation(summary = "新增知识库")
@ -50,7 +60,7 @@ public class KnowledgeManageController {
@Operation(summary = "修改知识库(已撤回才能编辑)") @Operation(summary = "修改知识库(已撤回才能编辑)")
@PostMapping("updateKnowledge") @PostMapping("updateKnowledge")
public void updateKnowledge(@RequestBody ModifyKnowledgeReqVO reqVO) { public void updateKnowledge(@RequestBody ModifyKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getKnowledgeId(),"知识ID不能为空"); Assert.notBlank(reqVO.getKnowledgeId(), "知识ID不能为空");
knowledgeManageService.updateKnowledge(reqVO); knowledgeManageService.updateKnowledge(reqVO);
} }

@ -14,7 +14,7 @@ public class KnowledgeDetailResVO {
private Knowledge knowledge; private Knowledge knowledge;
private KnowledgeBaseInfo knowledgeBaseInfo; private KnowledgeInfo knowledgeInfo;
private KnowledgeContext knowledgeContext; private KnowledgeContext knowledgeContext;

@ -1,13 +1,12 @@
package com.supervision.knowsub.entity.vo.knowledge; package com.supervision.knowsub.entity.vo.knowledge;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import com.supervision.knowsub.model.KnowledgeBaseInfo; import com.supervision.knowsub.model.KnowledgeInfo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Min;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
@ -21,6 +20,9 @@ public class SaveKnowledgeReqVO {
@Schema(description = "报送人ID") @Schema(description = "报送人ID")
private String userId; private String userId;
@Schema(description = "应用子库ID")
private String baseId;
@Schema(description = "报送部门ID") @Schema(description = "报送部门ID")
private String submittedDeptId; private String submittedDeptId;
@ -39,8 +41,8 @@ public class SaveKnowledgeReqVO {
@Schema(description = "链接列表") @Schema(description = "链接列表")
private List<KnowledgeLinkVO> linkList; private List<KnowledgeLinkVO> linkList;
@Schema(description = "发布部门") @Schema(description = "发布部门Id")
private String publishDept; private String publishDeptId;
@Schema(description = "发文时间") @Schema(description = "发文时间")
private DateTime publishDate; private DateTime publishDate;
@ -48,6 +50,6 @@ public class SaveKnowledgeReqVO {
@Schema(description = "知识的基础信息") @Schema(description = "知识的基础信息")
private KnowledgeBaseInfo knowledgeBaseInfo; private KnowledgeInfo knowledgeInfo;
} }

@ -0,0 +1,16 @@
package com.supervision.knowsub.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import org.springframework.web.bind.annotation.RequestParam;
import java.time.Instant;
import java.time.LocalDateTime;
public interface KnowledgeFlowService {
IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus,String title, String publishDeptId, String baseId, String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Integer pageNum, Integer pageSize);
}

@ -6,10 +6,20 @@ import com.supervision.knowsub.entity.vo.knowledge.ModifyKnowledgeReqVO;
import com.supervision.knowsub.entity.vo.knowledge.SaveKnowledgeReqVO; import com.supervision.knowsub.entity.vo.knowledge.SaveKnowledgeReqVO;
import com.supervision.knowsub.model.Knowledge; import com.supervision.knowsub.model.Knowledge;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.time.LocalDateTime;
public interface KnowledgeManageService { public interface KnowledgeManageService {
IPage<Knowledge> queryKnowledgePage(Integer status, String title, String publishDeptName, Integer pageNum, Integer pageSize); IPage<Knowledge> queryKnowledgePage(Integer status,
String title,
String publishDeptId,
String baseId,
String submittedDeptId,
LocalDateTime publishDateBegin,
LocalDateTime publishDateEnd,
Integer pageNum, Integer pageSize);
void saveKnowledge(SaveKnowledgeReqVO reqVO); void saveKnowledge(SaveKnowledgeReqVO reqVO);

@ -0,0 +1,42 @@
package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.knowsub.exception.BusinessException;
import com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper;
import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.supervision.knowsub.service.KnowledgeFlowRecordService;
import com.supervision.knowsub.service.KnowledgeFlowService;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.Instant;
import java.time.LocalDateTime;
@Slf4j
@Service
@RequiredArgsConstructor
public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
private final KnowledgeFlowRecordService knowledgeFlowRecordService;
@Override
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus, String title, String publishDeptId, String baseId,
String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Integer pageNum, Integer pageSize) {
// 查询待办
if (1 == processStatus) {
return knowledgeFlowRecordService.queryKnowledgeFlowTodoPage(title, publishDeptId, baseId, submittedDeptId, flowType,
publishDateBegin, publishDateEnd, new Page<>(pageNum, pageSize));
}
// 查询已办
if (2 == processStatus) {
return knowledgeFlowRecordService.queryKnowledgeFlowCompletePage(title, publishDeptId, baseId, submittedDeptId, flowType,
publishDateBegin, publishDateEnd, new Page<>(pageNum, pageSize));
}
throw new BusinessException("不支持的状态类型");
}
}

@ -17,10 +17,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -31,7 +31,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
private final KnowledgeContextService knowledgeContextService; private final KnowledgeContextService knowledgeContextService;
private final KnowledgeBaseInfoService knowledgeBaseInfoService; private final KnowledgeInfoService knowledgeInfoService;
private final KnowledgeAttachmentService knowledgeAttachmentService; private final KnowledgeAttachmentService knowledgeAttachmentService;
@ -43,25 +43,36 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
@Override @Override
public IPage<Knowledge> queryKnowledgePage(Integer status, String title, String publishDeptName, Integer pageNum, Integer pageSize) { public IPage<Knowledge> queryKnowledgePage(Integer status,
String title,
String publishDeptId,
String baseId,
String submittedDeptId,
LocalDateTime publishDateBegin,
LocalDateTime publishDateEnd, Integer pageNum, Integer pageSize) {
String userId = UserUtil.getUser().getId(); String userId = UserUtil.getUser().getId();
return knowledgeService.queryKnowledgePage(status, title, publishDeptName, userId, pageNum, pageSize); return knowledgeService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, pageNum, pageSize);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveKnowledge(SaveKnowledgeReqVO reqVO) { public void saveKnowledge(SaveKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getBaseId(),"应用子库不能为空");
var context = new KnowledgeContext(); var context = new KnowledgeContext();
context.setContext(reqVO.getContent()); context.setContext(reqVO.getContent());
knowledgeContextService.save(context); knowledgeContextService.save(context);
KnowledgeInfo baseInfo = reqVO.getKnowledgeInfo();
baseInfo.setContextId(context.getId());
knowledgeInfoService.save(baseInfo);
Knowledge knowledge = new Knowledge(); Knowledge knowledge = new Knowledge();
knowledge.setTitle(reqVO.getTitle()); knowledge.setTitle(reqVO.getTitle());
knowledge.setContentId(context.getId()); knowledge.setContentId(context.getId());
// TODO 这里目前子库设置为空 knowledge.setInfoId(baseInfo.getId());
knowledge.setBaseId(null); knowledge.setBaseId(reqVO.getBaseId());
knowledge.setPublishDept(reqVO.getPublishDept()); knowledge.setPublishDeptId(reqVO.getPublishDeptId());
// 目前只有人工添加 // 目前只有人工添加
knowledge.setKnowledgeFrom(1); 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());
@ -71,9 +82,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
} }
knowledgeService.save(knowledge); knowledgeService.save(knowledge);
// 保存知识的基本信息 // 保存知识的基本信息
KnowledgeBaseInfo baseInfo = reqVO.getKnowledgeBaseInfo();
baseInfo.setContextId(context.getId());
knowledgeBaseInfoService.save(baseInfo);
// 附件以及URL没添加 // 附件以及URL没添加
for (String fileId : reqVO.getFileIdList()) { for (String fileId : reqVO.getFileIdList()) {
KnowledgeAttachment attachment = new KnowledgeAttachment(); KnowledgeAttachment attachment = new KnowledgeAttachment();
@ -100,6 +109,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
*/ */
@Override @Override
public void updateKnowledge(ModifyKnowledgeReqVO reqVO) { public void updateKnowledge(ModifyKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getBaseId(),"应用子库不能为空");
Knowledge knowledge = knowledgeService.getOptById(reqVO.getKnowledgeId()).orElseThrow(() -> new BusinessException("未找到知识")); Knowledge knowledge = knowledgeService.getOptById(reqVO.getKnowledgeId()).orElseThrow(() -> new BusinessException("未找到知识"));
// 首先校验状态,草稿/已撤回/已失效/驳回,才能修改(通过的,要先撤回才能修改) // 首先校验状态,草稿/已撤回/已失效/驳回,才能修改(通过的,要先撤回才能修改)
Set<Integer> canModifyStatusSet = Set.of(StatusEnum.DRAFT.getStatus(), StatusEnum.RECALL.getStatus(), StatusEnum.INVALID.getStatus(), StatusEnum.REJECT.getStatus()); Set<Integer> canModifyStatusSet = Set.of(StatusEnum.DRAFT.getStatus(), StatusEnum.RECALL.getStatus(), StatusEnum.INVALID.getStatus(), StatusEnum.REJECT.getStatus());
@ -112,8 +122,8 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
// 然后更新 // 然后更新
knowledge.setTitle(reqVO.getTitle()); knowledge.setTitle(reqVO.getTitle());
// TODO 这里目前子库设置为空 knowledge.setBaseId(reqVO.getBaseId());
knowledge.setPublishDept(reqVO.getPublishDept()); knowledge.setPublishDeptId(reqVO.getPublishDeptId());
knowledge.setSubmittedDeptId(reqVO.getSubmittedDeptId()); 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());
@ -123,20 +133,20 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
} }
knowledgeService.updateById(knowledge); knowledgeService.updateById(knowledge);
// 更新基础信息 // 更新基础信息
KnowledgeBaseInfo knowledgeBaseInfo = reqVO.getKnowledgeBaseInfo(); KnowledgeInfo knowledgeInfo = reqVO.getKnowledgeInfo();
Assert.notBlank(knowledgeBaseInfo.getKnowledgeId(), "知识ID不能为空"); Assert.notBlank(knowledgeInfo.getKnowledgeId(), "知识ID不能为空");
// 这里需要用SQL进行更新,不能用封装的updateById,因为前端某些字段可能变为空,用updateById不能让那个想为空的变成空 // 这里需要用SQL进行更新,不能用封装的updateById,因为前端某些字段可能变为空,用updateById不能让那个想为空的变成空
knowledgeBaseInfoService.lambdaUpdate() knowledgeInfoService.lambdaUpdate()
.set(KnowledgeBaseInfo::getPolicyType, knowledgeBaseInfo.getPolicyType()) .set(KnowledgeInfo::getPolicyType, knowledgeInfo.getPolicyType())
.set(KnowledgeBaseInfo::getTerritory, knowledgeBaseInfo.getTerritory()) .set(KnowledgeInfo::getTerritory, knowledgeInfo.getTerritory())
.set(KnowledgeBaseInfo::getPublishScope, knowledgeBaseInfo.getPublishScope()) .set(KnowledgeInfo::getPublishScope, knowledgeInfo.getPublishScope())
.set(KnowledgeBaseInfo::getKnowledgeTag, knowledgeBaseInfo.getKnowledgeTag()) .set(KnowledgeInfo::getKnowledgeTag, knowledgeInfo.getKnowledgeTag())
.set(KnowledgeBaseInfo::getAutoLoseEffect, knowledgeBaseInfo.getAutoLoseEffect()) .set(KnowledgeInfo::getAutoLoseEffect, knowledgeInfo.getAutoLoseEffect())
.set(KnowledgeBaseInfo::getExecTimeBegin, knowledgeBaseInfo.getExecTimeBegin()) .set(KnowledgeInfo::getExecTimeBegin, knowledgeInfo.getExecTimeBegin())
.set(KnowledgeBaseInfo::getExecTimeEnd, knowledgeBaseInfo.getExecTimeEnd()) .set(KnowledgeInfo::getExecTimeEnd, knowledgeInfo.getExecTimeEnd())
.set(KnowledgeBaseInfo::getTimeliness, knowledgeBaseInfo.getTimeliness()) .set(KnowledgeInfo::getTimeliness, knowledgeInfo.getTimeliness())
.set(KnowledgeBaseInfo::getPublishDate, knowledgeBaseInfo.getPublishDate()) .set(KnowledgeInfo::getPublishDate, knowledgeInfo.getPublishDate())
.eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeBaseInfo.getKnowledgeId()).update(); .eq(KnowledgeInfo::getKnowledgeId, knowledgeInfo.getKnowledgeId()).update();
// 有可能更新附件 // 有可能更新附件
updateKnowledgeFile(reqVO, knowledge); updateKnowledgeFile(reqVO, knowledge);
// 有可能更新URL // 有可能更新URL
@ -211,13 +221,13 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
@Override @Override
public KnowledgeDetailResVO queryKnowledgeDetail(String knowledgeId) { public KnowledgeDetailResVO queryKnowledgeDetail(String knowledgeId) {
Knowledge knowledge = knowledgeService.getOptById(knowledgeId).orElseThrow(() -> new BusinessException("未找到知识")); Knowledge knowledge = knowledgeService.getOptById(knowledgeId).orElseThrow(() -> new BusinessException("未找到知识"));
KnowledgeBaseInfo knowledgeBaseInfo = knowledgeBaseInfoService.lambdaQuery().eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeId).oneOpt().orElse(new KnowledgeBaseInfo()); KnowledgeInfo knowledgeInfo = knowledgeInfoService.lambdaQuery().eq(KnowledgeInfo::getKnowledgeId, knowledgeId).oneOpt().orElse(new KnowledgeInfo());
KnowledgeContext knowledgeContext = knowledgeContextService.getOptById(knowledge.getContentId()).orElse(new KnowledgeContext()); KnowledgeContext knowledgeContext = knowledgeContextService.getOptById(knowledge.getContentId()).orElse(new KnowledgeContext());
List<KnowledgeLink> knowledgeLinkList = knowledgeLinkService.lambdaQuery().eq(KnowledgeLink::getKnowledgeId, knowledgeId).list(); List<KnowledgeLink> knowledgeLinkList = knowledgeLinkService.lambdaQuery().eq(KnowledgeLink::getKnowledgeId, knowledgeId).list();
List<KnowledgeAttachment> knowledgeAttachmentList = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list(); List<KnowledgeAttachment> knowledgeAttachmentList = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list();
List<String> fileIdList = knowledgeAttachmentList.stream().map(KnowledgeAttachment::getFileId).toList(); List<String> fileIdList = knowledgeAttachmentList.stream().map(KnowledgeAttachment::getFileId).toList();
List<FileInfo> fileInfos = fileService.listByFileId(fileIdList); List<FileInfo> fileInfos = fileService.listByFileId(fileIdList);
return new KnowledgeDetailResVO(knowledge, knowledgeBaseInfo, knowledgeContext, knowledgeLinkList, fileInfos); return new KnowledgeDetailResVO(knowledge, knowledgeInfo, knowledgeContext, knowledgeLinkList, fileInfos);
} }
@Override @Override
@ -230,7 +240,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
if (flowRecordService.lambdaQuery().eq(KnowledgeFlowRecord::getKnowledgeId, knowledgeId).count() == 0) { if (flowRecordService.lambdaQuery().eq(KnowledgeFlowRecord::getKnowledgeId, knowledgeId).count() == 0) {
// 如果没有走过审批的记录,则可以直接删除 // 如果没有走过审批的记录,则可以直接删除
knowledgeService.removeById(knowledgeId); knowledgeService.removeById(knowledgeId);
knowledgeBaseInfoService.lambdaUpdate().eq(KnowledgeBaseInfo::getKnowledgeId, knowledgeId).remove(); knowledgeInfoService.lambdaUpdate().eq(KnowledgeInfo::getKnowledgeId, knowledgeId).remove();
knowledgeContextService.lambdaUpdate().eq(KnowledgeContext::getId, knowledge.getContentId()).remove(); knowledgeContextService.lambdaUpdate().eq(KnowledgeContext::getId, knowledge.getContentId()).remove();
// 删除文件 // 删除文件
List<KnowledgeAttachment> list = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list(); List<KnowledgeAttachment> list = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list();

@ -1,16 +1,42 @@
package com.supervision.knowsub.mapper; package com.supervision.knowsub.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.knowsub.model.KnowledgeFlowRecord; import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import org.apache.ibatis.annotations.Param;
import java.time.Instant;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
* @description ks_knowledge_flow_record()Mapper * @description ks_knowledge_flow_record()Mapper
* @createDate 2024-06-24 11:35:15 * @createDate 2024-06-24 11:35:15
* @Entity com.supervision.knowsub.model.KnowledgeFlowRecord * @Entity com.supervision.knowsub.model.KnowledgeFlowRecord
*/ */
public interface KnowledgeFlowRecordMapper extends BaseMapper<KnowledgeFlowRecord> { public interface KnowledgeFlowRecordMapper extends BaseMapper<KnowledgeFlowRecord> {
IPage<KnowledgeFlowResVO> queryKnowledgeFlowTodoPage(
@Param("title") String title,
@Param("publishDeptId") String publishDeptId,
@Param("baseId") String baseId,
@Param("submittedDeptId") String submittedDeptId,
@Param("flowType") Instant flowType,
@Param("publishDateBegin") LocalDateTime publishDateBegin,
@Param("publishDateEnd") LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page);
IPage<KnowledgeFlowResVO> queryKnowledgeFlowCompletePage( @Param("title") String title,
@Param("publishDeptId") String publishDeptId,
@Param("baseId") String baseId,
@Param("submittedDeptId") String submittedDeptId,
@Param("flowType") Instant flowType,
@Param("publishDateBegin") LocalDateTime publishDateBegin,
@Param("publishDateEnd") LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page);
} }

@ -1,15 +1,15 @@
package com.supervision.knowsub.mapper; package com.supervision.knowsub.mapper;
import com.supervision.knowsub.model.KnowledgeBaseInfo; import com.supervision.knowsub.model.KnowledgeInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* @author Administrator * @author Administrator
* @description ks_knowledge_base_info()Mapper * @description ks_knowledge_base_info()Mapper
* @createDate 2024-06-24 11:35:15 * @createDate 2024-06-24 11:35:15
* @Entity com.supervision.knowsub.model.KnowledgeBaseInfo * @Entity com.supervision.knowsub.model.KnowledgeInfo
*/ */
public interface KnowledgeBaseInfoMapper extends BaseMapper<KnowledgeBaseInfo> { public interface KnowledgeInfoMapper extends BaseMapper<KnowledgeInfo> {
} }

@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.knowsub.model.Knowledge; import com.supervision.knowsub.model.Knowledge;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
@ -13,7 +16,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface KnowledgeMapper extends BaseMapper<Knowledge> { public interface KnowledgeMapper extends BaseMapper<Knowledge> {
IPage<Knowledge> queryKnowledgePage(Integer status, String title, String publishDeptName,String userId, Page<Knowledge> page); 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);
} }

@ -36,6 +36,12 @@ public class Knowledge implements Serializable {
@Schema(description = "知识内容ID") @Schema(description = "知识内容ID")
private String contentId; private String contentId;
/**
* ID
*/
@Schema(description = "知识基本信息ID")
private String infoId;
/** /**
* ID * ID
*/ */
@ -43,10 +49,10 @@ public class Knowledge implements Serializable {
private String baseId; private String baseId;
/** /**
* () * ID
*/ */
@Schema(description = "发文部门(部门名称全文)") @Schema(description = "发文部门ID")
private String publishDept; private String publishDeptId;
/** /**
* 1 * 1

@ -29,6 +29,16 @@ public class KnowledgeFlowRecord implements Serializable {
*/ */
private String flowId; private String flowId;
/**
* 1 2: 3
*/
private Integer flowType;
/**
* ID
*/
private String flowRuleId;
/** /**
* *
*/ */
@ -39,6 +49,11 @@ public class KnowledgeFlowRecord implements Serializable {
*/ */
private String processUserId; private String processUserId;
/**
*
*/
private String processDeptId;
/** /**
* *
*/ */
@ -49,6 +64,16 @@ public class KnowledgeFlowRecord implements Serializable {
*/ */
private String remark; private String remark;
/**
* ID
*/
private String submitUserId;
/**
*
*/
private String submitDeptId;
/** /**
* ID * ID
*/ */

@ -0,0 +1,71 @@
package com.supervision.knowsub.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
* @TableName ks_knowledge_flow_todo
*/
@TableName(value ="ks_knowledge_flow_todo")
@Data
public class KnowledgeFlowTodo implements Serializable {
/**
*
*/
@TableId
private String id;
/**
* ID
*/
private String flowId;
/**
* 1 2: 3
*/
private Integer flowType;
/**
* ID
*/
private String knowledgeId;
/**
* ID
*/
private String ruleId;
/**
* ID
*/
private String todoUserId;
/**
* ID
*/
private String createUserId;
/**
*
*/
private LocalDateTime createTime;
/**
* ID
*/
private String updateUserId;
/**
*
*/
private LocalDateTime updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -13,9 +13,9 @@ import lombok.Data;
* *
* @TableName ks_knowledge_base_info * @TableName ks_knowledge_base_info
*/ */
@TableName(value = "ks_knowledge_base_info") @TableName(value = "ks_knowledge_info")
@Data @Data
public class KnowledgeBaseInfo implements Serializable { public class KnowledgeInfo implements Serializable {
/** /**
* *
*/ */

@ -1,7 +1,13 @@
package com.supervision.knowsub.service; package com.supervision.knowsub.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.knowsub.model.KnowledgeFlowRecord; import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import java.time.Instant;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
@ -10,4 +16,20 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface KnowledgeFlowRecordService extends IService<KnowledgeFlowRecord> { public interface KnowledgeFlowRecordService extends IService<KnowledgeFlowRecord> {
/**
*
*/
IPage<KnowledgeFlowResVO> queryKnowledgeFlowTodoPage(String title, String publishDeptId, String baseId,
String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page);
/**
*
*/
IPage<KnowledgeFlowResVO> queryKnowledgeFlowCompletePage(String title, String publishDeptId, String baseId,
String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page);
} }

@ -0,0 +1,13 @@
package com.supervision.knowsub.service;
import com.supervision.knowsub.model.KnowledgeFlowTodo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author flevance
* @description ks_knowledge_flow_todo()Service
* @createDate 2024-06-26 11:21:49
*/
public interface KnowledgeFlowTodoService extends IService<KnowledgeFlowTodo> {
}

@ -1,6 +1,6 @@
package com.supervision.knowsub.service; package com.supervision.knowsub.service;
import com.supervision.knowsub.model.KnowledgeBaseInfo; import com.supervision.knowsub.model.KnowledgeInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description ks_knowledge_base_info()Service * @description ks_knowledge_base_info()Service
* @createDate 2024-06-24 11:35:15 * @createDate 2024-06-24 11:35:15
*/ */
public interface KnowledgeBaseInfoService extends IService<KnowledgeBaseInfo> { public interface KnowledgeInfoService extends IService<KnowledgeInfo> {
} }

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.model.Knowledge; import com.supervision.knowsub.model.Knowledge;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
* @description ks_knowledge()Service * @description ks_knowledge()Service
@ -13,13 +15,16 @@ public interface KnowledgeService extends IService<Knowledge> {
/** /**
* *
* @param status
* @param title ,
* @param publishDeptName ,
* @param pageNum pageNum * @param pageNum pageNum
* @param pageSize pageSize * @param pageSize pageSize
* @return IPage<Knowledge> * @return IPage<Knowledge>
*/ */
IPage<Knowledge> queryKnowledgePage(Integer status, String title, String publishDeptName,String userId, Integer pageNum, Integer pageSize); IPage<Knowledge> queryKnowledgePage(Integer status,
String title,
String publishDeptId,
String baseId,
String submittedDeptId,
LocalDateTime publishDateBegin,
LocalDateTime publishDateEnd,String userId, Integer pageNum, Integer pageSize);
} }

@ -1,11 +1,17 @@
package com.supervision.knowsub.service.impl; package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.model.KnowledgeFlowRecord; import com.supervision.knowsub.model.KnowledgeFlowRecord;
import com.supervision.knowsub.service.KnowledgeFlowRecordService; import com.supervision.knowsub.service.KnowledgeFlowRecordService;
import com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper; import com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Instant;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
* @description ks_knowledge_flow_record()Service * @description ks_knowledge_flow_record()Service
@ -15,6 +21,18 @@ import org.springframework.stereotype.Service;
public class KnowledgeFlowRecordServiceImpl extends ServiceImpl<KnowledgeFlowRecordMapper, KnowledgeFlowRecord> public class KnowledgeFlowRecordServiceImpl extends ServiceImpl<KnowledgeFlowRecordMapper, KnowledgeFlowRecord>
implements KnowledgeFlowRecordService{ implements KnowledgeFlowRecordService{
@Override
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowTodoPage(String title, String publishDeptId, String baseId, String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page) {
return this.baseMapper.queryKnowledgeFlowTodoPage(title, publishDeptId, baseId, submittedDeptId, flowType, publishDateBegin, publishDateEnd, page);
}
@Override
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowCompletePage(String title, String publishDeptId, String baseId, String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd, Page<KnowledgeFlowResVO> page) {
return this.baseMapper.queryKnowledgeFlowCompletePage(title, publishDeptId, baseId, submittedDeptId, flowType, publishDateBegin, publishDateEnd, page);
}
} }

@ -0,0 +1,22 @@
package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.model.KnowledgeFlowTodo;
import com.supervision.knowsub.service.KnowledgeFlowTodoService;
import com.supervision.knowsub.mapper.KnowledgeFlowTodoMapper;
import org.springframework.stereotype.Service;
/**
* @author flevance
* @description ks_knowledge_flow_todo()Service
* @createDate 2024-06-26 11:21:49
*/
@Service
public class KnowledgeFlowTodoServiceImpl extends ServiceImpl<KnowledgeFlowTodoMapper, KnowledgeFlowTodo>
implements KnowledgeFlowTodoService{
}

@ -1,9 +1,9 @@
package com.supervision.knowsub.service.impl; package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.model.KnowledgeBaseInfo; import com.supervision.knowsub.model.KnowledgeInfo;
import com.supervision.knowsub.service.KnowledgeBaseInfoService; import com.supervision.knowsub.service.KnowledgeInfoService;
import com.supervision.knowsub.mapper.KnowledgeBaseInfoMapper; import com.supervision.knowsub.mapper.KnowledgeInfoMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
* @createDate 2024-06-24 11:35:15 * @createDate 2024-06-24 11:35:15
*/ */
@Service @Service
public class KnowledgeBaseInfoServiceImpl extends ServiceImpl<KnowledgeBaseInfoMapper, KnowledgeBaseInfo> public class KnowledgeInfoServiceImpl extends ServiceImpl<KnowledgeInfoMapper, KnowledgeInfo>
implements KnowledgeBaseInfoService{ implements KnowledgeInfoService {
} }

@ -8,6 +8,8 @@ import com.supervision.knowsub.service.KnowledgeService;
import com.supervision.knowsub.mapper.KnowledgeMapper; import com.supervision.knowsub.mapper.KnowledgeMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/** /**
* @author Administrator * @author Administrator
* @description ks_knowledge()Service * @description ks_knowledge()Service
@ -18,8 +20,14 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper, Knowledge
implements KnowledgeService { implements KnowledgeService {
@Override @Override
public IPage<Knowledge> queryKnowledgePage(Integer status, String title, String publishDeptName, String userId, Integer pageNum, Integer pageSize) { public IPage<Knowledge> queryKnowledgePage(Integer status,
return this.baseMapper.queryKnowledgePage(status, title, publishDeptName, userId, new Page<>(pageNum, pageSize)); 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));
} }
} }

@ -0,0 +1,26 @@
package com.supervision.knowsub.vo.knowledge;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema
public class KnowledgeFlowResVO {
@Schema(description = "待办ID")
private String todoId;
@Schema(description = "知识ID")
private String knowledgeId;
@Schema(description = "标题")
private String title;
@Schema(description = "审批类型 1知识报送 2:知识撤回 3 知识删除")
private String flowType;
@Schema(description = "提交部门名称")
private String submitDeptName;
@Schema(description = "提交人名称")
private String submitUserName;
@Schema(description = "知识来源 1人工提报")
private String knowledgeFrom;
}

@ -5,23 +5,113 @@
<mapper namespace="com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper"> <mapper namespace="com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper">
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeFlowRecord"> <resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeFlowRecord">
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="knowledgeId" column="knowledge_id" jdbcType="VARCHAR"/> <result property="knowledgeId" column="knowledge_id" jdbcType="VARCHAR"/>
<result property="flowId" column="flow_id" jdbcType="VARCHAR"/> <result property="flowId" column="flow_id" jdbcType="VARCHAR"/>
<result property="processName" column="process_name" jdbcType="VARCHAR"/> <result property="flowType" column="flow_type" jdbcType="INTEGER"/>
<result property="processUserId" column="process_user_id" jdbcType="VARCHAR"/> <result property="flowRuleId" column="flow_rule_id" jdbcType="VARCHAR"/>
<result property="processTime" column="process_time" jdbcType="TIMESTAMP"/> <result property="processName" column="process_name" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/> <result property="processUserId" column="process_user_id" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="processTime" column="process_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,knowledge_id,flow_id, id
,knowledge_id,flow_id,flow_type,
process_name,process_user_id,process_time, process_name,process_user_id,process_time,
remark,create_user_id,create_time, remark,create_user_id,create_time,
update_user_id,update_time update_user_id,update_time
</sql> </sql>
<select id="queryKnowledgeFlowTodoPage" resultType="com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO">
select t1.id as todoId,
t2.id as knowledgeId,
t2.title as title,
t1.flow_type as flowType,
t4.sumitUserName as sumitUserName,
t4.submitDeptName as submitDeptName,
t2.knowledge_from as knowledgeFrom
from ks_knowledge_flow_todo t1
left join ks_knowledge t2 on t1.knowledge_id = t2.id
left join ks_knowledge_info t3 on t2.info_id = t3.id
left join (select any_value(tt2.username) as sumitUserName,
any_value(tt3.dept_name) as submitDeptName,
flow_id
from ks_knowledge_flow_record tt1
left join ks_system_user tt2 on tt1.submit_user_id = tt2.username
left join ks_system_dept tt3 on tt1.submit_dept_id = tt3.dept_name
group by flow_id) t4 on t1.flow_id = t4.flow_id and t1.flow_id = t4.flow_id
<where>
<if test="title != null and title != ''">
where t2.title like #{title}
</if>
<if test="title != null and title != ''">
and t2.base_id = #{baseId}
</if>
<if test="title != null and title != ''">
and t2.publish_dept_id = #{publishDeptId}
</if>
<if test="title != null and title != ''">
and t2.submitted_dept_id = #{submittedDeptId}
</if>
<if test="title != null and title != ''">
and t3.publish_date <![CDATA[ >= ]]> #{publishDateBegin}
</if>
<if test="title != null and title != ''">
and t3.publish_date <![CDATA[ <= ]]> #{publishDateEnd}
</if>
<if test="title != null and title != ''">
and t1.flow_type = #{flowType}
</if>
</where>
</select>
<select id="queryKnowledgeFlowCompletePage"
resultType="com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO">
select t1.id as todoId,
t2.id as knowledgeId,
t2.title as title,
t1.flow_type as flowType,
t4.sumitUserName as sumitUserName,
t4.submitDeptName as submitDeptName,
t2.knowledge_from as knowledgeFrom
from ks_knowledge_flow_record t1
left join ks_knowledge t2 on t1.knowledge_id = t2.id
left join ks_knowledge_info t3 on t2.info_id = t3.id
left join (select any_value(tt2.username) as sumitUserName,
any_value(tt3.dept_name) as submitDeptName,
flow_id
from ks_knowledge_flow_record tt1
left join ks_system_user tt2 on tt1.submit_user_id = tt2.username
left join ks_system_dept tt3 on tt1.submit_dept_id = tt3.dept_name
group by flow_id) t4 on t1.flow_id = t4.flow_id and t1.flow_id = t4.flow_id
<where>
<if test="title != null and title != ''">
where t2.title like #{title}
</if>
<if test="title != null and title != ''">
and t2.base_id = #{baseId}
</if>
<if test="title != null and title != ''">
and t2.publish_dept_id = #{publishDeptId}
</if>
<if test="title != null and title != ''">
and t2.submitted_dept_id = #{submittedDeptId}
</if>
<if test="title != null and title != ''">
and t3.publish_date <![CDATA[ >= ]]> #{publishDateBegin}
</if>
<if test="title != null and title != ''">
and t3.publish_date <![CDATA[ <= ]]> #{publishDateEnd}
</if>
<if test="title != null and title != ''">
and t1.flow_type = #{flowType}
</if>
</where>
</select>
</mapper> </mapper>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.knowsub.mapper.KnowledgeFlowTodoMapper">
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeFlowTodo">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="flowId" column="flow_id" jdbcType="VARCHAR"/>
<result property="flowType" column="flow_type" jdbcType="INTEGER"/>
<result property="knowledgeId" column="knowledge_id" jdbcType="VARCHAR"/>
<result property="ruleId" column="rule_id" jdbcType="VARCHAR"/>
<result property="todoUserId" column="todo_user_id" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
,flow_id,flow_type,knowledge_id,
rule_id,todo_user_id,create_user_id,
create_time,update_user_id,update_time
</sql>
</mapper>

@ -2,9 +2,9 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.knowsub.mapper.KnowledgeBaseInfoMapper"> <mapper namespace="com.supervision.knowsub.mapper.KnowledgeInfoMapper">
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeBaseInfo"> <resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeInfo">
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="contextId" column="context_id" jdbcType="VARCHAR"/> <result property="contextId" column="context_id" jdbcType="VARCHAR"/>
<result property="coverId" column="cover_id" jdbcType="VARCHAR"/> <result property="coverId" column="cover_id" jdbcType="VARCHAR"/>

@ -8,8 +8,9 @@
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="title" column="title" jdbcType="VARCHAR"/> <result property="title" column="title" jdbcType="VARCHAR"/>
<result property="contentId" column="content_id" jdbcType="VARCHAR"/> <result property="contentId" column="content_id" jdbcType="VARCHAR"/>
<result property="infoId" column="info_id" jdbcType="VARCHAR"/>
<result property="baseId" column="base_id" jdbcType="VARCHAR"/> <result property="baseId" column="base_id" jdbcType="VARCHAR"/>
<result property="publishDept" column="publish_dept_id" jdbcType="VARCHAR"/> <result property="publishDeptId" column="publish_dept_id" jdbcType="VARCHAR"/>
<result property="knowledgeFrom" column="knowledge_from" jdbcType="INTEGER"/> <result property="knowledgeFrom" column="knowledge_from" jdbcType="INTEGER"/>
<result property="status" column="status" jdbcType="INTEGER"/> <result property="status" column="status" jdbcType="INTEGER"/>
<result property="submittedDeptId" column="submitted_dept" jdbcType="VARCHAR"/> <result property="submittedDeptId" column="submitted_dept" jdbcType="VARCHAR"/>
@ -22,28 +23,40 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
,title,content_id, ,title,content_id,info_id,
base_id,publish_dept,knowledge_from, base_id,publish_dept_id,knowledge_from,
status,submitted_dept_id,create_user_id, status,submitted_dept_id,create_user_id,
create_time,update_user_id,update_time create_time,update_user_id,update_time
</sql> </sql>
<select id="queryKnowledgePage" resultType="com.supervision.knowsub.model.Knowledge"> <select id="queryKnowledgePage" resultType="com.supervision.knowsub.model.Knowledge">
select select
<include refid="Base_Column_List"/> t1.*
from ks_knowledge from ks_knowledge t1 left join ks_knowledge_info t2 on t1.info_id = t2.id
<where> <where>
-- 如果是null,则是全部,这时查询归属于自己的草稿,和其他非草稿的所有的 -- 如果是null,则是全部,这时查询归属于自己的草稿,和其他非草稿的所有的
<if test="status == null"> <if test="status == null">
and ( draft_belong_user_id = #{userId} or status != 1) and ( draft_belong_user_id = #{userId} or status != 1)
</if> </if>
<if test="status != null"> <if test="status != null">
and ( status = #{status} ) and ( status = #{status} )
</if> </if>
<if test="title != null and title != ''"> <if test="title != null and title != ''">
and title like concat('%',#{title},'%') and title like concat('%',#{title},'%')
</if> </if>
<if test="publishDeptName != null and publishDeptName != ''"> <if test="publishDeptId != null and publishDeptId != ''">
and publish_dept_id like concat('%',#{publishDeptName},'%') and publish_dept_id = #{publishDeptId}
</if>
<if test="baseId != null and baseId != ''">
and base_id = #{baseId}
</if>
<if test="submittedDeptId != null and submittedDeptId != ''">
and submitted_dept_id = #{submittedDeptId}
</if>
<if test="publishDateBegin != null and publishDateBegin != ''">
and create_time <![CDATA[ >= ]]> #{publishDateBegin}
</if>
<if test="publishDateEnd != null and publishDateEnd != ''">
and create_time <![CDATA[ <= ]]> #{publishDateEnd}
</if> </if>
</where> </where>
order by create order by create

Loading…
Cancel
Save