Merge remote-tracking branch 'origin/dev_1.0.0' into dev_1.0.0

release_1.0.0
xueqingkun 8 months ago
commit 4919b5b58c

@ -15,9 +15,9 @@ public class MyKnowledgeStatisticsResVO {
private LocalDateTime lastLoginTime;
/**
* (稿,稿)
*
*/
@Schema(description = "全量知识(所有已通过的知识,以及自己提报的未通过的知识)")
@Schema(description = "全量知识")
private Long knowledgeCount;
/**

@ -6,10 +6,9 @@ import com.supervision.knowsub.entity.vo.homepage.MyKnowledgeStatisticsResVO;
import com.supervision.knowsub.enums.StatusEnum;
import com.supervision.knowsub.exception.BusinessException;
import com.supervision.knowsub.model.Knowledge;
import com.supervision.knowsub.model.KnowledgeFlowTodo;
import com.supervision.knowsub.model.SystemUser;
import com.supervision.knowsub.service.HomepageService;
import com.supervision.knowsub.service.KnowledgeService;
import com.supervision.knowsub.service.SystemUserService;
import com.supervision.knowsub.service.*;
import com.supervision.knowsub.util.UserUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -24,27 +23,76 @@ public class HomepageServiceImpl implements HomepageService {
private final SystemUserService systemUserService;
private final KnowledgeFlowTodoService knowledgeFlowTodoService;
private final SystemFlowRuleService systemFlowRuleService;
private final KnowledgeFlowRecordService knowledgeFlowRecordService;
private final KnowledgeSubmitRecordService knowledgeSubmitRecordService;
/**
*
*
*
* 0
* <p>
* :,,
* <p>
*
*
*
*
* :
*
* : ,使,,
* <p>
*
*
*
*
* : ,
*
*
* @return
*/
@Override
public MyKnowledgeStatisticsResVO queryMyKnowledgeStatistics() {
UserInfo user = UserUtil.getUser();
SystemUser systemUser = systemUserService.getOptById(user.getId()).orElseThrow(() -> new BusinessException("未找到用户"));
MyKnowledgeStatisticsResVO resVO = new MyKnowledgeStatisticsResVO();
resVO.setUserName(user.getUsername());
resVO.setLastLoginTime(systemUser.getRecentLoginTime());
// 首先查询所有通过
Long passTotalCount = knowledgeService.lambdaQuery().eq(Knowledge::getStatus, StatusEnum.PASS.getStatus()).count();
// 然后找到属于自己的知识的草稿
Long count1 = knowledgeService.lambdaQuery().ne(Knowledge::getStatus, StatusEnum.PASS.getStatus())
.eq(Knowledge::getDraftBelongUserId, user.getId()).count();
// resVO.setKnowledgeCount();
// resVO.setWaitProcessCount();
// resVO.setPassProcessCount();
// resVO.setRejectProcessCount();
// resVO.setInvalidProcessCount();
return null;
// 首先查询用户是否有审批的权限,
Integer isConfigProcess = systemFlowRuleService.queryUserIsConfigProcess(user.getId());
// 如果用户有审批权限,则以审批人的视角
if (0 < isConfigProcess) {
// 全量知识,所有审批通过的
resVO.setKnowledgeCount(knowledgeService.lambdaQuery().eq(Knowledge::getStatus, StatusEnum.PASS.getStatus()).count());
// 待审批
resVO.setWaitProcessCount(knowledgeFlowTodoService.lambdaQuery().eq(KnowledgeFlowTodo::getTodoUserId, user.getId()).count());
// 由我审批并标记为审批通过的数量
resVO.setPassProcessCount(knowledgeFlowRecordService.queryPassProcessCountByUser(user.getId(), 1, null));
// 由我审批并标记为“驳回”的知识数量。
resVO.setRejectProcessCount(knowledgeFlowRecordService.queryPassProcessCountByUser(user.getId(), 2, null));
// 查询由我审批且目前已失效的
resVO.setInvalidProcessCount(knowledgeFlowRecordService.queryPassProcessCountByUser(user.getId(), null, null));
}
// 没有被配置审批权限,则以报送人员视角进行统计
else {
// 首先查询所有通过
Long passTotalCount = knowledgeService.lambdaQuery().eq(Knowledge::getStatus, StatusEnum.PASS.getStatus()).count();
// 然后找到属于自己的知识的草稿
Long userSelfCount = knowledgeService.lambdaQuery().ne(Knowledge::getStatus, StatusEnum.PASS.getStatus())
.eq(Knowledge::getDraftBelongUserId, user.getId()).count();
resVO.setKnowledgeCount(passTotalCount + userSelfCount);
// 待审批:我提交的且当前处于“待审批”状态的知识数量。
resVO.setWaitProcessCount(knowledgeSubmitRecordService.queryKnowledgeSubmitTodoCount(user.getId()));
resVO.setRejectProcessCount(knowledgeSubmitRecordService.queryKnowledgeSubmitStatusCount(user.getId(), StatusEnum.REJECT.getStatus()));
resVO.setInvalidProcessCount(knowledgeSubmitRecordService.queryKnowledgeSubmitStatusCount(user.getId(), StatusEnum.INVALID.getStatus()));
resVO.setPassProcessCount(knowledgeSubmitRecordService.queryKnowledgeSubmitStatusCount(user.getId(), StatusEnum.PASS.getStatus()));
}
return resVO;
}
}

