提交知识审批部分业务

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

@ -1,13 +1,20 @@
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.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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.time.Instant;
import java.time.LocalDateTime;
@Slf4j
@RestController
@ -16,10 +23,33 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("knowledgeFlow")
public class KnowledgeFlowController {
private final KnowledgeFlowService knowledgeFlowService;
@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")
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 = "审批知识流程")
@ -30,11 +60,9 @@ public class KnowledgeFlowController {
@Operation(summary = "查询知识库流转记录")
@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 org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
@Slf4j
@RestController
@Tag(name = "知识库查询")
@ -29,16 +31,24 @@ public class KnowledgeManageController {
@Parameters({
@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 = "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 = "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 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) {
return knowledgeManageService.queryKnowledgePage(status, title, publishDeptName, pageNum, pageSize);
return knowledgeManageService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, pageNum, pageSize);
}
@Operation(summary = "新增知识库")
@ -50,7 +60,7 @@ public class KnowledgeManageController {
@Operation(summary = "修改知识库(已撤回才能编辑)")
@PostMapping("updateKnowledge")
public void updateKnowledge(@RequestBody ModifyKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getKnowledgeId(),"知识ID不能为空");
Assert.notBlank(reqVO.getKnowledgeId(), "知识ID不能为空");
knowledgeManageService.updateKnowledge(reqVO);
}

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

@ -1,13 +1,12 @@
package com.supervision.knowsub.entity.vo.knowledge;
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 jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@ -21,6 +20,9 @@ public class SaveKnowledgeReqVO {
@Schema(description = "报送人ID")
private String userId;
@Schema(description = "应用子库ID")
private String baseId;
@Schema(description = "报送部门ID")
private String submittedDeptId;
@ -39,8 +41,8 @@ public class SaveKnowledgeReqVO {
@Schema(description = "链接列表")
private List<KnowledgeLinkVO> linkList;
@Schema(description = "发布部门")
private String publishDept;
@Schema(description = "发布部门Id")
private String publishDeptId;
@Schema(description = "发文时间")
private DateTime publishDate;
@ -48,6 +50,6 @@ public class SaveKnowledgeReqVO {
@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.model.Knowledge;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.time.LocalDateTime;
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);

@ -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.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -31,7 +31,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
private final KnowledgeContextService knowledgeContextService;
private final KnowledgeBaseInfoService knowledgeBaseInfoService;
private final KnowledgeInfoService knowledgeInfoService;
private final KnowledgeAttachmentService knowledgeAttachmentService;
@ -43,25 +43,36 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
@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();
return knowledgeService.queryKnowledgePage(status, title, publishDeptName, userId, pageNum, pageSize);
return knowledgeService.queryKnowledgePage(status, title, publishDeptId, baseId, submittedDeptId, publishDateBegin, publishDateEnd, userId, pageNum, pageSize);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveKnowledge(SaveKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getBaseId(),"应用子库不能为空");
var context = new KnowledgeContext();
context.setContext(reqVO.getContent());
knowledgeContextService.save(context);
KnowledgeInfo baseInfo = reqVO.getKnowledgeInfo();
baseInfo.setContextId(context.getId());
knowledgeInfoService.save(baseInfo);
Knowledge knowledge = new Knowledge();
knowledge.setTitle(reqVO.getTitle());
knowledge.setContentId(context.getId());
// TODO 这里目前子库设置为空
knowledge.setBaseId(null);
knowledge.setPublishDept(reqVO.getPublishDept());
knowledge.setInfoId(baseInfo.getId());
knowledge.setBaseId(reqVO.getBaseId());
knowledge.setPublishDeptId(reqVO.getPublishDeptId());
// 目前只有人工添加
knowledge.setKnowledgeFrom(1);
knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus());
@ -71,9 +82,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
}
knowledgeService.save(knowledge);
// 保存知识的基本信息
KnowledgeBaseInfo baseInfo = reqVO.getKnowledgeBaseInfo();
baseInfo.setContextId(context.getId());
knowledgeBaseInfoService.save(baseInfo);
// 附件以及URL没添加
for (String fileId : reqVO.getFileIdList()) {
KnowledgeAttachment attachment = new KnowledgeAttachment();
@ -100,6 +109,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
*/
@Override
public void updateKnowledge(ModifyKnowledgeReqVO reqVO) {
Assert.notBlank(reqVO.getBaseId(),"应用子库不能为空");
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());
@ -112,8 +122,8 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
// 然后更新
knowledge.setTitle(reqVO.getTitle());
// TODO 这里目前子库设置为空
knowledge.setPublishDept(reqVO.getPublishDept());
knowledge.setBaseId(reqVO.getBaseId());
knowledge.setPublishDeptId(reqVO.getPublishDeptId());
knowledge.setSubmittedDeptId(reqVO.getSubmittedDeptId());
knowledge.setStatus(reqVO.getOperate() == 1 ? StatusEnum.DRAFT.getStatus() : StatusEnum.WAIT_APPROVAL.getStatus());
@ -123,20 +133,20 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
}
knowledgeService.updateById(knowledge);
// 更新基础信息
KnowledgeBaseInfo knowledgeBaseInfo = reqVO.getKnowledgeBaseInfo();
Assert.notBlank(knowledgeBaseInfo.getKnowledgeId(), "知识ID不能为空");
KnowledgeInfo knowledgeInfo = reqVO.getKnowledgeInfo();
Assert.notBlank(knowledgeInfo.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();
knowledgeInfoService.lambdaUpdate()
.set(KnowledgeInfo::getPolicyType, knowledgeInfo.getPolicyType())
.set(KnowledgeInfo::getTerritory, knowledgeInfo.getTerritory())
.set(KnowledgeInfo::getPublishScope, knowledgeInfo.getPublishScope())
.set(KnowledgeInfo::getKnowledgeTag, knowledgeInfo.getKnowledgeTag())
.set(KnowledgeInfo::getAutoLoseEffect, knowledgeInfo.getAutoLoseEffect())
.set(KnowledgeInfo::getExecTimeBegin, knowledgeInfo.getExecTimeBegin())
.set(KnowledgeInfo::getExecTimeEnd, knowledgeInfo.getExecTimeEnd())
.set(KnowledgeInfo::getTimeliness, knowledgeInfo.getTimeliness())
.set(KnowledgeInfo::getPublishDate, knowledgeInfo.getPublishDate())
.eq(KnowledgeInfo::getKnowledgeId, knowledgeInfo.getKnowledgeId()).update();
// 有可能更新附件
updateKnowledgeFile(reqVO, knowledge);
// 有可能更新URL
@ -211,13 +221,13 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
@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());
KnowledgeInfo knowledgeInfo = knowledgeInfoService.lambdaQuery().eq(KnowledgeInfo::getKnowledgeId, knowledgeId).oneOpt().orElse(new KnowledgeInfo());
KnowledgeContext knowledgeContext = knowledgeContextService.getOptById(knowledge.getContentId()).orElse(new KnowledgeContext());
List<KnowledgeLink> knowledgeLinkList = knowledgeLinkService.lambdaQuery().eq(KnowledgeLink::getKnowledgeId, knowledgeId).list();
List<KnowledgeAttachment> knowledgeAttachmentList = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list();
List<String> fileIdList = knowledgeAttachmentList.stream().map(KnowledgeAttachment::getFileId).toList();
List<FileInfo> fileInfos = fileService.listByFileId(fileIdList);
return new KnowledgeDetailResVO(knowledge, knowledgeBaseInfo, knowledgeContext, knowledgeLinkList, fileInfos);
return new KnowledgeDetailResVO(knowledge, knowledgeInfo, knowledgeContext, knowledgeLinkList, fileInfos);
}
@Override
@ -230,7 +240,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService {
if (flowRecordService.lambdaQuery().eq(KnowledgeFlowRecord::getKnowledgeId, knowledgeId).count() == 0) {
// 如果没有走过审批的记录,则可以直接删除
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();
// 删除文件
List<KnowledgeAttachment> list = knowledgeAttachmentService.lambdaQuery().eq(KnowledgeAttachment::getKnowledgeId, knowledgeId).list();

@ -1,16 +1,42 @@
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.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
* @description ks_knowledge_flow_record()Mapper
* @createDate 2024-06-24 11:35:15
* @Entity com.supervision.knowsub.model.KnowledgeFlowRecord
*/
* @author Administrator
* @description ks_knowledge_flow_record()Mapper
* @createDate 2024-06-24 11:35:15
* @Entity com.supervision.knowsub.model.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;
import com.supervision.knowsub.model.KnowledgeBaseInfo;
import com.supervision.knowsub.model.KnowledgeInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Administrator
* @description ks_knowledge_base_info()Mapper
* @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.supervision.knowsub.model.Knowledge;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
/**
* @author Administrator
@ -13,7 +16,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
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")
private String contentId;
/**
* ID
*/
@Schema(description = "知识基本信息ID")
private String infoId;
/**
* ID
*/
@ -43,10 +49,10 @@ public class Knowledge implements Serializable {
private String baseId;
/**
* ()
* ID
*/
@Schema(description = "发文部门(部门名称全文)")
private String publishDept;
@Schema(description = "发文部门ID")
private String publishDeptId;
/**
* 1

@ -29,6 +29,16 @@ public class KnowledgeFlowRecord implements Serializable {
*/
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 processDeptId;
/**
*
*/
@ -49,6 +64,16 @@ public class KnowledgeFlowRecord implements Serializable {
*/
private String remark;
/**
* ID
*/
private String submitUserId;
/**
*
*/
private String submitDeptId;
/**
* 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(value = "ks_knowledge_base_info")
@TableName(value = "ks_knowledge_info")
@Data
public class KnowledgeBaseInfo implements Serializable {
public class KnowledgeInfo implements Serializable {
/**
*
*/

@ -1,7 +1,13 @@
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.baomidou.mybatisplus.extension.service.IService;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import java.time.Instant;
import java.time.LocalDateTime;
/**
* @author Administrator
@ -10,4 +16,20 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
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;
import com.supervision.knowsub.model.KnowledgeBaseInfo;
import com.supervision.knowsub.model.KnowledgeInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description ks_knowledge_base_info()Service
* @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.baomidou.mybatisplus.extension.service.IService;
import java.time.LocalDateTime;
/**
* @author Administrator
* @description ks_knowledge()Service
@ -13,13 +15,16 @@ public interface KnowledgeService extends IService<Knowledge> {
/**
*
* @param status
* @param title ,
* @param publishDeptName ,
* @param pageNum pageNum
* @param pageSize pageSize
* @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;
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.supervision.knowsub.model.KnowledgeFlowRecord;
import com.supervision.knowsub.service.KnowledgeFlowRecordService;
import com.supervision.knowsub.mapper.KnowledgeFlowRecordMapper;
import com.supervision.knowsub.vo.knowledge.KnowledgeFlowResVO;
import org.springframework.stereotype.Service;
import java.time.Instant;
import java.time.LocalDateTime;
/**
* @author Administrator
* @description ks_knowledge_flow_record()Service
@ -15,6 +21,18 @@ import org.springframework.stereotype.Service;
public class KnowledgeFlowRecordServiceImpl extends ServiceImpl<KnowledgeFlowRecordMapper, KnowledgeFlowRecord>
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;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.model.KnowledgeBaseInfo;
import com.supervision.knowsub.service.KnowledgeBaseInfoService;
import com.supervision.knowsub.mapper.KnowledgeBaseInfoMapper;
import com.supervision.knowsub.model.KnowledgeInfo;
import com.supervision.knowsub.service.KnowledgeInfoService;
import com.supervision.knowsub.mapper.KnowledgeInfoMapper;
import org.springframework.stereotype.Service;
/**
@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
* @createDate 2024-06-24 11:35:15
*/
@Service
public class KnowledgeBaseInfoServiceImpl extends ServiceImpl<KnowledgeBaseInfoMapper, KnowledgeBaseInfo>
implements KnowledgeBaseInfoService{
public class KnowledgeInfoServiceImpl extends ServiceImpl<KnowledgeInfoMapper, KnowledgeInfo>
implements KnowledgeInfoService {
}

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

@ -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">
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeFlowRecord">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="knowledgeId" column="knowledge_id" jdbcType="VARCHAR"/>
<result property="flowId" column="flow_id" jdbcType="VARCHAR"/>
<result property="processName" column="process_name" jdbcType="VARCHAR"/>
<result property="processUserId" column="process_user_id" jdbcType="VARCHAR"/>
<result property="processTime" column="process_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" 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"/>
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="knowledgeId" column="knowledge_id" jdbcType="VARCHAR"/>
<result property="flowId" column="flow_id" jdbcType="VARCHAR"/>
<result property="flowType" column="flow_type" jdbcType="INTEGER"/>
<result property="flowRuleId" column="flow_rule_id" jdbcType="VARCHAR"/>
<result property="processName" column="process_name" jdbcType="VARCHAR"/>
<result property="processUserId" column="process_user_id" jdbcType="VARCHAR"/>
<result property="processTime" column="process_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" 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,knowledge_id,flow_id,
id
,knowledge_id,flow_id,flow_type,
process_name,process_user_id,process_time,
remark,create_user_id,create_time,
update_user_id,update_time
</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>

@ -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
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"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"/>
<result property="contextId" column="context_id" jdbcType="VARCHAR"/>
<result property="coverId" column="cover_id" jdbcType="VARCHAR"/>

@ -8,8 +8,9 @@
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="title" column="title" 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="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="status" column="status" jdbcType="INTEGER"/>
<result property="submittedDeptId" column="submitted_dept" jdbcType="VARCHAR"/>
@ -22,28 +23,40 @@
<sql id="Base_Column_List">
id
,title,content_id,
base_id,publish_dept,knowledge_from,
,title,content_id,info_id,
base_id,publish_dept_id,knowledge_from,
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
<include refid="Base_Column_List"/>
from ks_knowledge
t1.*
from ks_knowledge t1 left join ks_knowledge_info t2 on t1.info_id = t2.id
<where>
-- 如果是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 test="status != null">
and ( status = #{status} )
and ( status = #{status} )
</if>
<if test="title != null and title != ''">
and title like concat('%',#{title},'%')
</if>
<if test="publishDeptName != null and publishDeptName != ''">
and publish_dept_id like concat('%',#{publishDeptName},'%')
<if test="publishDeptId != null and publishDeptId != ''">
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>
</where>
order by create

Loading…
Cancel
Save