Bläddra i källkod

作者:张哲
时间:2023/06/06
类型:需求变更
描述:代理人

zizg 1 år sedan
förälder
incheckning
b597fee790

+ 86 - 0
src/main/java/com/redxun/knowledge/controller/KnowledgeAgentController.java

@@ -0,0 +1,86 @@
+
+package com.redxun.knowledge.controller;
+
+import com.redxun.common.annotation.ClassDefine;
+import com.redxun.common.base.entity.JsonPageResult;
+import com.redxun.common.base.entity.JsonResult;
+import com.redxun.knowledge.entity.dao.KnowledgeAgent;
+import com.redxun.knowledge.entity.dto.KnowledgeAgentDto;
+import com.redxun.knowledge.entity.vo.KnowledgeAgentVo;
+import com.redxun.knowledge.service.BannerServiceImpl;
+import com.redxun.knowledge.service.KnowledgeAgentServiceImpl;
+import com.redxun.web.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@Slf4j
+@RestController
+@RequestMapping("/api-knowledge/knowledge/knowledgeAgent")
+@Api(tags = "业务--知识代理人表")
+@ClassDefine(title = "知识代理人", alias = "knowledgeAgentController", path = "/api-knowledge/knowledge/knowledgeAgent", packages = "knowledge", packageName = "知识管理")
+public class KnowledgeAgentController extends BaseController<KnowledgeAgent> {
+
+    @Autowired
+    BannerServiceImpl bannerService;
+
+    @Autowired
+    private KnowledgeAgentServiceImpl knowledgeAgentService;
+
+
+    @Override
+    public KnowledgeAgentServiceImpl getBaseService() {
+        return knowledgeAgentService;
+    }
+
+    @Override
+    public String getComment() {
+        return "业务--代理人";
+    }
+
+    @ApiOperation("新增代理人")
+    @PostMapping("create")
+    public JsonResult create(@Valid @RequestBody KnowledgeAgentDto knowledgeAgentDto, BindingResult bindingResult){
+        JsonResult jsonResult = JsonPageResult.getSuccess("");
+        if (bindingResult.hasErrors()){
+            jsonResult.setMessage("参数错误");
+            return jsonResult;
+        }
+        String pkId = null;
+        try {
+            pkId = knowledgeAgentService.create(knowledgeAgentDto);
+            jsonResult.setData(pkId);
+        } catch (Exception e) {
+            jsonResult.setMessage(e.getMessage());
+            jsonResult.setSuccess(false);
+        }
+        return jsonResult;
+
+    }
+
+    @ApiOperation("查询代理人列表")
+    @GetMapping("info")
+    public JsonResult info(){
+        JsonResult jsonResult = JsonPageResult.getSuccess("");
+        KnowledgeAgentVo knowledgeAgentVo = knowledgeAgentService.info();
+        return jsonResult.setData(knowledgeAgentVo);
+    }
+
+
+    @ApiOperation("清空代理人")
+    @GetMapping("del")
+    public JsonResult del(){
+        JsonResult jsonResult = JsonPageResult.getSuccess("");
+        String pkId = knowledgeAgentService.del();
+        return jsonResult.setData(pkId);
+    }
+
+
+
+}
+

+ 69 - 0
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeAgent.java

