From 555bf95abe8a38ebcbe3be40622047a3bbde9810 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Thu, 26 Feb 2026 09:31:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E4=BB=BB=E5=8A=A11=20?= =?UTF-8?q?-=20=E4=B8=A5=E6=A0=BC=E6=8C=89=E7=85=A7=E8=A7=84=E6=A0=BC?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E9=87=8D=E6=96=B0=E5=AE=9E=E6=96=BD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=AE=BE=E8=AE=A1=E4=B8=8E=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 修正内容 ### 1. 数据库表结构修正 - 添加字段: project_id, param_desc - 删除字段: param_type, min_value, max_value, description, status - 修正唯一索引: uk_project_model_param (project_id, model_code, param_code) - 添加普通索引: idx_project_id, idx_model_code ### 2. 初始化数据修正 - 删除错误模型: ASSET_CHANGE, RISK_SCORE, RELATED_TRANSACTION - 添加正确模型: * 大额交易模型 (LARGE_TRANSACTION) - 6个参数 * 可疑兼职模型 (SUSPICIOUS_PART_TIME) - 3个参数 * 可疑外汇交易模型 (SUSPICIOUS_FOREIGN_EXCHANGE) - 6个参数 - 共15条参数配置,project_id=0(系统默认参数) ### 3. Entity类修正 (CcdiModelParam.java) - 添加: projectId, paramDesc - 删除: paramType, minValue, maxValue, description, status - 删除: Serializable接口,serialVersionUID - 简化注释风格 ### 4. DTO类修正 **ModelParamQueryDTO:** - 只保留: projectId, modelCode - 添加@NotBlank验证 **ModelParamSaveDTO:** - 改为批量保存结构 - 包含: projectId, modelCode, modelName, params(List) - 内部类ParamItem包含参数明细 - 只允许修改paramValue字段 ### 5. VO类修正 **ModelParamVO:** - 只保留核心展示字段: id, modelCode, modelName, paramCode, paramName, paramDesc, paramValue, paramUnit, sortOrder - 删除审计字段 **ModelListVO:** - 只保留: modelCode, modelName - 删除paramCount字段 ## 验证结果 ✅ 数据库表创建成功 ✅ 15条初始化数据插入成功 ✅ 项目编译通过 (mvn clean compile) ✅ 严格符合规格文档要求 --- .../ccdi/project/domain/CcdiModelParam.java | 93 ++++------------ .../domain/dto/ModelParamQueryDTO.java | 40 ++----- .../project/domain/dto/ModelParamSaveDTO.java | 100 +++++------------- .../ccdi/project/domain/vo/ModelListVO.java | 21 +--- .../ccdi/project/domain/vo/ModelParamVO.java | 95 +++-------------- sql/ccdi_model_param.sql | 75 ++++++------- 6 files changed, 108 insertions(+), 316 deletions(-) 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 index cd2254b..a236302 100644 --- 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 @@ -5,109 +5,58 @@ 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 + * 模型参数配置 ccdi_model_param */ @Data @TableName("ccdi_model_param") -public class CcdiModelParam implements Serializable { +public class CcdiModelParam { - private static final long serialVersionUID = 1L; - - /** - * 主键ID - */ + /** 主键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; - /** - * 参数类型(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; } 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 index dc8b1db..db724eb 100644 --- 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 @@ -1,46 +1,18 @@ package com.ruoyi.ccdi.project.domain.dto; import lombok.Data; - -import java.io.Serializable; +import jakarta.validation.constraints.NotBlank; /** * 模型参数查询DTO - * - * @author ruoyi */ @Data -public class ModelParamQueryDTO implements Serializable { +public class ModelParamQueryDTO { - private static final long serialVersionUID = 1L; + /** 项目ID */ + private Long projectId; - /** - * 模型代码 - */ + /** 模型编码 */ + @NotBlank(message = "模型编码不能为空") private String modelCode; - - /** - * 模型名称 - */ - private String modelName; - - /** - * 参数代码 - */ - private String paramCode; - - /** - * 参数名称 - */ - private String paramName; - - /** - * 参数类型(number-数值,string-字符串,boolean-布尔) - */ - private String paramType; - - /** - * 状态(0-正常,1-停用) - */ - private String status; } 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 index 5fc8f9f..227d449 100644 --- 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 @@ -1,96 +1,52 @@ package com.ruoyi.ccdi.project.domain.dto; +import lombok.Data; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; +import java.util.List; /** * 模型参数保存DTO - * - * @author ruoyi */ @Data -public class ModelParamSaveDTO implements Serializable { +public class ModelParamSaveDTO { - private static final long serialVersionUID = 1L; + /** 项目ID */ + private Long projectId; - /** - * 主键ID(更新时必填) - */ - private Long id; - - /** - * 模型代码 - */ - @NotBlank(message = "模型代码不能为空") + /** 模型编码 */ + @NotBlank(message = "模型编码不能为空") private String modelCode; - /** - * 模型名称 - */ + /** 模型名称 */ @NotBlank(message = "模型名称不能为空") private String modelName; - /** - * 参数代码 - */ - @NotBlank(message = "参数代码不能为空") - private String paramCode; + /** 参数列表 */ + @NotNull(message = "参数列表不能为空") + private List params; - /** - * 参数名称 - */ - @NotBlank(message = "参数名称不能为空") - private String paramName; + @Data + public static class ParamItem { - /** - * 参数值 - */ - @NotBlank(message = "参数值不能为空") - private String paramValue; + /** 参数编码 */ + @NotBlank(message = "参数编码不能为空") + private String paramCode; - /** - * 参数单位 - */ - private String paramUnit; + /** 监测项名称 */ + private String paramName; - /** - * 参数类型(number-数值,string-字符串,boolean-布尔) - */ - @NotBlank(message = "参数类型不能为空") - private String paramType; + /** 参数描述 */ + private String paramDesc; - /** - * 最小值(数值类型) - */ - private BigDecimal minValue; + /** 参数值 - 唯一可修改字段 */ + @NotBlank(message = "参数值不能为空") + private String paramValue; - /** - * 最大值(数值类型) - */ - private BigDecimal maxValue; + /** 参数单位 */ + private String paramUnit; - /** - * 参数描述 - */ - private String description; - - /** - * 排序号 - */ - @NotNull(message = "排序号不能为空") - private Integer sortOrder; - - /** - * 状态(0-正常,1-停用) - */ - private String status; - - /** - * 备注 - */ - private String remark; + /** 排序号 */ + 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 index 075551c..db1e2fd 100644 --- 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 @@ -2,30 +2,15 @@ package com.ruoyi.ccdi.project.domain.vo; import lombok.Data; -import java.io.Serializable; - /** * 模型列表VO - * - * @author ruoyi */ @Data -public class ModelListVO implements Serializable { +public class ModelListVO { - private static final long serialVersionUID = 1L; - - /** - * 模型代码 - */ + /** 模型编码 */ private String modelCode; - /** - * 模型名称 - */ + /** 模型名称 */ private String modelName; - - /** - * 参数数量 - */ - private Integer paramCount; } 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 index c8cdbbf..a983919 100644 --- 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 @@ -2,107 +2,36 @@ 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 { +public class ModelParamVO { - private static final long serialVersionUID = 1L; - - /** - * 主键ID - */ + /** 主键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; - /** - * 参数类型(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; } diff --git a/sql/ccdi_model_param.sql b/sql/ccdi_model_param.sql index fe92fb7..5490eb5 100644 --- a/sql/ccdi_model_param.sql +++ b/sql/ccdi_model_param.sql @@ -4,51 +4,52 @@ DROP TABLE IF EXISTS `ccdi_model_param`; CREATE TABLE `ccdi_model_param` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `model_code` varchar(50) NOT NULL COMMENT '模型代码', + `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(50) NOT NULL COMMENT '参数代码', - `param_name` varchar(100) NOT NULL COMMENT '参数名称', - `param_value` varchar(500) NOT NULL COMMENT '参数值', - `param_unit` varchar(20) DEFAULT NULL COMMENT '参数单位', - `param_type` varchar(20) NOT NULL COMMENT '参数类型(number-数值,string-字符串,boolean-布尔)', - `min_value` decimal(20,4) DEFAULT NULL COMMENT '最小值(数值类型)', - `max_value` decimal(20,4) DEFAULT NULL COMMENT '最大值(数值类型)', - `description` varchar(500) DEFAULT NULL COMMENT '参数描述', - `sort_order` int DEFAULT 0 COMMENT '排序号', - `status` char(1) DEFAULT '0' COMMENT '状态(0-正常,1-停用)', + `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 NULL COMMENT '创建时间', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), - UNIQUE KEY `uk_model_param` (`model_code`, `param_code`) + 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', '系统默认参数'); --- 1. 资产异常变动模型参数 (5个参数) -INSERT INTO `ccdi_model_param` (`model_code`, `model_name`, `param_code`, `param_name`, `param_value`, `param_unit`, `param_type`, `min_value`, `max_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `remark`) VALUES -('ASSET_CHANGE', '资产异常变动模型', 'ASSET_THRESHOLD', '资产变动阈值', '50', '%', 'number', 0, 100, '资产变动百分比阈值,超过此值触发预警', 1, '0', 'admin', NOW(), NULL), -('ASSET_CHANGE', '资产异常变动模型', 'MONITOR_PERIOD', '监控周期', '30', '天', 'number', 1, 365, '资产监控的统计周期', 2, '0', 'admin', NOW(), NULL), -('ASSET_CHANGE', '资产异常变动模型', 'ALERT_FREQUENCY', '预警频率限制', '7', '天', 'number', 1, 30, '同一人员预警的最小间隔天数', 3, '0', 'admin', NOW(), NULL), -('ASSET_CHANGE', '资产异常变动模型', 'MIN_AMOUNT', '最小监控金额', '10000', '元', 'number', 0, 999999999, '低于此金额的变动不监控', 4, '0', 'admin', NOW(), NULL), -('ASSET_CHANGE', '资产异常变动模型', 'ENABLE_FAMILY', '是否监控家属', 'true', NULL, 'boolean', NULL, NULL, '是否同时监控员工家属资产变动', 5, '0', 'admin', NOW(), NULL); +-- ---------------------------- +-- 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', '系统默认参数'); --- 2. 廉政风险评分模型参数 (5个参数) -INSERT INTO `ccdi_model_param` (`model_code`, `model_name`, `param_code`, `param_name`, `param_value`, `param_unit`, `param_type`, `min_value`, `max_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `remark`) VALUES -('RISK_SCORE', '廉政风险评分模型', 'HIGH_RISK_THRESHOLD', '高风险阈值', '80', '分', 'number', 0, 100, '风险评分超过此值为高风险', 1, '0', 'admin', NOW(), NULL), -('RISK_SCORE', '廉政风险评分模型', 'MEDIUM_RISK_THRESHOLD', '中风险阈值', '60', '分', 'number', 0, 100, '风险评分超过此值为中风险', 2, '0', 'admin', NOW(), NULL), -('RISK_SCORE', '廉政风险评分模型', 'SCORE_VALIDITY', '评分有效期', '90', '天', 'number', 1, 365, '风险评分的有效期,过期需重新评估', 3, '0', 'admin', NOW(), NULL), -('RISK_SCORE', '廉政风险评分模型', 'WEIGHT_BEHAVIOR', '行为异常权重', '0.4', NULL, 'number', 0, 1, '行为异常指标在总评分中的权重', 4, '0', 'admin', NOW(), NULL), -('RISK_SCORE', '廉政风险评分模型', 'WEIGHT_RELATION', '关系异常权重', '0.3', NULL, 'number', 0, 1, '关系异常指标在总评分中的权重', 5, '0', 'admin', NOW(), NULL); - --- 3. 关联交易监测模型参数 (5个参数) -INSERT INTO `ccdi_model_param` (`model_code`, `model_name`, `param_code`, `param_name`, `param_value`, `param_unit`, `param_type`, `min_value`, `max_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `remark`) VALUES -('RELATED_TRANSACTION', '关联交易监测模型', 'TRANSACTION_THRESHOLD', '交易金额阈值', '50000', '元', 'number', 0, 999999999, '单笔交易金额超过此值触发监测', 1, '0', 'admin', NOW(), NULL), -('RELATED_TRANSACTION', '关联交易监测模型', 'FREQUENCY_THRESHOLD', '交易频次阈值', '5', '次/月', 'number', 1, 100, '月交易频次超过此值触发监测', 2, '0', 'admin', NOW(), NULL), -('RELATED_TRANSACTION', '关联交易监测模型', 'STATISTICS_WINDOW', '统计时间窗口', '180', '天', 'number', 30, 365, '交易统计的时间窗口', 3, '0', 'admin', NOW(), NULL), -('RELATED_TRANSACTION', '关联交易监测模型', 'ENABLE_INTERMEDIARY', '监测中介关联', 'true', NULL, 'boolean', NULL, NULL, '是否监测通过中介的关联交易', 4, '0', 'admin', NOW(), NULL), -('RELATED_TRANSACTION', '关联交易监测模型', 'BLACKLIST_CHECK', '黑名单校验开关', 'true', NULL, 'boolean', NULL, NULL, '是否对交易对方进行黑名单校验', 5, '0', 'admin', NOW(), NULL); +-- ---------------------------- +-- 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', '系统默认参数');