feat: 添加模型参数配置功能 - 数据库设计与后端实体类

1. 创建ccdi-project Maven模块
   - 新建模块并配置pom.xml依赖
   - 添加到根pom.xml的modules列表
   - 在ruoyi-admin中添加模块依赖

2. 创建数据库表和初始化数据
   - 建表语句: ccdi_model_param表
   - 3个风险监测模型共15条参数配置
   - 资产异常变动模型(5个参数)
   - 廉政风险评分模型(5个参数)
   - 关联交易监测模型(5个参数)

3. 创建后端实体类和DTO/VO
   - 实体类: CcdiModelParam.java
   - 查询DTO: ModelParamQueryDTO.java
   - 保存DTO: ModelParamSaveDTO.java (含验证注解)
   - 参数VO: ModelParamVO.java
   - 模型列表VO: ModelListVO.java

技术要点:
- 使用@Data注解简化代码
- 不继承BaseEntity,独立定义审计字段
- DTO添加@NotBlank/@NotNull验证注解
- 包名遵循规范: com.ruoyi.ccdi.project
- 项目编译通过: mvn clean compile
This commit is contained in:
wkc
2026-02-26 09:23:34 +08:00
parent c920577d45
commit aa1fdf5e9e
9 changed files with 497 additions and 0 deletions

35
ccdi-project/pom.xml Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.9.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ccdi-project</artifactId>
<description>
纪检初核项目业务模块
</description>
<dependencies>
<!-- 通用工具-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,113 @@
package com.ruoyi.ccdi.project.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 模型参数配置实体类
*
* @author ruoyi
*/
@Data
@TableName("ccdi_model_param")
public class CcdiModelParam implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 模型代码
*/
private String modelCode;
/**
* 模型名称
*/
private String modelName;
/**
* 参数代码
*/
private String paramCode;
/**
* 参数名称
*/
private String paramName;
/**
* 参数值
*/
private String paramValue;
/**
* 参数单位
*/
private String paramUnit;
/**
* 参数类型(number-数值,string-字符串,boolean-布尔)
*/
private String paramType;
/**
* 最小值(数值类型)
*/
private BigDecimal minValue;
/**
* 最大值(数值类型)
*/
private BigDecimal maxValue;
/**
* 参数描述
*/
private String description;
/**
* 排序号
*/
private Integer sortOrder;
/**
* 状态(0-正常,1-停用)
*/
private String status;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,46 @@
package com.ruoyi.ccdi.project.domain.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 模型参数查询DTO
*
* @author ruoyi
*/
@Data
public class ModelParamQueryDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 模型代码
*/
private String modelCode;
/**
* 模型名称
*/
private String modelName;
/**
* 参数代码
*/
private String paramCode;
/**
* 参数名称
*/
private String paramName;
/**
* 参数类型(number-数值,string-字符串,boolean-布尔)
*/
private String paramType;
/**
* 状态(0-正常,1-停用)
*/
private String status;
}

View File

@@ -0,0 +1,96 @@
package com.ruoyi.ccdi.project.domain.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 模型参数保存DTO
*
* @author ruoyi
*/
@Data
public class ModelParamSaveDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID(更新时必填)
*/
private Long id;
/**
* 模型代码
*/
@NotBlank(message = "模型代码不能为空")
private String modelCode;
/**
* 模型名称
*/
@NotBlank(message = "模型名称不能为空")
private String modelName;
/**
* 参数代码
*/
@NotBlank(message = "参数代码不能为空")
private String paramCode;
/**
* 参数名称
*/
@NotBlank(message = "参数名称不能为空")
private String paramName;
/**
* 参数值
*/
@NotBlank(message = "参数值不能为空")
private String paramValue;
/**
* 参数单位
*/
private String paramUnit;
/**
* 参数类型(number-数值,string-字符串,boolean-布尔)
*/
@NotBlank(message = "参数类型不能为空")
private String paramType;
/**
* 最小值(数值类型)
*/
private BigDecimal minValue;
/**
* 最大值(数值类型)
*/
private BigDecimal maxValue;
/**
* 参数描述
*/
private String description;
/**
* 排序号
*/
@NotNull(message = "排序号不能为空")
private Integer sortOrder;
/**
* 状态(0-正常,1-停用)
*/
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,31 @@
package com.ruoyi.ccdi.project.domain.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 模型列表VO
*
* @author ruoyi
*/
@Data
public class ModelListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 模型代码
*/
private String modelCode;
/**
* 模型名称
*/
private String modelName;
/**
* 参数数量
*/
private Integer paramCount;
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.ccdi.project.domain.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 模型参数VO
*
* @author ruoyi
*/
@Data
public class ModelParamVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long id;
/**
* 模型代码
*/
private String modelCode;
/**
* 模型名称
*/
private String modelName;
/**
* 参数代码
*/
private String paramCode;
/**
* 参数名称
*/
private String paramName;
/**
* 参数值
*/
private String paramValue;
/**
* 参数单位
*/
private String paramUnit;
/**
* 参数类型(number-数值,string-字符串,boolean-布尔)
*/
private String paramType;
/**
* 最小值(数值类型)
*/
private BigDecimal minValue;
/**
* 最大值(数值类型)
*/
private BigDecimal maxValue;
/**
* 参数描述
*/
private String description;
/**
* 排序号
*/
private Integer sortOrder;
/**
* 状态(0-正常,1-停用)
*/
private String status;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 备注
*/
private String remark;
}