@@ -0,0 +1,69 @@
+package com.redxun.knowledge.entity.dao;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.redxun.common.base.entity.BaseExtEntity;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 文件名: KnowledgeAgent
+ * 作者: zizg
+ * 时间: 2023/6/5
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Setter
+@Getter
+@Accessors(chain = true)
+@TableName(value = "KM_KNOWLEDGE_AGENT")
+public class KnowledgeAgent extends BaseExtEntity<String> {
+
+    @JsonCreator
+    public KnowledgeAgent() {
+    }
+
+    //主键
+    @TableId(value = "PK_ID",type = IdType.ASSIGN_ID)
+    private String pkId;
+    //代理简述
+    @TableField(value = "SKETCH")
+    private String sketch;
+    //用户自身工号
+    @TableField(value = "USER_NO")
+    private String userNo;
+    //用户自身工号
+    @TableField(value = "TAGER_NO")
+    private String tagerNo;
+    //状态 1 启用 2 禁用
+    @TableField(value = "STATE")
+    private Integer state;
+    //代理开始时间
+    @TableField(value = "START_TIME")
+    private Date startTime;
+    //代理结束时间
+    @TableField(value = "END_TIME")
+    private Date endTime;
+    //描述
+    @TableField(value = "DESCRIBE")
+    private String describe;
+    //删除标记
+    @TableField(value = "IS_DEL")
+    @TableLogic
+    private Integer isDel;
+
+    @Override
+    public String getPkId() {
+        return pkId;
+    }
+
+    @Override
+    public void setPkId(String pkId) {
+        this.pkId = pkId;
+    }
+}

+ 55 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeAgentDto.java

@@ -0,0 +1,55 @@
+package com.redxun.knowledge.entity.dto;
+
+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 com.fasterxml.jackson.annotation.JsonCreator;
+import com.redxun.common.base.entity.BaseExtEntity;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Past;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 文件名: KnowledgeAgent
+ * 作者: zizg
+ * 时间: 2023/6/5
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class KnowledgeAgentDto implements Serializable {
+
+    //主键
+    private String pkId;
+    //代理简述
+    @NotEmpty(message = "代理简述不能为空")
+    private String sketch;
+    //用户自身工号
+    @NotEmpty(message = "代理人工号不能为空")
+    private String tagerNo;
+    //状态 1 启用 2 禁用
+    @NotNull(message = "状态不能为空")
+    private Integer state;
+    //代理开始时间
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "开始时间不能为空")
+    private Date startTime;
+    //代理结束时间
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "结束时间不能为空")
+    private Date endTime;
+    //描述
+    @TableField(value = "DESCRIBE")
+    private String describe;
+}

+ 62 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeAgentVo.java

@@ -0,0 +1,62 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 文件名: KnowledgeAgentVo
+ * 作者: zizg
+ * 时间: 2023/6/6
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class KnowledgeAgentVo implements Serializable {
+
+    //主键
+    private String pkId;
+    //代理简述
+    private String sketch;
+    //代理人姓名
+    private String tagerName;
+    //状态 1 启用 2 禁用
+    @TableField(value = "STATE")
+    private String stateName;
+    //代理开始时间
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date startTime;
+    //代理结束时间
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date endTime;
+    //描述
+    @TableField(value = "DESCRIBE")
+    private String describe;
+
+}

+ 19 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeAgentMapper.java

@@ -0,0 +1,19 @@
+package com.redxun.knowledge.mapper;
+
+import com.redxun.common.base.db.BaseDao;
+import com.redxun.knowledge.entity.dao.KnowledgeAgent;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 文件名: KnowledgeAgentMapper
+ * 作者: zizg
+ * 时间: 2023/6/5
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Mapper
+public interface KnowledgeAgentMapper extends BaseDao<KnowledgeAgent> {
+    void del(String userNo);
+}

+ 6 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeApproveMapper.java

@@ -24,4 +24,10 @@ public interface KnowledgeApproveMapper extends BaseDao<KnowledgeApprove> {
 
     List<String> deptAuthority(String userId);
 
+    /**
+     * 查询是否为知识管理员
+     * @return
+     */
+    List<String> findKnowledgeManager();
+
 }

+ 101 - 0
src/main/java/com/redxun/knowledge/service/KnowledgeAgentServiceImpl.java

