Tidak Ada Deskripsi

yangjingjing 5b8eba0a75 feat(special-equipment): 新增设备铭牌照片字段(MinIO,新增必填) 2 hari lalu
.gitee 08d4493994 update 优化 bug 模板 2 tahun lalu
.run 8136a0191a !860 发布 5.6.2 版本 依赖升级 3 minggu lalu
ruoyi-admin f7dc5de8f4 feat(risk-inspectionTask): 移动端登录改造+巡检审核模块+DB增量脚本 3 hari lalu
ruoyi-common 8136a0191a !860 发布 5.6.2 版本 依赖升级 3 minggu lalu
ruoyi-extend bbc684b335 update 删除已经过期的配置类 6 bulan lalu
ruoyi-modules 5b8eba0a75 feat(special-equipment): 新增设备铭牌照片字段(MinIO,新增必填) 2 hari lalu
ruoyi-ui 0f21724883 feat(risk): 集成风控品控平台业务模块 1 Minggu lalu
script 8136a0191a !860 发布 5.6.2 版本 依赖升级 3 minggu lalu
sql 5b8eba0a75 feat(special-equipment): 新增设备铭牌照片字段(MinIO,新增必填) 2 hari lalu
.editorconfig 9a3111487a update 缩进配置文件.editorconfig添加.yaml文件格式支持 3 tahun lalu
.gitignore 0f21724883 feat(risk): 集成风控品控平台业务模块 1 Minggu lalu
LICENSE edaf57148a update 更新开源协议软件名 5 tahun lalu
README.md a9141ac1b2 docs(readme): 清理文件末尾残留的 RuoYi 官方 README 内容 1 Minggu lalu
pom.xml 0f21724883 feat(risk): 集成风控品控平台业务模块 1 Minggu lalu

README.md

风控品控管理系统

**Spring Boot 3.5.15** | **JDK 17** | **Vue 3.5 + TypeScript 5** | **Element Plus 2.x** | **MyBatis Plus 3.5** | **MySQL 8.0** | **License MIT** 基于 **RuoYi-Vue-Plus 5.6.2** 构建的企业级安全风险管控与质量管控一体化平台

一、平台简介

风控品控管理系统是面向生产/制造/工程类企业的安全风险与质量管控一体化 SaaS 平台,覆盖 人员管理、隐患排查、危险源管控、风险警示、特种设备、巡检作业、事故上报、舆情监控 等核心业务场景,提供完整的数据看板、移动化作业流程与多维度统计决策支持。

底层基于 Dromara 开源框架 RuoYi-Vue-Plus(重写 RuoYi-Vue 针对分布式集群与多租户场景的全方位升级版本)深度定制开发。

核心特性

  • 🔐 安全可靠 — Sa-Token 鉴权、AES+RSA 接口传输加密、数据脱敏、SQL 监控
  • 🚀 高性能 — Undertow 容器、Redisson 客户端、HikariCP 连接池、雪花 ID
  • 🧩 业务完备 — 12 大风控业务模块,覆盖 200+ 个企业风险管控场景
  • 📊 数据驱动 — 内置 4 大仪表盘接口、20+ 个统计维度、动态图表可视化
  • 🌐 企业级 — 多租户/多角色/数据权限、MinIO 分布式文件存储、操作日志全留痕

二、业务模块

1. 人员与组织

模块 路径 功能
人员信息 /risk/personnel 员工档案、岗位、工种、状态管理
人员变更 /risk/personnelChange 岗位/部门/工种变动履历记录
人员证书 /risk/personnelCert 特种作业证、健康证等资质文件

2. 风险管控

模块 路径 功能
安全隐患 /risk/hiddenDanger 隐患上报、整改、复查、销项全流程闭环
危险源上报 /risk/dangerSource 危险源登记、风险等级评估、防控措施落实
风险警示 /risk/warning 风险预警信息发布与跟踪
舆情推送 /risk/publicOpinion 重大舆情监测、影响范围、定级处置

3. 设备与巡检

模块 路径 功能
特种设备 /risk/specialEquipment 设备台账、检验日期、维护记录
巡检任务 /risk/inspectionTask 巡检计划、打卡、巡检项/记录/详情三级管理

4. 作业与事故

模块 路径 功能
作业上报 /risk/workReport 高危作业申报、审批、监护
事故上报 /risk/accident 事故登记、调查、考核、闭环
审计工作 /risk/auditFile 审计文件上传、归档、检索

5. 数据看板

模块 路径 功能
工作台首页 /index 4 张数据卡片 + 2 张图表 + 最新隐患/培训/公告三段式布局

仪表盘内置 4 个真实数据接口(无任何 mock fallback):

GET /risk/dashboard/stats         数据统计(卡片 + 月度趋势 + 隐患类型分布)
GET /risk/dashboard/recentDangers 最新隐患 Top N
GET /risk/dashboard/recentTrainings 近期培训列表
GET /risk/dashboard/recentNotices   最近公告(对接 sys_notice)

