Selaa lähdekoodia

feat(risk-warning): 新增风险警示附件上传字段(MinIO)

- risk_warning 表加 attachment_url + attachment_name 字段
- 新增独立升级脚本 risk_warning_attachment.sql(幂等)
- 同步更新 risk_tables.sql + risk_control_platform.sql
- RiskWarning Do/Bo/Vo 加 attachmentUrl + attachmentName 字段
- Bo 加 @Size 校验,Vo 加 @ExcelProperty 导出注解

需求: 新增风险警示时支持上传附件(MinIO 对象存储),详情页支持下载
yangjingjing 3 päivää sitten
vanhempi
commit
efa9080778

+ 10 - 0
ruoyi-modules/ruoyi-risk/src/main/java/org/dromara/risk/domain/RiskWarning.java

@@ -110,6 +110,16 @@ public class RiskWarning extends TenantEntity {
      */
     private String remark;
 
+    /**
+     * 附件访问URL(MinIO对象存储路径)
+     */
+    private String attachmentUrl;
+
+    /**
+     * 附件原始文件名(下载时显示用)
+     */
+    private String attachmentName;
+
     /**
      * 删除标志
      */

+ 12 - 0
ruoyi-modules/ruoyi-risk/src/main/java/org/dromara/risk/domain/bo/RiskWarningBo.java

@@ -120,6 +120,18 @@ public class RiskWarningBo extends BaseEntity {
      */
     private String remark;
 
+    /**
+     * 附件访问URL(MinIO对象存储路径)
+     */
+    @Size(min = 0, max = 500, message = "附件URL长度不能超过{max}个字符")
+    private String attachmentUrl;
+
+    /**
+     * 附件原始文件名(下载时显示用)
+     */
+    @Size(min = 0, max = 200, message = "附件名称长度不能超过{max}个字符")
+    private String attachmentName;
+
     /**
      * 关键词搜索
      */

+ 12 - 0
ruoyi-modules/ruoyi-risk/src/main/java/org/dromara/risk/domain/vo/RiskWarningVo.java

@@ -130,6 +130,18 @@ public class RiskWarningVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 附件访问URL(MinIO对象存储路径)
+     */
+    @ExcelProperty(value = "附件URL")
+    private String attachmentUrl;
+
+    /**
+     * 附件原始文件名
+     */
+    @ExcelProperty(value = "附件名称")
+    private String attachmentName;
+
     /**
      * 创建部门
      */

+ 3 - 1
sql/risk_control_platform.sql

@@ -1839,6 +1839,8 @@ CREATE TABLE `risk_warning` (
   `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '已发布' COMMENT '状态',
   `read_count` int DEFAULT '0' COMMENT '阅读数',
   `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
+  `attachment_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '附件访问URL(MinIO对象存储路径)',
+  `attachment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '附件原始文件名',
   `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
   `create_by` bigint DEFAULT NULL COMMENT '创建者',
   `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
@@ -1860,7 +1862,7 @@ CREATE TABLE `risk_warning` (
 
 LOCK TABLES `risk_warning` WRITE;
 /*!40000 ALTER TABLE `risk_warning` DISABLE KEYS */;
-INSERT INTO `risk_warning` VALUES (2069712122753589250,'000000','','test1','food_safety','urgent','','1',NULL,NULL,'2026-06-25 00:00:00',NULL,NULL,'疯狂的狮子Li','全员','已发布',0,NULL,103,1,'2026-06-24 17:19:58',1,'2026-06-24 17:19:58','0');
+INSERT INTO `risk_warning` VALUES (2069712122753589250,'000000','','test1','food_safety','urgent','','1',NULL,NULL,'2026-06-25 00:00:00',NULL,NULL,'疯狂的狮子Li','全员','已发布',0,NULL,NULL,NULL,103,1,'2026-06-24 17:19:58',1,'2026-06-24 17:19:58','0');
 /*!40000 ALTER TABLE `risk_warning` ENABLE KEYS */;
 UNLOCK TABLES;
 

+ 2 - 0
sql/risk_tables.sql

@@ -281,6 +281,8 @@ CREATE TABLE `risk_warning` (
   `status` VARCHAR(20) DEFAULT '已发布' COMMENT '状态',
   `read_count` INT DEFAULT 0 COMMENT '阅读数',
   `remark` VARCHAR(500) COMMENT '备注',
+  `attachment_url` VARCHAR(500) COMMENT '附件访问URL(MinIO对象存储路径)',
+  `attachment_name` VARCHAR(200) COMMENT '附件原始文件名',
   `create_dept` BIGINT COMMENT '创建部门',
   `create_by` BIGINT COMMENT '创建者',
   `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

+ 49 - 0
sql/risk_warning_attachment.sql

@@ -0,0 +1,49 @@
+-- =============================================================
+-- 风控平台 数据库增量脚本  风险警示-附件字段
+-- 适用版本: 风控平台 2026-07-07 之前的部署
+--
+-- 需求:
+--   风险警示发布时支持上传附件(基于 MinIO 对象存储),
+--   详情页支持查看与下载附件。
+--
+-- 本脚本特征:
+--   - 全部 SQL 幂等,可重复执行(基于 INFORMATION_SCHEMA 判断)
+--   - 新环境用 risk_control_platform.sql 部署;已有环境用本脚本增量升级
+--   - 不修改业务表已有数据,仅追加字段
+-- =============================================================
+
+SET NAMES utf8mb4;
+
+-- =============================================================
+-- 1. 风险警示表 risk_warning 加附件字段
+-- =============================================================
+
+-- 1.1 attachment_url 附件访问 URL(MinIO public 桶路径)
+SET @sql = (SELECT IF(
+  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
+     WHERE TABLE_SCHEMA = DATABASE()
+       AND TABLE_NAME   = 'risk_warning'
+       AND COLUMN_NAME  = 'attachment_url') = 0,
+  'ALTER TABLE `risk_warning` ADD COLUMN `attachment_url` VARCHAR(500) DEFAULT NULL COMMENT ''附件访问URL(MinIO对象存储路径)'' AFTER `remark`',
+  'SELECT 1'));
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+-- 1.2 attachment_name 附件原始文件名(下载时显示用)
+SET @sql = (SELECT IF(
+  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
+     WHERE TABLE_SCHEMA = DATABASE()
+       AND TABLE_NAME   = 'risk_warning'
+       AND COLUMN_NAME  = 'attachment_name') = 0,
+  'ALTER TABLE `risk_warning` ADD COLUMN `attachment_name` VARCHAR(200) DEFAULT NULL COMMENT ''附件原始文件名'' AFTER `attachment_url`',
+  'SELECT 1'));
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+
+-- =============================================================
+-- 2. 验证清单(可手动 SELECT 确认)
+-- =============================================================
+-- SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
+--   FROM INFORMATION_SCHEMA.COLUMNS
+--  WHERE TABLE_SCHEMA = DATABASE()
+--    AND TABLE_NAME = 'risk_warning'
+--    AND COLUMN_NAME IN ('attachment_url', 'attachment_name');