@@ -0,0 +1,101 @@
+package com.redxun.knowledge.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.redxun.common.base.db.BaseDao;
+import com.redxun.common.base.db.BaseService;
+import com.redxun.common.model.JPaasUser;
+import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.common.tool.IdGenerator;
+import com.redxun.common.tool.StringUtils;
+import com.redxun.knowledge.common.UserService;
+import com.redxun.knowledge.entity.dao.KnowledgeAgent;
+import com.redxun.knowledge.entity.dto.KnowledgeAgentDto;
+import com.redxun.knowledge.entity.vo.KnowledgeAgentVo;
+import com.redxun.knowledge.mapper.KnowledgeAgentMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Service;
+
+/**
+ * 文件名: KnowledgeAgentServiceImpl
+ * 作者: zizg
+ * 时间: 2023/6/5
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Service
+public class KnowledgeAgentServiceImpl extends SuperServiceImpl<KnowledgeAgentMapper, KnowledgeAgent> implements BaseService<KnowledgeAgent> {
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private KnowledgeAgentMapper knowledgeAgentMapper;
+
+    @Override
+    public BaseDao<KnowledgeAgent> getRepository() {
+        return knowledgeAgentMapper;
+    }
+
+    /**
+     * 新增代理人
+     * @param knowledgeAgentDto
+     * @return
+     */
+    public String create(KnowledgeAgentDto knowledgeAgentDto) {
+        KnowledgeAgent knowledgeAgent = new KnowledgeAgent();
+        BeanUtils.copyProperties(knowledgeAgentDto,knowledgeAgent);
+        knowledgeAgent.setUserNo(userService.queryLoginUsername());
+        if (StringUtils.isEmpty(knowledgeAgent.getPkId())){
+            //查询当前登陆人是否已经被代理了
+            KnowledgeAgent knowledgeAgentOne = knowledgeAgentMapper.
+                    selectOne(new LambdaQueryWrapper<KnowledgeAgent>().eq(KnowledgeAgent::getUserNo,knowledgeAgent.getUserNo()));
+            if (knowledgeAgentOne != null){
+                throw new RuntimeException("当前用户已经被他人代理,添加失败!");
+            }
+            knowledgeAgent.setPkId(IdGenerator.getIdStr());
+            knowledgeAgentMapper.insert(knowledgeAgent);
+        } else {
+            knowledgeAgentMapper.updateById(knowledgeAgent);
+        }
+        return knowledgeAgent.getPkId();
+    }
+
+    /**
+     * 查询代理人列表
+     * @return
+     */
+    public KnowledgeAgentVo info() {
+        String userNo = userService.queryLoginUsername();
+        LambdaQueryWrapper<KnowledgeAgent> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KnowledgeAgent::getUserNo,userNo);
+        KnowledgeAgent knowledgeAgent = knowledgeAgentMapper.selectOne(wrapper);
+        KnowledgeAgentVo knowledgeAgentVo = new KnowledgeAgentVo();
+        if (knowledgeAgent == null){
+            return knowledgeAgentVo;
+        }
+        BeanUtils.copyProperties(knowledgeAgent,knowledgeAgentVo);
+        JPaasUser jPaasUser = userService.queryByUsername(knowledgeAgent.getTagerNo());
+        knowledgeAgentVo.setTagerName(jPaasUser.getFullName());
+        if (knowledgeAgent.getState() == 1){
+            knowledgeAgentVo.setStateName("启用");
+        } else if (knowledgeAgent.getState() == 2){
+            knowledgeAgentVo.setStateName("禁用");
+        }
+        return knowledgeAgentVo;
+    }
+
+
+    /**
+     * 清空代理人
+     * @return
+     */
+    public String del() {
+        String userNo = userService.queryLoginUsername();
+        knowledgeAgentMapper.del(userNo);
+        return "";
+    }
+}

+ 9 - 3
src/main/java/com/redxun/knowledge/service/KnowledgeApproveServiceImpl.java