三、技术栈

后端

技术 版本 用途
Spring Boot 3.5.15 主框架
JDK 17 运行时
MyBatis Plus 3.5.x ORM 框架
Sa-Token 1.45.x 鉴权与单点登录
Undertow - Web 容器
Redisson 3.x Redis 客户端
MinIO 8.x 分布式文件存储
MySQL Connector 8.x 数据库驱动
Druid 1.2.x SQL 监控
Hutool 5.x 工具集
MapStruct Plus - Bean 转换

前端

技术 版本 用途
Vue 3.5.x 主框架
TypeScript 5.x 类型系统
Element Plus 2.x UI 组件库
Vite 5.x 构建工具
Pinia 2.x 状态管理
Vue Router 4.x 路由
ECharts 5.x 图表
Axios 1.x HTTP 客户端

基础设施

组件 版本 用途
MySQL 8.0+ 业务数据库
Redis 6.0+ 缓存/分布式锁
MinIO RELEASE.2024+ 对象存储
Nginx 1.24+ 反向代理

四、项目结构

RuoYi-Vue-Plus/
├── ruoyi-admin/                          # 启动模块
│   ├── src/main/java/
│   │   └── org/dromara/web/
│   │       └── domain/vo/                # Web 层 VO(如 TenantListVo)
│   └── src/main/resources/
│       ├── application.yml               # 主配置
│       ├── application-dev.yml           # 开发环境
│       └── application-prod.yml          # 生产环境
│
├── ruoyi-common/                         # 通用组件
│   ├── ruoyi-common-core/                # 核心工具
│   ├── ruoyi-common-redis/               # Redis 封装
│   ├── ruoyi-common-security/            # 安全框架
│   ├── ruoyi-common-mybatis/             # MyBatis 扩展
│   ├── ruoyi-common-oss/                 # 对象存储
│   ├── ruoyi-common-excel/               # Excel 导入导出
│   ├── ruoyi-common-encrypt/             # 加密解密
│   ├── ruoyi-common-satoken/             # Sa-Token 集成
│   ├── ruoyi-common-web/                 # Web 拦截器/过滤器
│   ├── ruoyi-common-tenant/              # 多租户
│   ├── ruoyi-common-sensitive/           # 数据脱敏
│   ├── ruoyi-common-log/                 # 日志
│   ├── ruoyi-common-idempotent/          # 分布式幂等
│   ├── ruoyi-common-ratelimiter/         # 限流
│   ├── ruoyi-common-websocket/           # WebSocket
│   ├── ruoyi-common-sse/                 # SSE 推送
│   ├── ruoyi-common-mail/                # 邮件
│   ├── ruoyi-common-sms/                 # 短信
│   ├── ruoyi-common-social/              # 三方登录
│   ├── ruoyi-common-translation/         # 数据翻译
│   ├── ruoyi-common-doc/                 # 接口文档
│   └── ruoyi-common-bom/                 # 版本管理
│
├── ruoyi-modules/                        # 业务模块
│   ├── ruoyi-system/                     # 系统管理(用户/角色/菜单/部门/字典等)
│   ├── ruoyi-workflow/                   # 工作流
│   ├── ruoyi-job/                        # 分布式任务调度
│   ├── ruoyi-generator/                  # 代码生成器
│   ├── ruoyi-demo/                       # Demo 案例
│   └── ruoyi-risk/                       # ★ 风控业务模块(本系统核心)
│       └── src/main/
│           ├── java/org/dromara/risk/
│           │   ├── controller/           # REST 控制器
│           │   ├── service/              # 业务接口
│           │   │   └── impl/             # 业务实现(含 DashboardServiceImpl)
│           │   ├── mapper/               # MyBatis Mapper
│           │   ├── domain/               # 实体
│           │   │   ├── bo/               # 入参对象
│           │   │   └── vo/               # 出参对象
│           │   └── utils/                # 工具类
│           └── resources/mapper/risk/    # MyBatis XML
│
├── ruoyi-extend/                         # 扩展模块
│   ├── ruoyi-monitor-admin/              # SpringBoot Admin
│   └── ruoyi-snailjob-server/            # SnailJob 调度服务端
│
├── ruoyi-ui/                             # 旧版前端(Vue2 + Element UI)— 弃用
├── sql/                                  # 业务 SQL 脚本
│   ├── risk_menu.sql                     # 菜单数据
│   └── risk_tables.sql                   # 建表脚本
│
└── script/                               # 运维脚本
    ├── bin/                              # 启动/停止/重启
    └── docker/                           # Docker 编排

前端项目位于仓库外/Users/yangjingjing/Programmer/code/risk/plus-ui(Vue 3 + TypeScript + Element Plus)


五、数据库设计

风控业务表(共 12 张主表 + 关联子表)