@ -50,6 +50,8 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
private final SystemDeptService systemDeptService;
private final KnowledgeSubmitRecordService knowledgeSubmitRecordService;
@Override
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus, String title, String publishDeptId, String baseId,
String submittedDeptId, Instant flowType,
@ -112,6 +114,15 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
.submitDeptId(deptId)
.build();
knowledgeFlowRecordService.save(knowledgeFlowRecord);
// 如果是报送的话,需要记录报送人
if (FlowTypeEnum.SUBMIT.equals(flowTypeEnum)){
KnowledgeSubmitRecord knowledgeSubmitRecord = new KnowledgeSubmitRecord();
knowledgeSubmitRecord.setKnowledgeId(knowledge.getId());
knowledgeSubmitRecord.setFlowId(systemFlowTypeRelation.getFlowId());
knowledgeSubmitRecord.setSubmitUserId(userId);
knowledgeSubmitRecord.setSubmitDeptId(deptId);
knowledgeSubmitRecordService.save(knowledgeSubmitRecord);
}
// 生成下一个节点的TODO
for (SystemFlowRuleUser todoUser : nextRuleUserList) {
KnowledgeFlowTodo todo = new KnowledgeFlowTodo();

@ -19,23 +19,25 @@ import java.time.LocalDateTime;
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);
@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);
Long queryPassProcessCountByUser(@Param("userId") String userId, @Param("processStatus") Integer processStatus, @Param("knowledgeStatus") Integer knowledgeStatus);
}

@ -0,0 +1,23 @@
package com.supervision.knowsub.mapper;
import com.supervision.knowsub.model.KnowledgeSubmitRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author flevance
* @description ks_knowledge_submit_record((,))Mapper
* @createDate 2024-06-27 15:22:11
* @Entity com.supervision.knowsub.model.KnowledgeSubmitRecord
*/
public interface KnowledgeSubmitRecordMapper extends BaseMapper<KnowledgeSubmitRecord> {
Long queryKnowledgeSubmitTodoCount(@Param("userId") String userId);
Long queryKnowledgeSubmitStatusCount(@Param("userId") String userId, @Param("status") Integer status);
}

@ -2,6 +2,7 @@ package com.supervision.knowsub.mapper;
import com.supervision.knowsub.model.SystemFlowRule;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author Administrator
@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface SystemFlowRuleMapper extends BaseMapper<SystemFlowRule> {
Integer queryUserIsConfigProcess(@Param("userId") String userId);
}

@ -0,0 +1,66 @@
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_submit_record
*/
@TableName(value ="ks_knowledge_submit_record")
@Data
public class KnowledgeSubmitRecord implements Serializable {
/**
*
*/
@TableId
private String id;
/**
* ID
*/
private String knowledgeId;
/**
* ID
*/
private String flowId;
/**
* ID
*/
private String submitUserId;
/**
*
*/
private String submitDeptId;
/**
* ID
*/
private String createUserId;
/**
*
*/
private LocalDateTime createTime;
/**
* ID
*/
private String updateUserId;
/**
*
*/
private LocalDateTime updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -10,26 +10,34 @@ import java.time.Instant;
import java.time.LocalDateTime;
/**
* @author Administrator
* @description ks_knowledge_flow_record()Service
* @createDate 2024-06-24 11:35:15
*/
* @author Administrator
* @description ks_knowledge_flow_record()Service
* @createDate 2024-06-24 11:35:15
*/
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);
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);
String submittedDeptId, Instant flowType,
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
Page<KnowledgeFlowResVO> page);
/**
* 使-
* @param userId ID
* @param processStatus ,
* @param knowledgeStatus
*/
Long queryPassProcessCountByUser(String userId, Integer processStatus,Integer knowledgeStatus);
}