@@ -92,9 +92,15 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
      * @return
      */
     public IPage findAllKnowledgeApprove(QueryFilter filter) {
-        Map<String, Object> params = PageHelper.constructParams(filter);
-        //查询出全部记录
-        List<KnowledgeApprovalListVo> allKnowledgeApprove = knowledgeApproveMapper.findAllKnowledgeApprove(filter.getParams(), params);
+        String user = userService.queryLoginUser();
+        //如果是知识管理员,可查看全部数据
+        List<String> knowledgeManager = knowledgeApproveMapper.findKnowledgeManager();
+        List<KnowledgeApprovalListVo> allKnowledgeApprove = new ArrayList<>();
+        if (knowledgeManager.contains(user)) {
+            Map<String, Object> params = PageHelper.constructParams(filter);
+            //查询出全部记录
+            allKnowledgeApprove = knowledgeApproveMapper.findAllKnowledgeApprove(filter.getParams(), params);
+        }
         // 根据知识Id进行数据分组
         Map<String, List<KnowledgeApprovalListVo>> result =
                 allKnowledgeApprove.stream().collect(Collectors.groupingBy(KnowledgeApprovalListVo::getKnowledgerId));

+ 54 - 0
src/main/resources/mapper/knowledge/KnowledgeAgentMapper.xml

@@ -0,0 +1,54 @@
+<?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.redxun.knowledge.mapper.KnowledgeAgentMapper">
+
+    <resultMap id="Banner" type="com.redxun.knowledge.entity.dao.KnowledgeAgent">
+        <id property="pkId" column="PK_ID" jdbcType="VARCHAR"/>
+        <result property="sketch" column="SKETCH" jdbcType="VARCHAR"/>
+        <result property="userNo" column="USER_NO" jdbcType="VARCHAR"/>
+        <result property="tagerNo" column="TAGER_NO" jdbcType="VARCHAR"/>
+        <result property="state" column="STATE" jdbcType="INTEGER"/>
+        <result property="startTime" column="START_TIME" jdbcType="DATE"/>
+        <result property="endTime" column="END_TIME" jdbcType="DATE"/>
+        <result property="describe" column="DESCRIBE" jdbcType="VARCHAR"/>
+        <result property="isDel" column="IS_DEL" jdbcType="INTEGER"/>
+        <result property="companyId" column="COMPANY_ID_" jdbcType="VARCHAR"/>
+        <result property="createDepId" column="CREATE_DEP_ID_" jdbcType="VARCHAR"/>
+        <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
+        <result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
+        <result property="createTime" column="CREATE_TIME_" jdbcType="DATE"/>
+        <result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
+        <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
+    </resultMap>
+
+    <sql id="COLUMNS">
+        PK_ID,TYPE,NAME,SUMMARY,BANNER_FILE,KNOWLEDGE_ID,SORT,
+        ENABLED,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,
+        CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
+    </sql>
+
+
+    <select id="query" resultType="com.redxun.knowledge.entity.dao.KnowledgeAgent" parameterType="java.util.Map">
+        select * from KM_KNOWLEDGE_AGENT
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
+                ${w.whereSql}
+            </if>
+        </where>
+        <if test="@rx.Ognl@isNotEmpty(w.orderBySql)">
+            ORDER BY ${w.orderBySql}
+        </if>
+        <if test="@rx.Ognl@isEmpty(w.orderBySql)">
+            ORDER BY PK_ID DESC
+        </if>
+    </select>
+
+    <delete id="del">
+        update KM_KNOWLEDGE_AGENT
+        set IS_DEL = 1
+        WHERE USER_NO = #{userNo} and IS_DEL = 0
+    </delete>
+
+</mapper>
+
+

+ 9 - 0
src/main/resources/mapper/knowledge/KnowledgeApproveMapper.xml

@@ -104,6 +104,15 @@
         ( SELECT PARTY1_ FROM LEARNING_USER_DEV.os_rel_inst WHERE PARTY2_ = #{userId} AND DIM1_ = '1' )
     </select>
 
+    <select id="findKnowledgeManager" resultType="string">
+        SELECT
+        USER_ID_
+        FROM
+        OS_USER
+        WHERE
+        USER_ID_ IN ( SELECT PARTY2_ FROM OS_REL_INST WHERE DIM1_ = 2 AND PARTY1_ IN ( SELECT GROUP_ID_ FROM OS_GROUP WHERE DIM_ID_ = 2 AND KEY_ = 'KM-Manager' ) )
+    </select>
+
 </mapper>