表名 说明 关键字段
risk_personnel 人员档案 personnel_code, name, dept_id, position
risk_personnel_change 人员变更履历 change_type, before_value, after_value
risk_personnel_cert 人员证书 cert_type, cert_no, expire_date
risk_hidden_danger 安全隐患 danger_code, level, status, handler
risk_danger_source 危险源 source_code, source_type, risk_level
risk_warning 风险警示 title, level, release_time
risk_special_equipment 特种设备 equipment_code, type, next_check_date
risk_inspection_task 巡检任务 task_code, plan_date, status
risk_inspection_record 巡检记录 task_id, inspector, check_time
risk_inspection_record_detail 巡检明细 record_id, item_id, result
risk_work_report 作业上报 report_code, work_type, status
risk_audit_file 审计文件 file_name, biz_type, biz_id, upload_time
risk_accident 事故上报 accident_code, level, status, report_time
risk_public_opinion 舆情推送 title, level, publish_time, influence

建表规范

所有时间戳字段(report_time / discover_time / publish_time / release_time / upload_time 等)均为 NOT NULL Default NULL。前端表单不传时,由对应 *ServiceImpl.insertByBoMapstructUtils.convert 之前自动填充 new java.util.Date()

⚠️ 此为风控业务模块强约定,避免 MyBatis Plus 默认 insert 行为引发 Field doesn't have a default value 错误。

业务编号生成

RiskCodeGenerator 工具类统一生成防冲突业务编号,格式为 {业务前缀}-{企业编码}-{yyyyMMdd}-{4 位流水号},保证全局唯一。


六、接口规范

加密通信

  • 传输加密:基于动态 AES + RSA 加密请求体,每次请求使用不同秘钥
  • 登录加密:用户名密码使用 AES 加密后传输
  • 请求头约定isEncrypt: true 标识启用加密

统一响应

{
  "code": 200,
  "msg": "操作成功",
  "data": { ... }
}

权限注解

@SaCheckLogin                          // 登录校验
@SaCheckRole("admin")                  // 角色校验
@SaCheckPermission("risk:danger:add")  // 权限校验
@SaCheckSafe("二级认证")                // 二级认证校验

字典翻译

@Dict(dictCode = "danger_level", source = "level")
private String level;                  // 自动翻译为 "重大/较大/一般/轻微"

七、本地开发

环境要求

  • JDK 17+
  • Maven 3.8+
  • Node.js 18+
  • MySQL 8.0+
  • Redis 6.0+
  • MinIO(可选,文件存储用)

后端启动

cd RuoYi-Vue-Plus
mvn clean install -DskipTests

# 启动应用
java -jar ruoyi-admin.jar \
  --spring.profiles.active=dev

前端启动

cd plus-ui
npm install
npm run dev          # 开发模式
npm run build:prod   # 生产构建(输出至 dist/)

初始化数据

# 1. 创建数据库
mysql -uroot -p -e "CREATE DATABASE risk_control_platform DEFAULT CHARSET utf8mb4;"

# 2. 导入系统表 + 风控业务表
mysql -uroot -p risk_control_platform < script/sql/ry_vue_5.X.sql
mysql -uroot -p risk_control_platform < sql/risk_tables.sql
mysql -uroot -p risk_control_platform < sql/risk_menu.sql

默认账号

账号 密码 角色
admin admin123 超级管理员

八、部署架构

                ┌──────────────┐
                │   Nginx      │  :80/:443 反向代理
                └──────┬───────┘
                       │
        ┌──────────────┴──────────────┐
        │                             │
   ┌────▼─────┐                 ┌─────▼────┐
   │ Frontend │                 │ Backend  │  ruoyi-admin.jar
   │ (Vite)   │                 │(Spring   │
   │  dist/   │                 │ Boot 3)  │
   └──────────┘                 └────┬─────┘
                                    │
        ┌────────────┬───────────────┼─────────────┬────────────┐
        │            │               │             │            │
   ┌────▼───┐  ┌─────▼────┐  ┌───────▼────┐  ┌─────▼────┐  ┌────▼────┐
   │ MySQL  │  │  Redis   │  │  MinIO     │  │ SnailJob │  │ Admin   │
   │  8.0   │  │   6.0+   │  │  分布式存储  │  │ 调度中心  │  │ 监控    │
   └────────┘  └──────────┘  └────────────┘  └──────────┘  └─────────┘

生产部署:参考 script/docker/docker-compose.yml 一键编排


九、安全与性能约定

配置
接口加密 api-decrypt.enabled=true(生产必须)
登录验证码 已关闭(多租户/三方登录/验证码一并关闭)
SQL 监控 p6spy 完整输出
数据脱敏 身份证/手机号/银行卡/邮箱
接口幂等 @Idempotent 注解防重
分布式限流 Redisson 限流器
文件上传 Nginx client_max_body_size 100m;

十、远程仓库


十一、版本历史

版本 日期 说明
v1.0.0 2026-06 整合 12 大风控业务模块,首版上线
5.6.2 - 基于 RuoYi-Vue-Plus 官方版本

十二、致谢

本项目基于开源框架 RuoYi-Vue-Plus 开发,遵循 MIT 协议开源。