diff --git a/ccdi-project/pom.xml b/ccdi-project/pom.xml new file mode 100644 index 0000000..8a94029 --- /dev/null +++ b/ccdi-project/pom.xml @@ -0,0 +1,35 @@ + + + + ruoyi + com.ruoyi + 3.9.1 + + 4.0.0 + + ccdi-project + + + 纪检初核项目业务模块 + + + + + + + com.ruoyi + ruoyi-common + + + + + org.projectlombok + lombok + true + + + + + diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/CcdiModelParam.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/CcdiModelParam.java new file mode 100644 index 0000000..a236302 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/CcdiModelParam.java @@ -0,0 +1,62 @@ +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.util.Date; + +/** + * 模型参数配置 ccdi_model_param + */ +@Data +@TableName("ccdi_model_param") +public class CcdiModelParam { + + /** 主键ID */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 项目ID(0表示默认参数) */ + private Long projectId; + + /** 模型编码 */ + private String modelCode; + + /** 模型名称 */ + private String modelName; + + /** 参数编码 */ + private String paramCode; + + /** 监测项名称 */ + private String paramName; + + /** 参数描述 */ + private String paramDesc; + + /** 参数值 */ + private String paramValue; + + /** 参数单位 */ + private String paramUnit; + + /** 排序号 */ + private Integer sortOrder; + + /** 创建者 */ + private String createBy; + + /** 创建时间 */ + private Date createTime; + + /** 更新者 */ + private String updateBy; + + /** 更新时间 */ + private Date updateTime; + + /** 备注 */ + private String remark; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamQueryDTO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamQueryDTO.java new file mode 100644 index 0000000..db724eb --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamQueryDTO.java @@ -0,0 +1,18 @@ +package com.ruoyi.ccdi.project.domain.dto; + +import lombok.Data; +import jakarta.validation.constraints.NotBlank; + +/** + * 模型参数查询DTO + */ +@Data +public class ModelParamQueryDTO { + + /** 项目ID */ + private Long projectId; + + /** 模型编码 */ + @NotBlank(message = "模型编码不能为空") + private String modelCode; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamSaveDTO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamSaveDTO.java new file mode 100644 index 0000000..227d449 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/ModelParamSaveDTO.java @@ -0,0 +1,52 @@ +package com.ruoyi.ccdi.project.domain.dto; + +import lombok.Data; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +/** + * 模型参数保存DTO + */ +@Data +public class ModelParamSaveDTO { + + /** 项目ID */ + private Long projectId; + + /** 模型编码 */ + @NotBlank(message = "模型编码不能为空") + private String modelCode; + + /** 模型名称 */ + @NotBlank(message = "模型名称不能为空") + private String modelName; + + /** 参数列表 */ + @NotNull(message = "参数列表不能为空") + private List params; + + @Data + public static class ParamItem { + + /** 参数编码 */ + @NotBlank(message = "参数编码不能为空") + private String paramCode; + + /** 监测项名称 */ + private String paramName; + + /** 参数描述 */ + private String paramDesc; + + /** 参数值 - 唯一可修改字段 */ + @NotBlank(message = "参数值不能为空") + private String paramValue; + + /** 参数单位 */ + private String paramUnit; + + /** 排序号 */ + private Integer sortOrder; + } +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelListVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelListVO.java new file mode 100644 index 0000000..db1e2fd --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelListVO.java @@ -0,0 +1,16 @@ +package com.ruoyi.ccdi.project.domain.vo; + +import lombok.Data; + +/** + * 模型列表VO + */ +@Data +public class ModelListVO { + + /** 模型编码 */ + private String modelCode; + + /** 模型名称 */ + private String modelName; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelParamVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelParamVO.java new file mode 100644 index 0000000..a983919 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/ModelParamVO.java @@ -0,0 +1,37 @@ +package com.ruoyi.ccdi.project.domain.vo; + +import lombok.Data; + +/** + * 模型参数VO + */ +@Data +public class ModelParamVO { + + /** 主键ID */ + private Long id; + + /** 模型编码 */ + private String modelCode; + + /** 模型名称 */ + private String modelName; + + /** 参数编码 */ + private String paramCode; + + /** 监测项名称 */ + private String paramName; + + /** 参数描述 */ + private String paramDesc; + + /** 参数值 */ + private String paramValue; + + /** 参数单位 */ + private String paramUnit; + + /** 排序号 */ + private Integer sortOrder; +} diff --git a/pom.xml b/pom.xml index 2c66e2e..9111a6b 100644 --- a/pom.xml +++ b/pom.xml @@ -208,6 +208,13 @@ ${ruoyi.version} + + + com.ruoyi + ccdi-project + ${ruoyi.version} + + @@ -219,6 +226,7 @@ ruoyi-generator ruoyi-common ruoyi-info-collection + ccdi-project pom diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 47de15d..76eb2e1 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -60,6 +60,12 @@ ruoyi-info-collection + + + com.ruoyi + ccdi-project + + diff --git a/sql/ccdi_model_param.sql b/sql/ccdi_model_param.sql new file mode 100644 index 0000000..5490eb5 --- /dev/null +++ b/sql/ccdi_model_param.sql @@ -0,0 +1,55 @@ +-- ---------------------------- +-- 模型参数配置表 +-- ---------------------------- +DROP TABLE IF EXISTS `ccdi_model_param`; +CREATE TABLE `ccdi_model_param` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `project_id` bigint DEFAULT 0 COMMENT '项目ID(0表示默认参数,其他值为具体项目ID)', + `model_code` varchar(100) NOT NULL COMMENT '模型编码', + `model_name` varchar(100) NOT NULL COMMENT '模型名称', + `param_code` varchar(100) NOT NULL COMMENT '参数编码', + `param_name` varchar(100) NOT NULL COMMENT '监测项名称', + `param_desc` varchar(500) DEFAULT NULL COMMENT '参数描述', + `param_value` varchar(200) NOT NULL COMMENT '参数值', + `param_unit` varchar(50) DEFAULT NULL COMMENT '参数单位', + `sort_order` int DEFAULT 0 COMMENT '排序号(参数展示顺序)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_project_model_param` (`project_id`, `model_code`, `param_code`), + KEY `idx_project_id` (`project_id`), + KEY `idx_model_code` (`model_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模型参数配置表'; + +-- ---------------------------- +-- 2. 初始化大额交易模型参数 +-- ---------------------------- +INSERT INTO ccdi_model_param (project_id, model_code, model_name, param_code, param_name, param_desc, param_value, param_unit, sort_order, create_by, remark) VALUES +(0, 'LARGE_TRANSACTION', '大额交易模型', 'SINGLE_TRANSACTION_AMOUNT', '单笔交易额', '单笔超过该金额视为大额交易', '50000', '元', 1, 'admin', '系统默认参数'), +(0, 'LARGE_TRANSACTION', '大额交易模型', 'CUMULATIVE_TRANSACTION_AMOUNT', '累计交易额', '年累计交易额超过该金额', '5000000', '元', 2, 'admin', '系统默认参数'), +(0, 'LARGE_TRANSACTION', '大额交易模型', 'LARGE_CASH_DEPOSIT', '大额存现', '单笔存现金额超过', '200000', '元', 3, 'admin', '系统默认参数'), +(0, 'LARGE_TRANSACTION', '大额交易模型', 'FREQUENT_CASH_DEPOSIT', '短时多次存现', '24小时内累计存现超过', '100000', '元/4小时', 4, 'admin', '系统默认参数'), +(0, 'LARGE_TRANSACTION', '大额交易模型', 'FREQUENT_TRANSFER', '频繁转账', '单日转账次数超过', '10', '次/日', 5, 'admin', '系统默认参数'), +(0, 'LARGE_TRANSACTION', '大额交易模型', 'TRANSFER_FREQUENCY', '转账频率', '单日累计转账金额超过', '1000000', '元/日', 6, 'admin', '系统默认参数'); + +-- ---------------------------- +-- 3. 初始化可疑兼职模型参数 +-- ---------------------------- +INSERT INTO ccdi_model_param (project_id, model_code, model_name, param_code, param_name, param_desc, param_value, param_unit, sort_order, create_by, remark) VALUES +(0, 'SUSPICIOUS_PART_TIME', '可疑兼职模型', 'MONTHLY_FIXED_INCOME', '月度固定收入', '除本行工资外,每月固定收入超过', '5000', '元/月', 1, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_PART_TIME', '可疑兼职模型', 'FIXED_COUNTERPARTY_TRANSFER', '固定对手转入', '每季从固定交易对手转入金额', '15000', '元/季', 2, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_PART_TIME', '可疑兼职模型', 'SUSPICIOUS_TIME_TRANSACTION', '非工作时间交易', '非工作时间(22:00-06:00)交易次数', '20', '次/月', 3, 'admin', '系统默认参数'); + +-- ---------------------------- +-- 4. 初始化可疑外汇交易模型参数 +-- ---------------------------- +INSERT INTO ccdi_model_param (project_id, model_code, model_name, param_code, param_name, param_desc, param_value, param_unit, sort_order, create_by, remark) VALUES +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'SINGLE_PURCHASE_AMOUNT', '单笔购汇金额', '单笔购汇超过该金额', '50000', '美元/笔', 1, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'SINGLE_SETTLEMENT_AMOUNT', '单笔结汇金额', '单笔结汇超过该金额', '50000', '美元/笔', 2, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'CROSS_BORDER_REMITTANCE', '跨境汇款金额', '跨境汇款金额超过', '200000', '美元/笔', 3, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'MONTHLY_PURCHASE_TOTAL', '月度购汇总额', '月度购汇总额超过', '100000', '美元/月', 4, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'MONTHLY_SETTLEMENT_TOTAL', '月度结汇总额', '月度结汇总额超过', '100000', '美元/月', 5, 'admin', '系统默认参数'), +(0, 'SUSPICIOUS_FOREIGN_EXCHANGE', '可疑外汇交易模型', 'FREQUENT_FOREX_TRADE', '频繁外汇交易', '单日外汇交易次数超过', '5', '次/日', 6, 'admin', '系统默认参数'); diff --git a/sql/ccdi_model_param_menu.sql b/sql/ccdi_model_param_menu.sql new file mode 100644 index 0000000..1613ac2 --- /dev/null +++ b/sql/ccdi_model_param_menu.sql @@ -0,0 +1,31 @@ +-- 模型参数配置菜单权限 +-- 创建时间: 2026-02-26 + +-- 添加模型参数配置菜单(父菜单为信息维护) +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ( + '模型参数配置', + 2000, + 10, + 'modelParam', + 'ccdi/modelParam/index', + 1, + 0, + 'C', + '0', + '0', + 'ccdi:modelParam:list', + 'edit', + 'admin', + NOW(), + '模型参数配置菜单' +); + +-- 获取刚插入的菜单ID +SET @model_param_menu_id = LAST_INSERT_ID(); + +-- 添加按钮权限 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES + ('模型参数查询', @model_param_menu_id, 1, '#', '', 1, 0, 'F', '0', '0', 'ccdi:modelParam:query', '#', 'admin', NOW(), ''), + ('模型参数保存', @model_param_menu_id, 2, '#', '', 1, 0, 'F', '0', '0', 'ccdi:modelParam:save', '#', 'admin', NOW(), '');