Просмотр исходного кода

知识库 商户运营添加查询条件

changhaoning 1 год назад
Родитель
Сommit
af749493cc

+ 72 - 0
src/main/java/com/dk/mdm/controller/mst/KnowledgeController.java

@@ -0,0 +1,72 @@
+package com.dk.mdm.controller.mst;
+
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.model.pojo.mst.Knowledge;
+import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.mst.KnowledgeQuery;
+import com.dk.mdm.model.response.mst.KnowledgeResponse;
+import com.dk.mdm.model.vo.mst.KnowledgeVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.mst.KnowledgeService;
+
+@Api(tags = "知识库API接口")
+@RestController
+@RequestMapping("/mst/knowledge")
+public class KnowledgeController{
+
+    public BaseService<Knowledge> getService() {
+        return knowledgeService;
+    }
+
+    @Autowired
+    private KnowledgeService knowledgeService;
+
+    /**
+     * @desc   : 条件查询
+     * @author : 常皓宁
+     * @date   : 2024/4/12 10:19
+     */
+    @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
+    @PostMapping({"list_by"})
+    public ResponseResultVO<PageList<KnowledgeResponse>> selectByCond(@RequestBody KnowledgeQuery knowledgeQuery) {
+        return knowledgeService.selectByCond(knowledgeQuery);
+    }
+
+    /**
+     * @desc   : 新建
+     * @author : 常皓宁
+     * @date   : 2024/4/15 15:02
+     */
+    @ApiOperation( value = "新建", notes = "新建" )
+    @PostMapping({"insert"})
+    public ResponseResultVO<?> insert(@RequestBody KnowledgeVO knowledgeVO) {
+        return knowledgeService.insert(knowledgeVO);
+    }
+
+    /**
+     * @desc   : 编辑
+     * @author : 常皓宁
+     * @date   : 2024/4/15 15:02
+     */
+    @ApiOperation( value = "新建", notes = "新建" )
+    @PostMapping({"update"})
+    public ResponseResultVO<?> update(@RequestBody KnowledgeVO knowledgeVO) {
+        return knowledgeService.update(knowledgeVO);
+    }
+
+    /**
+     * @desc   : 通过ID查询
+     * @author : 常皓宁
+     * @date   : 2024/4/15 16:32
+     */
+    @PostMapping({"/{id}"})
+    public ResponseResultVO selectById(@PathVariable String id) {
+        return knowledgeService.selectById(id);
+    }
+
+
+}

+ 22 - 0
src/main/java/com/dk/mdm/infrastructure/convert/mst/KnowledgeConvert.java

@@ -0,0 +1,22 @@
+package com.dk.mdm.infrastructure.convert.mst;
+
+import com.dk.mdm.model.pojo.mst.Knowledge;
+import com.dk.mdm.model.vo.mst.KnowledgeVO;
+import org.mapstruct.Mapper;
+
+/**
+ * @desc   : Knowledge转换类
+ * @author : 常皓宁
+ * @date   : 2024/4/15 15:06
+ */
+@Mapper(componentModel = "spring")
+public interface KnowledgeConvert {
+
+    /**
+     * @desc   : 转换vo为pojo
+     * @author : 常皓宁
+     * @date   : 2024/4/15 15:07
+     */
+    Knowledge convertToPo(KnowledgeVO knowledgeVO);
+
+}

+ 9 - 1
src/main/java/com/dk/mdm/mapper/mst/CompanyMapper.xml

@@ -238,7 +238,7 @@
                 AND tac.cp_manager = #{cpManager}
             </if>
             <if test="cpPhone != null and cpPhone != ''">