@ -0,0 +1,26 @@
package com.supervision.knowsub.service;
import com.supervision.knowsub.model.KnowledgeSubmitRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author flevance
* @description ks_knowledge_submit_record((,))Service
* @createDate 2024-06-27 15:22:11
*/
public interface KnowledgeSubmitRecordService extends IService<KnowledgeSubmitRecord> {
/**
*
*
* @param userId ID
*/
Long queryKnowledgeSubmitTodoCount(String userId);
/**
*
*/
Long queryKnowledgeSubmitStatusCount(String userId, Integer status);
}

@ -10,4 +10,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SystemFlowRuleService extends IService<SystemFlowRule> {
/**
* 使 -
*/
Integer queryUserIsConfigProcess(String userId);
}

@ -33,6 +33,11 @@ public class KnowledgeFlowRecordServiceImpl extends ServiceImpl<KnowledgeFlowRec
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd, Page<KnowledgeFlowResVO> page) {
return this.baseMapper.queryKnowledgeFlowCompletePage(title, publishDeptId, baseId, submittedDeptId, flowType, publishDateBegin, publishDateEnd, page);
}
@Override
public Long queryPassProcessCountByUser(String userId, Integer processStatus,Integer knowledgeStatus) {
return this.baseMapper.queryPassProcessCountByUser(userId, processStatus,knowledgeStatus);
}
}

@ -0,0 +1,31 @@
package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.model.KnowledgeSubmitRecord;
import com.supervision.knowsub.service.KnowledgeSubmitRecordService;
import com.supervision.knowsub.mapper.KnowledgeSubmitRecordMapper;
import org.springframework.stereotype.Service;
/**
* @author flevance
* @description ks_knowledge_submit_record((,))Service
* @createDate 2024-06-27 15:22:11
*/
@Service
public class KnowledgeSubmitRecordServiceImpl extends ServiceImpl<KnowledgeSubmitRecordMapper, KnowledgeSubmitRecord>
implements KnowledgeSubmitRecordService{
@Override
public Long queryKnowledgeSubmitTodoCount(String userId) {
return this.baseMapper.queryKnowledgeSubmitTodoCount(userId);
}
@Override
public Long queryKnowledgeSubmitStatusCount(String userId, Integer status) {
return this.baseMapper.queryKnowledgeSubmitStatusCount(userId, status);
}
}

@ -15,6 +15,12 @@ import org.springframework.stereotype.Service;
public class SystemFlowRuleServiceImpl extends ServiceImpl<SystemFlowRuleMapper, SystemFlowRule>
implements SystemFlowRuleService{
public Integer queryUserIsConfigProcess(String userId){
return this.baseMapper.queryUserIsConfigProcess(userId);
}
}

@ -118,4 +118,17 @@
</if>
</where>
</select>
<select id="queryPassProcessCountByUser" resultType="java.lang.Long">
select count(distinct knowledge_id)
from ks_knowledge_flow_record t1
left join ks_knowledge t2 on t1.knowledge_id = t2.id
where process_user_id = #{userId}
<if test="processStatus != null ">
and process_status = #{processStatus}
</if>
<if test="knowledgeStatus != null ">
and t2.status = #{knowledgeStatus}
</if>
</select>
</mapper>

@ -0,0 +1,43 @@
<?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.KnowledgeSubmitRecordMapper">
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.KnowledgeSubmitRecord">
<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="submitUserId" column="submit_user_id" jdbcType="VARCHAR"/>
<result property="submitDeptId" column="submit_dept_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,knowledge_id,flow_id,
submit_user_id,submit_dept_id,create_user_id,
create_time,update_user_id,update_time
</sql>
<select id="queryKnowledgeSubmitTodoCount" resultType="java.lang.Long">
select count(distinct t1.knowledge_id)
from ks_knowledge_submit_record t1
left join (select flow_id, knowledge_id
from ks_knowledge_flow_todo
group by flow_id, knowledge_id) t3 on t1.flow_id = t3.flow_id and t1.knowledge_id = t3.knowledge_id
where t1.submit_user_id = #{userId}
</select>
<select id="queryKnowledgeSubmitStatusCount" resultType="java.lang.Long">
select count(distinct t1.id)
from ks_knowledge t1
left join (select distinct knowledge_id
from ks_knowledge_submit_record
where submit_user_id = #{userId}) t2 on t1.id = t2.knowledge_id
where t2.knowledge_id is not null
and t1.status = #{status}
</select>
</mapper>

@ -20,4 +20,10 @@
rule_order,create_user_id,create_time,
update_user_id,update_time
</sql>
<select id="queryUserIsConfigProcess" resultType="java.lang.Integer">
select count(1)
from ks_system_flow_rule_user t1
left join ks_system_flow_rule t2 on t1.user_id = #{userId} and t1.flow_id = t2.flow_id
where t2.rule_order != 0
</select>
</mapper>

Loading…
Cancel
Save