-                AND tac.cp_phone = #{cpPhone}
+                AND tac.cp_phone LIKE concat('%',my_ex.likequery(#{cpPhone}),'%')
             </if>
             <if test="cpSize != null and cpSize != ''">
                 AND tac.cp_size = #{cpSize}
@@ -249,6 +249,14 @@
             <if test="feedback != null and feedback != ''">
                 AND tac.feedback = #{feedback}
             </if>
+            <if test="openingDateStart != null and openingDateEnd != null">
+                AND tac.opening_date &gt;= #{openingDateStart}::timestamp with time zone
+                AND tac.opening_date &lt; #{openingDateEnd}::timestamp with time zone + interval '1 day'
+            </if>
+            <if test="endDateStart != null and endDateEnd != null">
+                AND tac.end_date &gt;= #{endDateStart}::timestamp with time zone
+                AND tac.end_date &lt; #{endDateEnd}::timestamp with time zone + interval '1 day'
+            </if>
         </where>
     </sql>
 

+ 32 - 0
src/main/java/com/dk/mdm/mapper/mst/KnowledgeMapper.java

@@ -0,0 +1,32 @@
+package com.dk.mdm.mapper.mst;
+
+import com.dk.mdm.model.pojo.mst.Knowledge;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.mst.KnowledgeQuery;
+import com.dk.mdm.model.response.mst.KnowledgeResponse;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+*  知识库 Mapper
+*/
+@Repository
+public interface KnowledgeMapper extends BaseMapper<Knowledge>{
+
+    /**
+     * @desc   : 根据条件进行查询
+     * @author : 常皓宁
+     * @date : 2024/2/26 10:36
+     */
+    List<KnowledgeResponse> selectByCond(KnowledgeQuery knowledgeQuery);
+
+    /**
+     * @desc   : 根据条件进行查询(数量)
+     * @author : 常皓宁
+     * @date : 2024/2/26 10:36
+     */
+    Long countByCond(KnowledgeQuery knowledgeQuery);
+
+}
+

+ 234 - 0
src/main/java/com/dk/mdm/mapper/mst/KnowledgeMapper.xml

@@ -0,0 +1,234 @@
+<?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.dk.mdm.mapper.mst.KnowledgeMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        kg_id, kg_name, kg_url, grade_code, app_code, display_no, flg_valid, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.mst.Knowledge">
+        <id column="kg_id" property="kgId"/>
+                <result column="kg_name" property="kgName"/>
+                <result column="kg_url" property="kgUrl"/>
+                <result column="grade_code" property="gradeCode"/>
+                <result column="app_code" property="appCode"/>
+                <result column="display_no" property="displayNo"/>
+                <result column="flg_valid" property="flgValid"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="kgName != null and kgName != ''">
+                AND kg_name = #{kgName}
+            </if>
+            <if test="kgUrl != null and kgUrl != ''">
+                AND kg_url = #{kgUrl}
+            </if>
+            <if test="gradeCode != null and gradeCode != ''">
+                AND grade_code = #{gradeCode}
+            </if>
+            <if test="appCode != null and appCode != ''">
+                AND app_code = #{appCode}
+            </if>
+            <if test="displayNo != null">
+                AND display_no = #{displayNo}
+            </if>
+            <if test="flgValid != null">
+                AND flg_valid = #{flgValid}
+            </if>
+            <if test="opCreateTime != null">
+                AND op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null">
+                AND op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null">
+                AND op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List_list">
+        tmk.kg_id,
+        tmk.kg_name,
+        tmk.kg_url,
+        tmk.grade_code,
+        tmk.app_code,
+        tmk.display_no,
+        tmk.flg_valid,
+        tmk.op_create_time,
+        tmk.op_create_user_id,
+        tmk.op_update_time,
+        tmk.op_update_user_id,
+        tmk.op_app_code,
+        tmk.op_timestamp,
+        tmk.op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap_list" type="com.dk.mdm.model.response.mst.KnowledgeResponse">
+        <id column="kg_id" property="kgId"/>
+        <result column="kg_name" property="kgName"/>
+        <result column="kg_url" property="kgUrl"/>
+        <result column="grade_code" property="gradeCode"/>
+        <result column="app_code" property="appCode"/>
+        <result column="display_no" property="displayNo"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_create_user_id" property="opCreateUserId"/>
+        <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_update_user_id" property="opUpdateUserId"/>
+        <result column="op_app_code" property="opAppCode"/>
+        <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+        <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition_list">
+        <where>
+            <if test="kgName != null and kgName != ''">
+                AND tmk.kg_name = #{kgName}
+            </if>
+            <if test="kgUrl != null and kgUrl != ''">
+                AND tmk.kg_url = #{kgUrl}
+            </if>
+            <if test="gradeCode != null and gradeCode != ''">
+                AND tmk.grade_code = #{gradeCode}
+            </if>
+            <if test="appCode != null and appCode != ''">
+                AND tmk.app_code = #{appCode}
+            </if>
+            <if test="displayNo != null">
+                AND tmk.display_no = #{displayNo}
+            </if>
+            <if test="flgValid != null">
+                AND tmk.flg_valid = #{flgValid}
+            </if>
+            <if test="opCreateTime != null">
+                AND tmk.op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null">
+                AND tmk.op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND tmk.op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null">
+                AND tmk.op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND tmk.op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND tmk.op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND tmk.op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键kgId批量操作 -->
+        WHERE kg_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表dkic_a.t_mst_knowledge,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_mst_knowledge tmk
+        <include refid="Condition_list"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表dkic_a.t_mst_knowledge,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_a.t_mst_knowledge tmk
+        <include refid="Condition_list"/>
+    </select>
+
+    <!-- 根据主键查询表dkic_a.t_mst_knowledge的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_mst_knowledge
+        WHERE kg_id = #{kgId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表dkic_a.t_mst_knowledge的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_mst_knowledge
+        WHERE kg_id = #{kgId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表dkic_a.t_mst_knowledge的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_mst_knowledge
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into dkic_a.t_mst_knowledge
+        (
+        <trim suffixOverrides=",">
+            kg_name,
+            kg_url,
+            grade_code,
+            app_code,
+            display_no,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.kgName},
+                #{item.kgUrl},
+                #{item.gradeCode},
+                #{item.appCode},
+                #{item.displayNo},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 172 - 0
src/main/java/com/dk/mdm/model/pojo/mst/Knowledge.java

@@ -0,0 +1,172 @@
+package com.dk.mdm.model.pojo.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  知识库
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("知识库")
+@TableName(value = "t_mst_knowledge", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:知识库", description="表名:t_mst_knowledge")
+public class Knowledge extends PageInfo<Knowledge> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 知识库ID
+     */
+    @TableId(value = "kg_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "知识库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String kgId;
+
+
+    /**
+     * 知识库名称
+     */
+    @Excel(name = "知识库名称")
+    @ApiModelProperty(value = "知识库名称")
+    private String kgName;
+
+
+    /**
+     * 知识库链接
+     */
+    @Excel(name = "知识库链接")
+    @ApiModelProperty(value = "知识库链接")
+    private String kgUrl;
+
+
+    /**
+     * 系统版本 (为空标识不限制)
+     */
+    @Excel(name = "系统版本 (为空标识不限制)")
+    @ApiModelProperty(value = "系统版本 (为空标识不限制)")
+    private String gradeCode;
+
+
+    /**
+     * 应用类型
+     */
+    @Excel(name = "应用类型")
+    @ApiModelProperty(value = "应用类型")
+    private String appCode;
+
+
+    /**
+     * 显示顺序 (【1 ~ 46655】)
+     */
+    @Excel(name = "显示顺序 (【1 ~ 46655】)")
+    @ApiModelProperty(value = "显示顺序 (【1 ~ 46655】)")
+    private Integer displayNo;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    private Long opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    private Long opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 15 - 0
src/main/java/com/dk/mdm/model/query/mst/CompanyQuery.java

@@ -250,6 +250,21 @@ public class CompanyQuery extends PageInfo<CompanyQuery> implements Serializable
     @ApiModelProperty(value = "企业状态(系统字典)")
     private String cpStatus;
 
+    @ApiModelProperty(value = "时间开始")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate openingDateStart;
+
+    @ApiModelProperty(value = "时间结束")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate openingDateEnd;
+
+    @ApiModelProperty(value = "时间开始")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endDateStart;
+
+    @ApiModelProperty(value = "时间结束")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endDateEnd;
 
     /*
      * 相关属性

+ 172 - 0
src/main/java/com/dk/mdm/model/query/mst/KnowledgeQuery.java

@@ -0,0 +1,172 @@
+package com.dk.mdm.model.query.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  知识库
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("知识库")
+@TableName(value = "t_mst_knowledge", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:知识库", description="表名:t_mst_knowledge")
+public class KnowledgeQuery extends PageInfo<KnowledgeQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 知识库ID
+     */
+    @TableId(value = "kg_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "知识库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String kgId;
+
+
+    /**
+     * 知识库名称
+     */
+    @Excel(name = "知识库名称")
+    @ApiModelProperty(value = "知识库名称")
+    private String kgName;
+
+
+    /**
+     * 知识库链接
+     */
+    @Excel(name = "知识库链接")
+    @ApiModelProperty(value = "知识库链接")
+    private String kgUrl;
+
+
+    /**
+     * 系统版本 (为空标识不限制)
+     */
+    @Excel(name = "系统版本 (为空标识不限制)")
+    @ApiModelProperty(value = "系统版本 (为空标识不限制)")
+    private String gradeCode;
+
+
+    /**
+     * 应用类型
+     */
+    @Excel(name = "应用类型")
+    @ApiModelProperty(value = "应用类型")
+    private String appCode;
+
+
+    /**
+     * 显示顺序 (【1 ~ 46655】)
+     */
+    @Excel(name = "显示顺序 (【1 ~ 46655】)")
+    @ApiModelProperty(value = "显示顺序 (【1 ~ 46655】)")
+    private Integer displayNo;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    private Long opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    private Long opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 172 - 0
src/main/java/com/dk/mdm/model/response/mst/KnowledgeResponse.java

@@ -0,0 +1,172 @@
+package com.dk.mdm.model.response.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  知识库
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("知识库")
+@TableName(value = "t_mst_knowledge", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:知识库", description="表名:t_mst_knowledge")
+public class KnowledgeResponse extends PageInfo<KnowledgeResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 知识库ID
+     */
+    @TableId(value = "kg_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "知识库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String kgId;
+
+
+    /**
+     * 知识库名称
+     */
+    @Excel(name = "知识库名称")
+    @ApiModelProperty(value = "知识库名称")
+    private String kgName;
+
+
+    /**
+     * 知识库链接
+     */
+    @Excel(name = "知识库链接")
+    @ApiModelProperty(value = "知识库链接")
+    private String kgUrl;
+
+
+    /**
+     * 系统版本 (为空标识不限制)
+     */
+    @Excel(name = "系统版本 (为空标识不限制)")
+    @ApiModelProperty(value = "系统版本 (为空标识不限制)")
+    private String gradeCode;
+
+
+    /**
+     * 应用类型
+     */
+    @Excel(name = "应用类型")
+    @ApiModelProperty(value = "应用类型")
+    private String appCode;
+
+
+    /**
+     * 显示顺序 (【1 ~ 46655】)
+     */
+    @Excel(name = "显示顺序 (【1 ~ 46655】)")
+    @ApiModelProperty(value = "显示顺序 (【1 ~ 46655】)")
+    private Integer displayNo;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    private Long opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    private Long opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 172 - 0
src/main/java/com/dk/mdm/model/vo/mst/KnowledgeVO.java

@@ -0,0 +1,172 @@
+package com.dk.mdm.model.vo.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  知识库
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("知识库")
+@TableName(value = "t_mst_knowledge", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:知识库", description="表名:t_mst_knowledge")
+public class KnowledgeVO extends PageInfo<KnowledgeVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 知识库ID
+     */
+    @TableId(value = "kg_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "知识库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String kgId;
+
+
+    /**
+     * 知识库名称
+     */
+    @Excel(name = "知识库名称")
+    @ApiModelProperty(value = "知识库名称")
+    private String kgName;
+
+
+    /**
+     * 知识库链接
+     */
+    @Excel(name = "知识库链接")
+    @ApiModelProperty(value = "知识库链接")
+    private String kgUrl;
+
+
+    /**
+     * 系统版本 (为空标识不限制)
+     */
+    @Excel(name = "系统版本 (为空标识不限制)")
+    @ApiModelProperty(value = "系统版本 (为空标识不限制)")
+    private String gradeCode;
+
+
+    /**
+     * 应用类型
+     */
+    @Excel(name = "应用类型")
+    @ApiModelProperty(value = "应用类型")
+    private String appCode;
+
+
+    /**
+     * 显示顺序 (【1 ~ 46655】)
+     */
+    @Excel(name = "显示顺序 (【1 ~ 46655】)")
+    @ApiModelProperty(value = "显示顺序 (【1 ~ 46655】)")
+    private Integer displayNo;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    private Long opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    private Long opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 92 - 0
src/main/java/com/dk/mdm/service/mst/KnowledgeService.java

@@ -0,0 +1,92 @@
+package com.dk.mdm.service.mst;
+
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.infrastructure.constant.Constant;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.infrastructure.convert.mst.KnowledgeConvert;
+import com.dk.mdm.model.pojo.mst.Knowledge;
+import com.dk.mdm.mapper.mst.KnowledgeMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.mst.KnowledgeQuery;
+import com.dk.mdm.model.response.mst.KnowledgeResponse;
+import com.dk.mdm.model.vo.mst.KnowledgeVO;
+import com.dk.mdm.service.common.CommonService;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class KnowledgeService extends BaseService<Knowledge> {
+
+	@Override
+	public BaseMapper<Knowledge> getRepository() {
+		return knowledgeMapper;
+	}
+
+	@Autowired
+	private KnowledgeMapper knowledgeMapper;
+
+	@Autowired
+	private KnowledgeConvert knowledgeConvert;
+
+	@Autowired
+	private CommonService commonService;
+
+	/**
+	 * @desc : 重写主键
+	 * @author : 常皓宁
+	 * @date : 2024/2/29 20:29
+	 */
+	@Override
+	public String getPrimaryKey() {
+		return "kg_id";
+	}
+
+	/**
+	 * @desc : 查询
+	 * @author : 常皓宁
+	 * @date : 2023/1/5 9:39
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<KnowledgeResponse>> selectByCond(KnowledgeQuery knowledgeQuery) {
+		return super.mergeListWithCount(knowledgeQuery, knowledgeMapper.selectByCond(knowledgeQuery),
+				knowledgeMapper.countByCond(knowledgeQuery));
+	}
+
+	/**
+	 * @desc   : 保存方法
+	 * @author : 常皓宁
+	 * @date   : 2024/4/15 15:03
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> insert(KnowledgeVO knowledgeVO) {
+		Knowledge knowledge = knowledgeConvert.convertToPo(knowledgeVO);
+		// 获取显示顺序
+		Integer displayNo =commonService.getMaxDisplayNo(Constant.DisplayNoTable.KNOWLEDGE);
+		knowledge.setDisplayNo(displayNo);
+		//新建
+		knowledgeMapper.insert(knowledge);
+		return ResponseResultUtil.success();
+	}
+
+	/**
+	 * @desc   : 保存方法
+	 * @author : 常皓宁
+	 * @date   : 2024/4/15 15:03
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> update(KnowledgeVO knowledgeVO) {
+		// 转化实体
+		Knowledge knowledge = knowledgeConvert.convertToPo(knowledgeVO);
+		return super.updateByUuid(knowledge);
+	}
+
+}