中介新增 修改接口

This commit is contained in:
wkc
2026-01-29 22:03:42 +08:00
parent 1b043fa2d6
commit ac4e02e8c5
214 changed files with 9397 additions and 671 deletions

View File

@@ -0,0 +1,226 @@
# EasyExcel字典下拉框使用说明
## 功能概述
本项目实现了EasyExcel自定义WriteHandler拦截器可以在生成Excel模板时自动添加基于若依框架字典数据的下拉框。
## 核心组件
### 1. @DictDropdown 注解
位置:`com.ruoyi.common.annotation.DictDropdown`
用于标注需要添加下拉框的字段。
**属性说明:**
| 属性 | 类型 | 默认值 | 说明 |
|-----|------|--------|------|
| dictType | String | 必填 | 字典类型编码,对应若依字典管理中的字典类型 |
| displayType | DisplayType | LABEL | 下拉框显示内容类型LABEL显示标签VALUE显示值 |
| strict | boolean | true | 是否仅允许选择下拉框中的值 |
| hiddenSheetName | String | "dict_hidden" | 隐藏Sheet名称用于存储大量下拉选项 |
### 2. DictDropdownWriteHandler 处理器
位置:`com.ruoyi.dpc.handler.DictDropdownWriteHandler`
核心功能:
- 解析实体类中的@DictDropdown注解
- 从若依字典缓存获取字典数据
- 为对应列添加下拉框验证
- 自动处理下拉选项超过Excel字符限制的情况使用隐藏Sheet
### 3. EasyExcelUtil 工具类扩展
位置:`com.ruoyi.dpc.utils.EasyExcelUtil`
新增方法:
- `importTemplateWithDictDropdown()` - 下载带字典下拉框的导入模板
- `exportExcelWithDictDropdown()` - 导出带字典下拉框的Excel
## 使用示例
### 步骤1在实体类上添加注解
```java
package com.ruoyi.dpc.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.ruoyi.common.annotation.DictDropdown;
import lombok.Data;
@Data
public class DpcEmployeeExcel {
@ExcelProperty(value = "姓名", index = 0)
@ColumnWidth(15)
private String name;
@ExcelProperty(value = "柜员号", index = 1)
@ColumnWidth(15)
private String tellerNo;
// 添加字典下拉框注解
@ExcelProperty(value = "状态", index = 6)
@ColumnWidth(10)
@DictDropdown(dictType = "dpc_employee_status")
private String status;
}
```
### 步骤2在Controller中使用
```java
@RestController
@RequestMapping("/dpc/employee")
public class DpcEmployeeController {
/**
* 下载带字典下拉框的导入模板
*/
@PostMapping("/importTemplateWithDropdown")
public void importTemplateWithDropdown(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(
response,
DpcEmployeeExcel.class,
"员工信息"
);
}
/**
* 导出带字典下拉框的Excel
*/
@PostMapping("/exportWithDropdown")
public void exportWithDropdown(HttpServletResponse response) {
List<DpcEmployeeExcel> list = employeeService.selectEmployeeList();
EasyExcelUtil.exportExcelWithDictDropdown(
response,
list,
DpcEmployeeExcel.class,
"员工信息"
);
}
}
```
## 高级用法
### 1. 显示字典键值而非标签
```java
@DictDropdown(dictType = "dpc_employee_status", displayType = DisplayType.VALUE)
private String status;
```
### 2. 允许手动输入(非严格模式)
```java
@DictDropdown(dictType = "dpc_employee_status", strict = false)
private String status;
```
### 3. 自定义隐藏Sheet名称
```java
@DictDropdown(dictType = "dpc_employee_status", hiddenSheetName = "employee_status_dict")
private String status;
```
## 注意事项
1. **必须指定@ExcelProperty的index属性**
- 字段必须指定@ExcelProperty注解的index值,否则无法正确映射列位置
2. **字典数据必须预先加载到缓存**
- 使用前需要确保字典数据已经加载到Redis缓存中
- 可通过若依系统的字典管理功能预热缓存
3. **下拉选项数量限制**
- 当下拉选项总长度超过255字符时自动使用隐藏Sheet存储
- 隐藏Sheet在Excel中不可见但下拉框功能正常
4. **字段必须标注@ExcelProperty注解**
- 只有同时标注了@ExcelProperty和@DictDropdown的字段才会添加下拉框
## 测试验证
### 接口测试
1. 启动项目后访问Swagger UI`http://localhost:8080/swagger-ui/index.html`
2. 找到员工信息管理相关接口:
- `POST /dpc/employee/importTemplateWithDropdown` - 下载带字典下拉框的模板
3. 调用接口下载模板检查Excel中的下拉框是否正常
### 手动验证
1. 打开下载的Excel模板
2. 点击标注了下拉框的列(如"状态"列)
3. 检查是否出现下拉箭头和选项列表
4. 尝试选择和输入,验证验证规则是否生效
## 技术实现细节
### Excel下拉列表限制处理
Excel对下拉列表的直接字符数有限制约255字符本项目采用以下策略
1. **选项较少时(<255字符**
- 直接使用 `DataValidationHelper.createExplicitListConstraint()` 创建下拉列表
- 下拉选项内联在单元格验证中
2. **选项较多时≥255字符**
- 创建隐藏Sheet存储所有选项
- 使用 `DataValidationHelper.createFormulaListConstraint()` 通过公式引用
- 自动隐藏Sheet`workbook.setSheetHidden()`
### 字典数据获取
```
┌─────────────┐ 缓存查询 ┌─────────────┐
│ DictDropdown │ ───────────▶ │ DictUtils │
│ 注解 │ │ .getDictCache() │
└─────────────┘ └─────────────┘
┌─────────────┐
│ Redis缓存 │
│ sys_dict:key │
└─────────────┘
```
### 列索引映射
通过反射获取字段的@ExcelProperty注解中的index值,确保下拉框添加到正确的列。
## 常见问题
### Q1下拉框没有显示
**可能原因:**
1. 字典数据未加载到缓存
2. 字段未指定@ExcelProperty的index值
3. 字典类型编码错误
**解决方法:**
1. 在若依系统字典管理中,进入对应字典类型,刷新缓存
2. 检查实体类字段注解是否正确
3. 确认dictType值与字典管理中的字典类型一致
### Q2下拉选项显示不完整
**原因:** 选项字符数超过255字符但隐藏Sheet创建失败
**解决方法:** 检查日志中的错误信息确保有权限创建隐藏Sheet
### Q3可以手动输入非下拉选项的值吗
**答案:** 可以,通过设置 `strict = false` 允许手动输入
## 更新日志
| 版本 | 日期 | 说明 |
|------|------|------|
| 1.0.0 | 2026-01-29 | 初始版本,支持字典下拉框功能 |

View File

@@ -0,0 +1,153 @@
# 中介黑名单弹窗优化设计
## 需求概述
优化中介黑名单的添加弹窗交互流程:
1. 点击新增后先选择中介类型(个人/机构)
2. 然后弹出对应类型的信息输入窗口
3. 不需要tab栏直接显示对应类型的表单
4. 机构类型只需输入一次证件号,该值同时作为"证件号"和"统一社会信用代码"
## 设计方案
### 1. 交互流程
**新增操作流程:**
1. 用户点击"新增"按钮
2. 弹出一个简洁的对话框,顶部有两个大卡片式按钮:【个人】和【机构】
3. 用户点击其中一个类型按钮
4. 对应的表单立即展开显示在下方(无需确认操作)
5. 用户填写信息后点击"确定"提交
**修改操作:**
- 修改时直接显示原有数据的表单,不允许切换类型
### 2. 界面布局
```
┌─────────────────────────────────────┐
│ 添加中介黑名单 │
├─────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 个人 │ │ 机构 │ │ ← 大卡片式选择按钮(仅新增时显示)
│ └─────────┘ └─────────┘ │
│ │
│ ──────────────────────────────── │ ← 分隔线
│ │
│ [对应类型的表单字段] │
│ • 姓名/机构名称 │
│ • 证件号 │
│ • 机构类型:统一社会信用代码 │
│ • 其他选填字段... │
│ │
├─────────────────────────────────────┤
│ [ 确定 ] [ 取消 ] │
└─────────────────────────────────────┘
```
### 3. 表单字段
**个人类型表单字段:**
- 姓名/机构名称*(必填)
- 证件号*(必填)
- 人员类型
- 人员子类型
- 性别
- 证件类型
- 手机号码
- 微信号
- 联系地址
- 所在公司
- 职位
- 关联人员ID
- 关联关系
- 备注
**机构类型表单字段:**
- 姓名/机构名称*(必填)
- 证件号*(必填,自动同步到统一社会信用代码)
- 主体类型
- 企业性质
- 成立日期
- 行业分类
- 所属行业
- 注册地址
- 法定代表人
- 法定代表人证件类型
- 法定代表人证件号码
- 股东1-5
- 备注
### 4. 表单验证规则
**个人类型验证:**
```javascript
rules: {
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" },
{ max: 100, message: "姓名长度不能超过100个字符", trigger: "blur" }
],
certificateNo: [
{ required: true, message: "证件号不能为空", trigger: "blur" },
{ max: 50, message: "证件号长度不能超过50个字符", trigger: "blur" }
],
remark: [
{ max: 500, message: "备注长度不能超过500个字符", trigger: "blur" }
]
}
```
**机构类型验证:**
```javascript
rules: {
name: [
{ required: true, message: "机构名称不能为空", trigger: "blur" },
{ max: 100, message: "机构名称长度不能超过100个字符", trigger: "blur" }
],
certificateNo: [
{ required: true, message: "证件号不能为空", trigger: "blur" },
{ max: 18, message: "统一社会信用代码长度为18位", trigger: "blur" }
],
remark: [
{ max: 500, message: "备注长度不能超过500个字符", trigger: "blur" }
]
}
```
### 5. 边界情况处理
| 场景 | 处理方式 |
|------|----------|
| 用户点击新增后未选择类型就点确定 | 禁用"确定"按钮,直到选择类型 |
| 用户选择类型后想重新选择 | 只有关闭弹窗重新打开才能选择 |
| 修改操作时类型锁定 | 隐藏类型选择器,直接显示对应表单 |
| 表单验证失败 | 高亮显示错误字段,滚动到第一个错误位置 |
| 网络请求失败 | 显示错误提示,弹窗保持打开状态 |
### 6. 用户体验优化
1. **视觉反馈**
- 类型选择按钮在未选中时有hover效果
- 选中后按钮变为高亮状态,其他按钮变灰
- 表单展开有淡入动画
2. **输入提示**
- 个人类型的证件号字段下方显示提示:"请输入证件号码"
- 机构类型的证件号字段下方显示提示:"统一社会信用代码18位"
3. **表单布局**
- 保持两列布局,充分利用空间
- 必填项(姓名、证件号)标记红色星号
### 7. 技术实现要点
**状态管理:**
- 新增模式:`isAddMode: true`,显示类型选择器
- 修改模式:`isAddMode: false`,隐藏类型选择器
- 已选类型:`selectedType: '1' | '2' | null`
**数据同步:**
- 机构类型提交时,将 `form.certificateNo` 的值同时赋给 `form.corpCreditCode`

Binary file not shown.

View File

@@ -0,0 +1,388 @@
# 纪检初核系统功能说明书
文档版本V1.0
最后更新日期2026年1月16日
编写目的:本文档旨在全面排查员工异常行为初核系统的核心功能模块、操作流程及业务价值,为系统开发、测试及用户操作提供明确依据。系统旨在通过自动化数据分析与风险模型,高效识别员工潜在风险行为。
# 一.项目管理模块
本模块为系统首页,用于管理所有历史创建的核查项目。页面主要分为导航与搜索区、项目列表区和快捷入口区三大部分。
# 1、原型图
(1) 首页
(2) 新建项目 弹窗页入口
(3) 导入历史项目 弹窗页入口
# 2、导航与搜索区
项目搜索:支持通过输入关键词,对项目名称进行模糊搜索。
新建项目:点击打开一个标准表单,填写项目名称、人员等完整信息,自定义创建新项目。
# 3、项目列表区
本区域以表格形式清晰展示所有初核项目,是用户进行项目管理和监控的核心面板。
# (1) 列表信息列:
项目名称:显示项目名称及下方的简要描述。
创建时间:显示项目的创建日期。
状态:通过色块直观标识项目状态。包括“进行中”、“已完成”等。
目标人数:计划核查的员工总数。
预警人数:当前已被风险模型标记为存在异常行为提示的员工数量。对于“进行中”项目,此数据动态更新。
# (2操作列
查看结果(适用于已完成项目):跳转至该项目的初核结果页。
重新分析(适用于已完成项目): 基于原有数据, 重新运行风险模型, 更新分析结果。
归档将已结束且无需日常关注的项目移入归档库项目结束后可以统一归档并将相关的数据、分析过程图谱、流水等生成PDF文件导出。
进入项目(适用于进行中项目):进入该项目的工作台,开展数据管理、风险初核、专项排查等具体工作。
# 4、快捷入口区
本区域提供一键触达的高频操作按钮,提升常用工作流的启动效率。举例:
(1) 导入历史项目:复制一个历史项目的配置(如人员范围、流水、征信数据配置),快速创建新项目,实现项目模板复用:包括目标人群的流水、征信等信息
(2) 创建当季的季度初核:快速启动一个标准化的季度周期性排查项目,系统可预填当前季度时间范围等配置。
(3) 创建新员工排查:为特定新员工创建专项排查任务。
# 二.项目工作台
用户从项目列表点击“进入项目”后,将进入具体项目的操作空间,涵盖从数据准备到风险识别的全流程。并且通过侧边导航栏可以实现:
返回项目列表:返回当前项目的上一层列表页。
项目状态:明确标识当前项目阶段为“已完成”,提示用户核心分析已结束,当前可能在进行数据补充或复查。
最后更新:显示数据或项目状态的最后变更时间(`2024-01-20 15:30`),用于判断信息的时效性。
# 第一部分数据管理
本页面是进入具体项目后的核心工作台之一,将来自行内流水、征信数据、人工上传不同来源和格式的数据,在一个界面内完成统一接入;并且自动化检查识别数据问题,保证后续风险识别的准确性。
# 1、数据导入
# 1拉取本行信息
功能:点击后需要输入证件号码或者导入文件(上传身份证号表格),自动拉取行内流水、资产等数据信息
# (2) 他行流水导入:
功能批量上传员工的他行银行、或者支付宝微信等交易流水文件。支持Excel、文本型PDF。系统自动解析文件内容提取交易金额、对手方、交易时间、余额、摘要等关键字段。
# (3征信信息导入
功能上传个人信用报告。支持HTML格式的网页文件。系统自动解析报告提取信贷账户、负债总额、担保信息、查询记录等核心数据。
# (4) 员工家庭关系导入:
功能:上传员工的家庭成员信息,用于构建关系人图谱和关联分析。
(5) 名单库选择: 从信息维护——中介库管理内的名单选择确认后的可疑名单
(6) 生成报告:生成初核结果,跳转结果页
# 2、数据质量检查
功能:在数据导入后,系统自动执行一套预定义的质量规则,对数据集进行检查。
检查结果详情:以列表形式直观展示发现的具体问题,例如:
发现23条数据格式不一致如日期格式不统一、金额单位混杂。
发现5条余額链条性异常指相邻交易记录间的余额计算逻辑断裂可能意味着数据缺失或被篡改。
发现12条缺失关键字段如交易记录缺少对手方账号或户名。
质量评分仪表盘:通过三个关键指标量化数据质量:
数据完整性 $(98.5\%)$ :衡量必填字段的填充率。
格式一致性 $(95.2\%)$ :衡量数据遵循预定格式规范的程度。
余额连续性 (92.8%): 衡量流水数据中余额连续、计算正确的程度。
# 第二部分 初核结果总览
本页面为创建的项目中上传的数据经过模型识别出的风险信息总览及明细。
# 1、风险总览
# (1) 风险全局仪表盘
功能:以数据卡片形式集中展示项目整体风险态势。
总人数项目覆盖的员工总数500人
无预警人数432人
低风险人数38人
中风险人数20人
高风险人数10人
# (2) 高风险/中风险人员名单
按风险评分降序排列以列表形式展示所有高风险人员清单以及中风险人员中评分最高的10名员工。信息包括姓名、身份证号、部门、风险评分、触发模型数、核心异常点系统自动提炼的最显著风险
# (3) 查看单个风险人员详情
点击每个风险人员的【查看详情】入口,可钻取至单个员工的全面风险报告。包括其所有异常行为列表、每个行为对应的模型判断依据(规则),以及资产分析、征信概览、关系人图谱等模块。并且针对可疑交易及可疑对象,可以手动添加至关注方。
风险总览:
批量生成报告
批量导出证据
批量添加到关注列表
单个人员详情中的异常明细页面:
添加到案例库
单个人员详情中的资产分析页面:
单个人员详情中的征信摘要页面:
3笔 $>50$ 万
# 2、风险模型
# (1) 模型触发情况总计
内容:以表格形式展示所有风险模型的整体触发情况。包括:模型名称、触发总人数、主要触发人员示例。
操作:点击任一模型的“查看详情”,可跳转至触发该模型的全体人员列表(即“单模型触发列表”)。
# (2各模型触发人员列表
内容通过下拉菜单选择触发某一特定风险模型如“大额交易”、或者同时触发多个如2个以上风险模型的高风险人员、或者通过“搜索人员姓名或工号...”进行精确查询,并支持将常用的筛选组合保存为固定策略,便于下次一键调用。
操作:通过查询可以得到该模型的所有触发人员,并且点击【查看详情】可查看该员工详细的风险情况。
模型触发情况、单模型/多模型筛选触发现图:
# 3、风险明细
# (1) 涉疑交易明细表
功能:展示涉及可疑交易的记录,支持按「全部可疑人员类型」「名单库命中」「模型规则命中」等维度筛选数据,且支持穿透式查看交易流水,用于定位异常资金往来。
内容:包括交易时间、可疑人员、关联人、关联员工(姓名+柜员号),关系(是否是员工本人、或者配偶等关系)、摘要、交易类型、交易金额等字段。
操作:点击「查看详情」,将跳转至可疑流水详情页,展示该条流水的交易对手、交易类型、交易时间等完整信息。
明细表列表内容:
涉疑交易明细表
全部可疑人员类型
↓导出
<table><tr><td>序号</td><td>交易时间</td><td>可疑人员</td><td>关联人</td><td>关联员工</td><td>关系</td><td>摘要/交易类型</td><td>交易金额</td><td>操作</td></tr><tr><td>1</td><td>2024-01-15</td><td>孙七</td><td>孙七</td><td>孙七(809901)</td><td>本人</td><td>/转账</td><td>+¥500,000</td><td>查看详情</td></tr><tr><td>2</td><td>2024-01-10</td><td>王五</td><td>孙七</td><td>孙七(809901)</td><td>配偶</td><td>零钱商户消费</td><td>-¥200,000</td><td>查看详情</td></tr></table>
可疑流水查看详情:
# (2涉及违法人员清单表
内容:展示经系统识别、在外部违法名单库中命中的人员信息,用于快速定位高风险人员,包括违法人员姓名、身份证号、是否为失信被执行人、是否有刑事判决记录、是否有行政处罚记录、是否涉及公安案件、是否被限制高消费、违法信息更新时间等字段。
操作:点击「查看详情」,将展示该人员的违法详情、更新日期等完整背景信息,辅助纪检核查。
涉及违法人员清单表
导出
<table><tr><td>序号</td><td>姓名</td><td>身份证号</td><td>失信被执行人</td><td>刑事判决</td><td>行政处罚</td><td>公安涉案记录</td><td>限制高消费</td><td>违法信息更新时间</td><td>操作</td></tr><tr><td>1</td><td>孙七</td><td>331081199405133029</td><td>是</td><td>否</td><td>是</td><td>是</td><td>是</td><td>2025-03-15</td><td>查看详情</td></tr><tr><td>2</td><td>王五</td><td>331081199405133020</td><td>否</td><td>否</td><td>否</td><td>否</td><td>否</td><td>2025-03-15</td><td>查看详情</td></tr></table>
# 基础信息
姓名:张三
身份证号330106199001011234
# 失信被执行人
状态:是
法院:杭州市中院
标的50万
时间2023-05-15
# 行政处罚
状态:是
类型:罚款
事由:违规经营
机关:杭州市场监管局
# 其他
限制高消费:是
刑事/公安涉案:无
更新时间2025-03-15
# (3) 异常账户清单表
内容:独立列出经模型识别出的所有异常账户,用于监控账户异动,防范资金风险。信息包括:账号、开户人、银行、异常类型(如“突然销户”、“异地启用”)、异常发生时间、状态(如「已销户」「正常」「冻结」)等字段。
操作:点击「查看详情」,可以查看该账号的所有异常交易明细。
# 4、批量导出数据及报告
支持将上述所有列表人员列表、异常清单等导出为Excel。并可一键生成项目多维统计报告PDF/Word从模型触发排行、部门风险分布、风险评分区间等多维度进行分析总结。
# 第三部分 专项排查
本页面为针对单人用户的的深度调查:
# 1、员工详查分析
功能:输入目标员工的身份证号,可选择自定义时间范围,即可根据检查对像及其主要家庭成员(配偶等),根据收入、资产、负债三者的关系进行初核判断,形成正常、收入+负债远低于资产、收入+负债远高于资产等结果风险提示。
# 2、图谱分析
功能:通过图形化方式,揭示隐藏的人员与资金关系网络。输入身份证号,点击“生成图谱”,结果在右侧可视化区域动态呈现。
# (1) 关系人图谱
通过身份证号等信息,可筛选展示以该员工为中心的社会关系网络(如家庭成员、密切关联人),点击节点可查看详情。再点击关联企业可以穿透查询企业下的法人、股东等信息。
# (2资金流图谱
针对个人的资金流向图谱中的可疑资金,向前追溯多层交易对手。且资金流向分析中支持:手工加入资金流向节点,或备注资金流向。
# (3) 实控账户图谱
输入身份证号,生成该员工实际控制(可能非本人名下)的账户网络图。排查逻辑主要基于手机登录丰收互联次数、线下多次代理存取等进行判断。
# 3、拓展查询
# (1) 采购查询
功能:用于纪检/内审人员查询特定采购事项的核心信息,聚焦“采购集中度、金额异常”等风险排查。可筛选查询的采购时段,以及关联员工,查询其参与的所有采购。
内容:清单包含采购事项名称、交易日期、采购金额、供应商名称、关联员工等核心字段。
也可穿透展示采购全量信息(采购方式、入围/中标公司、经办人、对方账号等)。
![](images/04c20c26a4d53a04600eab386fa232df7f0982b942e6bdc1969eda2bfca3405c.jpg)
# (2人员调动查询
功能:查询员工的岗位/机构调动记录,辅助排查“异常调动、岗位晋升合规性”。可选择查询时间和员工姓名,查询其所有调动记录。
内容:包含姓名、工号、调动时间、原/现岗位、原/现机构、调动原因等核心字段。
![](images/b1ef684713661c869e161574fc6b0666b305c781ff568846a97ea7da985fef12.jpg)
# (3招聘查询
功能:查询招聘事项信息,辅助排查“招聘流程合规性、面试官关联风险”。可筛选查询时间段和员工姓名,查询其招聘详情。
内容:包含招聘人员、岗位、招聘时间、关联面试官、面试结果等核心字段。
# 第四部分 流水明细查询
本页面为流水明细查询,对拉取的本行流水以及上传的他行流水进行批量分析。实现功能如下:
# 1、多帐户流水明细合并
可以将多个银行的流水合并成一个流水文件,左侧为筛选内容,可以筛选账号和银行进行查询;主页面可以选择按交易金额、交易时间等自主排序。且可切换对手方分析
# 2、全量流水二次分析
对全量流水表中的关键流水,可以进行手工提交“加入分析”,实现将关键流水重新放置在一个新的交易表中进行分析。
![](images/6ad8e568de5ec7d3febb3b8799c0bffc562530798037457b2a259c7ed7077146.jpg)
# 三. 信息维护
# 1、中介库管理
功能:建立并维护外部中介人员/机构黑名单库。支持Excel导入更新。当员工交易对手命中该库时系统将自动产生高风险预警。
# 2、员工信息管理
功能:对员工实控账户、实控手机号、关系人信息等进行批量维护
说明:对于系统无法自动获取或关联的员工附属信息(如经查实的实际控制账户、未在户口本上的特定关系人等),提供手工录入与维护功能。
# 3、信贷客户家庭关系维护
可以上传并且维护信贷家庭关系表格信息。
# 四. 参数配置
功能:模型参数管理
说明:提供风险模型核心参数的维护界面、细化阈值规则。筛选模型名称:筛选(可选大额交易模型、可疑兼职模型、可疑外汇交易模型三种),得到阈值参数配置内容如下:
# 1、大额交易模型
识别大额/高频资金交易,检测调整单笔交易额、频繁转账次数等阈值
# 2、可疑兼职模型
识别异常额外收入,监测调整月度固定收入、固定对手转入等阈值
# 3、可疑外汇交易模型
识别异常外汇收支,监测调整单笔购汇金额、频繁外汇交易次数等阈值
# 模型参数管理
<table><tr><td>模型名称</td><td>可疑外汇交易模型</td><td>✓</td><td>查询</td></tr></table>
阈值参数配置
<table><tr><td>监测项</td><td>描述</td><td>阈值设置</td><td>单位</td></tr><tr><td>单笔购汇金额</td><td>单笔购汇超过该金额</td><td>50000</td><td>美元/笔</td></tr><tr><td>单笔结汇金额</td><td>单笔结汇超过该金额</td><td>50000</td><td>美元/笔</td></tr><tr><td>跨境汇款金额</td><td>单笔跨境汇款超过该金额</td><td>100000</td><td>美元/笔</td></tr><tr><td>月度购汇总额</td><td>月度累计购汇超过</td><td>200000</td><td>美元/月</td></tr><tr><td>月度结汇总额</td><td>月度累计结汇超过</td><td>200000</td><td>美元/月</td></tr><tr><td>频繁外汇交易</td><td>单日外汇交易次数超过</td><td>5</td><td>次/日</td></tr><tr><td>保存配置</td><td>恢复默认</td><td></td><td></td></tr></table>
# 五.系统管理
# 1、用户权限
系统管理员可对访问系统的用户账号进行增、删、改、禁用等操作。
# 2、项目统计
根据年度、组长、对像、成果等进行项目统计
# 3、操作日志管理
记录用户的关键操作(登录、数据导入、模型运行、报告生成等),支持按时间、用户、操作类型进行查询。
![](images/68bd718419ce288731c5e52789ac1e5dc02ac931ac319760ccd2bcca0d3ddb08.jpg)

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,667 @@
# 纪检初核系统功能模块划分方案
## 需求分析概述
基于《纪检初核系统功能说明书-V1.0》的分析,该系统是一个用于银行纪检部门进行员工行为初核的综合性管理平台。
---
# 模块详细设计
## 模块一:项目管理域 (dpc-project)
### 职责
项目全生命周期管理,包括项目创建、配置、执行、归档等全过程管理。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 项目列表页 | /project/list | 展示所有项目的主页面 |
| 新建项目弹窗 | /project/add | 新建项目表单弹窗 |
| 导入历史项目弹窗 | /project/import | 复制历史项目配置 |
| 项目详情页 | /project/detail/:id | 查看项目详细信息 |
| 项目归档确认弹窗 | /project/archive | 归档项目确认 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `project:list` | 查看项目列表 | 查看项目列表页 |
| `project:create` | 创建项目 | 新建项目 |
| `project:edit` | 编辑项目 | 修改项目信息 |
| `project:delete` | 删除项目 | 删除项目 |
| `project:archive` | 归档项目 | 归档已完成项目 |
| `project:import` | 导入历史项目 | 复制历史项目配置 |
| `project:result:view` | 查看结果 | 查看已完成项目结果 |
| `project:reanalyze` | 重新分析 | 重新运行风险模型 |
| `project:enter` | 进入项目 | 进入项目工作台 |
| `project:quarter:create` | 创建季度初核 | 快捷创建季度初核项目 |
| `project:newemployee:create` | 创建新员工排查 | 快捷创建新员工排查 |
| `project:export` | 导出项目 | 导出项目数据 |
### 数据表设计
#### pj_project (项目信息表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| project_id | BIGINT | 项目ID主键 | 是 |
| project_name | VARCHAR(100) | 项目名称 | 是 |
| project_desc | VARCHAR(500) | 项目描述 | 否 |
| start_time | DATETIME | 开始时间 | 是 |
| end_time | DATETIME | 结束时间 | 是 |
| status | CHAR(1) | 状态0进行中 1已完成 2已归档 | 是 |
| target_count | INT | 目标人数 | 是 |
| warning_count | INT | 预警人数 | 是 |
| create_by | VARCHAR(64) | 创建人 | 是 |
| create_time | DATETIME | 创建时间 | 是 |
| update_by | VARCHAR(64) | 更新人 | 否 |
| update_time | DATETIME | 更新时间 | 否 |
| remark | VARCHAR(500) | 备注 | 否 |
#### pj_project_member (项目成员表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| member_id | BIGINT | 成员ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| user_id | BIGINT | 用户ID | 是 |
| member_role | CHAR(1) | 角色1组长 2成员 | 是 |
| join_time | DATETIME | 参与时间 | 是 |
#### pj_project_config (项目配置表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| config_id | BIGINT | 配置ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| data_source_config | TEXT | 数据源配置JSON | 否 |
| time_range_config | TEXT | 时间范围配置JSON | 否 |
| risk_model_config | TEXT | 风险模型配置JSON | 否 |
| other_config | TEXT | 其他配置JSON | 否 |
---
## 模块二:数据接入域 (dpc-data)
### 职责
多源数据采集与标准化处理,支持本行数据、他行流水、征信报告、家庭关系等多种数据源接入。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 数据管理页 | /workspace/:projectId/data | 项目工作台-数据管理 |
| 本行信息拉取弹窗 | /data/internal/pull | 输入证件号拉取本行数据 |
| 他行流水上传弹窗 | /data/external/upload | 上传他行流水文件 |
| 征信信息上传弹窗 | /data/credit/upload | 上传征信报告文件 |
| 家庭关系上传弹窗 | /data/family/upload | 上传家庭关系信息 |
| 名单库选择弹窗 | /data/watchlist/select | 选择可疑名单 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `data:internal:import` | 本行信息导入 | 拉取本行流水、资产数据 |
| `data:external:import` | 他行流水导入 | 上传他行流水文件 |
| `data:credit:import` | 征信信息导入 | 上传征信报告文件 |
| `data:family:import` | 家庭关系导入 | 上传家庭关系信息 |
| `data:watchlist:select` | 名单库选择 | 选择可疑名单 |
| `data:report:generate` | 生成报告 | 生成初核结果报告 |
### 数据表设计
#### di_import_record (导入记录表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| import_id | BIGINT | 导入ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| data_type | CHAR(1) | 数据类型1本行 2他行 3征信 4家庭关系 5名单库 | 是 |
| file_name | VARCHAR(200) | 文件名 | 否 |
| file_path | VARCHAR(500) | 文件路径 | 否 |
| import_status | CHAR(1) | 导入状态0待处理 1处理中 2成功 3失败 | 是 |
| record_count | INT | 记录数 | 否 |
| error_message | TEXT | 错误信息 | 否 |
| import_by | VARCHAR(64) | 导入人 | 是 |
| import_time | DATETIME | 导入时间 | 是 |
#### di_transaction (交易流水表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| trans_id | BIGINT | 交易ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 员工ID | 是 |
| account_no | VARCHAR(50) | 账号 | 是 |
| bank_name | VARCHAR(50) | 银行名称 | 是 |
| trans_time | DATETIME | 交易时间 | 是 |
| trans_amount | DECIMAL(18,2) | 交易金额 | 是 |
| balance | DECIMAL(18,2) | 余额 | 否 |
| counter_party | VARCHAR(200) | 交易对手 | 否 |
| summary | VARCHAR(200) | 摘要 | 否 |
| trans_type | VARCHAR(50) | 交易类型 | 否 |
#### di_credit_report (征信报告表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| credit_id | BIGINT | 征信ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 员工ID | 是 |
| credit_accounts | TEXT | 信贷账户JSON | 否 |
| total_debt | DECIMAL(18,2) | 负债总额 | 否 |
| guarantee_info | TEXT | 担保信息JSON | 否 |
| query_records | TEXT | 查询记录JSON | 否 |
#### di_family_relation (家庭关系表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| relation_id | BIGINT | 关系ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 员工ID | 是 |
| relation_name | VARCHAR(50) | 关系人姓名 | 是 |
| relation_type | VARCHAR(20) | 关系类型(配偶、父母、子女等) | 是 |
| id_card | VARCHAR(18) | 身份证号 | 是 |
| phone | VARCHAR(20) | 联系电话 | 否 |
---
## 模块三:数据质量域 (dpc-quality)
### 职责
数据质量检查与清洗,通过预定义规则自动检测数据格式、连续性、完整性等问题。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 数据质量页 | /workspace/:projectId/quality | 数据质量检查结果 |
| 质量评分仪表盘 | /quality/dashboard/:projectId | 质量评分可视化 |
| 质量问题详情 | /quality/issues/:projectId | 质量问题列表 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `quality:check:run` | 运行质量检查 | 执行数据质量检查 |
| `quality:check:view` | 查看检查结果 | 查看质量检查结果 |
| `quality:score:view` | 查看质量评分 | 查看质量评分仪表盘 |
| `quality:issue:view` | 查看质量问题 | 查看质量问题详情 |
### 数据表设计
#### dq_quality_rule (质量规则表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| rule_id | BIGINT | 规则ID主键 | 是 |
| rule_name | VARCHAR(100) | 规则名称 | 是 |
| rule_type | CHAR(1) | 规则类型1格式 2连续性 3完整性 | 是 |
| rule_expression | TEXT | 规则表达式 | 是 |
| error_level | CHAR(1) | 错误级别1低 2中 3高 | 是 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
#### dq_check_result (检查结果表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| result_id | BIGINT | 结果ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| rule_id | BIGINT | 规则ID | 是 |
| error_count | INT | 错误数量 | 是 |
| check_time | DATETIME | 检查时间 | 是 |
#### dq_quality_score (质量评分表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| score_id | BIGINT | 评分ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| completeness_score | DECIMAL(5,2) | 数据完整性评分 | 是 |
| consistency_score | DECIMAL(5,2) | 格式一致性评分 | 是 |
| continuity_score | DECIMAL(5,2) | 余额连续性评分 | 是 |
| total_score | DECIMAL(5,2) | 总评分 | 是 |
| check_time | DATETIME | 检查时间 | 是 |
---
## 模块四:风险分析域 (dpc-risk)
### 职责
风险模型引擎与风险评估,通过配置的风险模型进行自动风险识别和评分。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 风险总览页 | /workspace/:projectId/risk/overview | 风险仪表盘 |
| 风险人员列表 | /risk/persons/:projectId | 风险人员列表 |
| 风险人员详情 | /risk/person/:id | 单个人员详情 |
| 风险模型页 | /workspace/:projectId/risk/models | 模型触发情况 |
| 涉疑交易明细 | /risk/transaction/:projectId | 涉疑交易列表 |
| 违法人员清单 | /risk/illegal/:projectId | 违法人员列表 |
| 异常账户清单 | /risk/account/:projectId | 异常账户列表 |
| 风险模型配置 | /risk/model/config | 风险模型参数配置 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `risk:overview:view` | 查看风险总览 | 查看风险仪表盘 |
| `risk:person:view` | 查看风险人员 | 查看风险人员列表 |
| `risk:person:detail` | 查看人员详情 | 查看人员详情 |
| `risk:person:export` | 导出风险人员 | 导出风险人员列表 |
| `risk:model:view` | 查看风险模型 | 查看模型触发情况 |
| `risk:model:detail` | 查看模型详情 | 查看模型触发详情 |
| `risk:transaction:view` | 查看交易明细 | 查看涉疑交易明细 |
| `risk:transaction:export` | 导出交易明细 | 导出交易明细 |
| `risk:illegal:view` | 查看违法人员 | 查看违法人员清单 |
| `risk:illegal:export` | 导出违法人员 | 导出违法人员清单 |
| `risk:account:view` | 查看异常账户 | 查看异常账户清单 |
| `risk:account:export` | 导出异常账户 | 导出异常账户清单 |
| `risk:model:config` | 配置风险模型 | 配置风险模型参数 |
| `risk:watchlist:add` | 添加关注 | 添加关注对象 |
### 数据表设计
#### ra_risk_model (风险模型表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| model_id | BIGINT | 模型ID主键 | 是 |
| model_name | VARCHAR(100) | 模型名称 | 是 |
| model_type | VARCHAR(50) | 模型类型 | 是 |
| model_config | TEXT | 模型配置JSON | 是 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
#### ra_risk_person (风险人员表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| person_id | BIGINT | 人员ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 员工ID | 是 |
| risk_score | INT | 风险评分 | 是 |
| risk_level | CHAR(1) | 风险等级0无 1低 2中 3高 | 是 |
| trigger_models | TEXT | 触发模型JSON | 否 |
| core_risks | TEXT | 核心异常点JSON | 否 |
#### ra_suspicious_transaction (涉疑交易表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| trans_id | BIGINT | 交易ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 关联员工ID | 否 |
| relation_person | VARCHAR(50) | 关联人姓名 | 否 |
| relation_type | VARCHAR(20) | 关系类型 | 否 |
| trans_time | DATETIME | 交易时间 | 是 |
| trans_amount | DECIMAL(18,2) | 交易金额 | 是 |
| trans_type | VARCHAR(50) | 交易类型 | 否 |
| counter_party | VARCHAR(200) | 交易对手 | 否 |
| hit_watchlist | CHAR(1) | 是否命中名单库 | 否 |
| hit_model | CHAR(1) | 是否命中模型规则 | 否 |
#### ra_illegal_person (违法人员表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| illegal_id | BIGINT | 违法人员ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| person_name | VARCHAR(50) | 姓名 | 是 |
| id_card | VARCHAR(18) | 身份证号 | 是 |
| is_dishonesty | CHAR(1) | 是否失信被执行人 | 否 |
| is_criminal | CHAR(1) | 是否刑事判决 | 否 |
| is_administrative | CHAR(1) | 是否行政处罚 | 否 |
| is_police_case | CHAR(1) | 是否公安案件 | 否 |
| is_limit_consumption | CHAR(1) | 是否限制高消费 | 否 |
| update_time | DATETIME | 更新时间 | 否 |
| illegal_detail | TEXT | 违法详情 | 否 |
#### ra_abnormal_account (异常账户表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| account_id | BIGINT | 账户ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| account_no | VARCHAR(50) | 账号 | 是 |
| account_holder | VARCHAR(50) | 开户人 | 是 |
| bank_name | VARCHAR(50) | 银行名称 | 是 |
| abnormal_type | VARCHAR(50) | 异常类型 | 是 |
| abnormal_time | DATETIME | 异常发生时间 | 是 |
| account_status | VARCHAR(20) | 账户状态 | 是 |
---
## 模块五:专项调查域 (dpc-investigation)
### 职责
深度分析与可视化,包括员工详查、图谱分析、拓展查询、流水明细查询等功能。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 员工详查分析 | /workspace/:projectId/investigation/employee | 员工收支资产分析 |
| 关系人图谱 | /investigation/graph/relation/:id | 社会关系网络图 |
| 资金流图谱 | /investigation/graph/fund/:id | 资金流向追踪图 |
| 实控账户图谱 | /investigation/graph/account/:id | 实控账户网络图 |
| 采购查询 | /investigation/purchase | 采购事项查询 |
| 人员调动查询 | /investigation/transfer | 人员调动记录查询 |
| 招聘查询 | /investigation/recruit | 招聘事项查询 |
| 流水明细合并 | /investigation/flow/merge | 多账户流水合并 |
| 流水二次分析 | /investigation/flow/reanalyze | 全量流水二次分析 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `investigation:employee:analyze` | 员工详查分析 | 分析员工收支资产关系 |
| `investigation:graph:relation` | 关系人图谱 | 查看社会关系网络 |
| `investigation:graph:fund` | 资金流图谱 | 查看资金流向 |
| `investigation:graph:account` | 实控账户图谱 | 查看实控账户网络 |
| `investigation:purchase:view` | 采购查询 | 查询采购事项 |
| `investigation:transfer:view` | 人员调动查询 | 查询人员调动记录 |
| `investigation:recruit:view` | 招聘查询 | 查询招聘事项 |
| `investigation:flow:merge` | 流水合并 | 合并多账户流水 |
| `investigation:flow:reanalyze` | 流水二次分析 | 全量流水二次分析 |
| `investigation:flow:export` | 流水导出 | 导出流水数据 |
### 数据表设计
#### si_investigation_record (调查记录表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| record_id | BIGINT | 记录ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| employee_id | BIGINT | 员工ID | 是 |
| investigation_type | VARCHAR(50) | 调查类型 | 是 |
| investigation_result | TEXT | 调查结果JSON | 否 |
| create_by | VARCHAR(64) | 创建人 | 是 |
| create_time | DATETIME | 创建时间 | 是 |
#### si_graph_node (图谱节点表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| node_id | BIGINT | 节点ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| node_type | VARCHAR(20) | 节点类型1人员 2企业 3账户 | 是 |
| node_name | VARCHAR(100) | 节点名称 | 是 |
| node_data | TEXT | 节点数据JSON | 否 |
#### si_graph_edge (图谱关系边表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| edge_id | BIGINT | 边ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| source_node_id | BIGINT | 源节点ID | 是 |
| target_node_id | BIGINT | 目标节点ID | 是 |
| edge_type | VARCHAR(50) | 关系类型 | 是 |
| edge_data | TEXT | 关系数据JSON | 否 |
---
## 模块六:基础数据域 (dpc-masterdata)
### 职责
基础信息维护,包括中介库管理、员工信息管理、信贷客户家庭关系维护等。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 中介库管理 | /masterdata/meddle | 中介机构黑名单管理 |
| 员工信息管理 | /masterdata/employee | 员工实控信息管理 |
| 实控账户管理 | /masterdata/employee/account | 员工实控账户维护 |
| 实控手机号管理 | /masterdata/employee/phone | 员工实控手机号维护 |
| 信贷客户家庭关系 | /masterdata/family | 信贷客户家庭关系维护 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `masterdata:meddle:list` | 查看中介库列表 | 查看中介列表 |
| `masterdata:meddle:add` | 新增中介 | 添加中介条目 |
| `masterdata:meddle:edit` | 修改中介 | 修改中介信息 |
| `masterdata:meddle:remove` | 删除中介 | 删除中介条目 |
| `masterdata:meddle:export` | 导出中介库 | 导出中介数据 |
| `masterdata:meddle:import` | 导入中介库 | 导入中介数据 |
| `masterdata:employee:list` | 查看员工列表 | 查看员工列表 |
| `masterdata:employee:edit` | 修改员工信息 | 修改员工信息 |
| `masterdata:employee:account` | 实控账户管理 | 管理实控账户 |
| `masterdata:employee:phone` | 实控手机号管理 | 管理实控手机号 |
| `masterdata:family:list` | 查看家庭关系 | 查看家庭关系列表 |
| `masterdata:family:add` | 新增家庭关系 | 添加家庭关系 |
| `masterdata:family:edit` | 修改家庭关系 | 修改家庭关系 |
| `masterdata:family:remove` | 删除家庭关系 | 删除家庭关系 |
### 数据表设计
#### md_meddle (中介库表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| meddle_id | BIGINT | 中介ID主键 | 是 |
| meddle_name | VARCHAR(100) | 中介名称 | 是 |
| meddle_type | VARCHAR(20) | 中介类型1人员 2机构 | 是 |
| id_card | VARCHAR(18) | 身份证号 | 否 |
| credit_code | VARCHAR(50) | 统一信用代码 | 否 |
| contact | VARCHAR(50) | 联系人 | 否 |
| phone | VARCHAR(20) | 联系电话 | 否 |
| address | VARCHAR(200) | 地址 | 否 |
| risk_reason | VARCHAR(500) | 风险原因 | 否 |
| risk_level | CHAR(1) | 风险等级1低 2中 3高 | 是 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
| create_by | VARCHAR(64) | 创建人 | 是 |
| create_time | DATETIME | 创建时间 | 是 |
| update_by | VARCHAR(64) | 更新人 | 否 |
| update_time | DATETIME | 更新时间 | 否 |
| remark | VARCHAR(500) | 备注 | 否 |
#### md_employee_ext (员工扩展信息表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| ext_id | BIGINT | 扩展ID主键 | 是 |
| user_id | BIGINT | 用户ID | 是 |
| employee_no | VARCHAR(20) | 员工工号 | 是 |
| department | VARCHAR(100) | 所属部门 | 是 |
| position | VARCHAR(50) | 职位 | 是 |
| level | VARCHAR(20) | 职级 | 否 |
| hire_date | DATE | 入职日期 | 否 |
#### md_control_account (实控账户表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| account_id | BIGINT | 账户ID主键 | 是 |
| user_id | BIGINT | 用户ID | 是 |
| account_no | VARCHAR(50) | 账号 | 是 |
| account_bank | VARCHAR(50) | 开户银行 | 是 |
| account_type | VARCHAR(20) | 账户类型 | 是 |
| relation_type | VARCHAR(50) | 关系类型 | 否 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
#### md_control_phone (实控手机号表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| phone_id | BIGINT | 手机号ID主键 | 是 |
| user_id | BIGINT | 用户ID | 是 |
| phone_number | VARCHAR(20) | 手机号 | 是 |
| relation_type | VARCHAR(50) | 关系类型 | 否 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
---
## 模块七:报告与统计域 (dpc-report)
### 职责
报告生成与数据分析,包括初核结果报告生成、多维统计分析、数据导出等功能。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 报告生成 | /workspace/:projectId/report/generate | 生成初核结果报告 |
| 报告模板管理 | /report/template | 管理报告模板 |
| 报告历史 | /report/history | 报告生成历史 |
| 项目统计 | /report/project/statistics | 项目统计分析 |
| 年度统计 | /report/statistics/year | 按年度统计 |
| 组长统计 | /report/statistics/leader | 按组长统计 |
| 对象统计 | /report/statistics/target | 按对象统计 |
| 成果统计 | /report/statistics/result | 按成果统计 |
### 功能权限
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `report:generate` | 生成报告 | 生成初核结果报告 |
| `report:template:view` | 查看报告模板 | 查看报告模板 |
| `report:template:edit` | 编辑报告模板 | 编辑报告模板 |
| `report:history:view` | 查看报告历史 | 查看报告生成历史 |
| `report:stat:view` | 查看项目统计 | 查看项目统计 |
| `report:stat:export` | 导出统计数据 | 导出统计数据 |
### 数据表设计
#### rp_report_template (报告模板表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| template_id | BIGINT | 模板ID主键 | 是 |
| template_name | VARCHAR(100) | 模板名称 | 是 |
| template_type | VARCHAR(20) | 模板类型 | 是 |
| template_content | TEXT | 模板内容 | 是 |
| status | CHAR(1) | 状态0停用 1启用 | 是 |
#### rp_report_history (报告生成历史表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| history_id | BIGINT | 历史ID主键 | 是 |
| project_id | BIGINT | 项目ID | 是 |
| report_name | VARCHAR(200) | 报告名称 | 是 |
| report_type | VARCHAR(20) | 报告类型 | 是 |
| report_path | VARCHAR(500) | 报告路径 | 是 |
| generate_by | VARCHAR(64) | 生成人 | 是 |
| generate_time | DATETIME | 生成时间 | 是 |
#### rp_project_statistics (项目统计表)
| 字段名 | 类型 | 说明 | 必填 |
|-------|------|------|-----|
| stat_id | BIGINT | 统计ID主键 | 是 |
| stat_year | INT | 统计年度 | 是 |
| total_projects | INT | 总项目数 | 是 |
| completed_projects | INT | 已完成项目数 | 是 |
| ongoing_projects | INT | 进行中项目数 | 是 |
| total_people | INT | 总核查人数 | 是 |
| risk_people | INT | 风险人数 | 是 |
| report_count | INT | 报告生成数 | 是 |
---
## 模块八:系统管理域 (扩展 ruoyi-system)
### 职责
系统配置与权限管理,扩展若依原有的系统管理功能,增加项目统计、操作日志等。
### 页面清单
| 页面名称 | 路由 | 说明 |
|---------|------|------|
| 用户管理 | /system/user | 若依现有功能 |
| 角色管理 | /system/role | 若依现有功能 |
| 菜单管理 | /system/menu | 若依现有功能 |
| 部门管理 | /system/dept | 若依现有功能 |
| 参数配置 | /system/config | 风险模型参数配置 |
| 操作日志 | /monitor/operlog | 若依现有功能 |
| 登录日志 | /monitor/logininfor | 若依现有功能 |
### 功能权限
若依原有权限体系,按需扩展纪检初核相关权限。
---
# 若依模块结构
```
discipline-prelim-check/
├── ruoyi-admin/ # 启动模块
├── ruoyi-framework/ # 框架核心
├── ruoyi-system/ # 系统管理(扩展)
├── ruoyi-common/ # 公共组件
├── dpc-project/ # 模块一:项目管理域 (新增)
├── dpc-data/ # 模块二:数据接入域 (新增)
├── dpc-quality/ # 模块三:数据质量域 (新增)
├── dpc-risk/ # 模块四:风险分析域 (新增)
├── dpc-investigation/ # 模块五:专项调查域 (新增)
├── dpc-masterdata/ # 模块六:基础数据域 (新增)
├── dpc-report/ # 模块七:报告与统计域 (新增)
└── ruoyi-ui/
└── src/
├── views/
│ ├── project/ # 项目管理
│ │ ├── index.vue # 项目列表
│ │ ├── addDialog.vue # 新建项目弹窗
│ │ └── importDialog.vue # 导入历史项目
│ ├── workspace/ # 项目工作台(容器)
│ │ ├── data.vue # 数据管理
│ │ ├── quality.vue # 数据质量
│ │ ├── risk/ # 风险分析
│ │ │ ├── overview.vue # 风险总览
│ │ │ ├── models.vue # 风险模型
│ │ │ └── detail/ # 风险明细
│ │ └── investigation/ # 专项调查
│ ├── masterdata/ # 基础数据
│ │ ├── meddle.vue # 中介库管理
│ │ ├── employee.vue # 员工信息管理
│ │ └── family.vue # 家庭关系维护
│ └── report/ # 报告统计
│ ├── generate.vue # 报告生成
│ └── statistics/ # 统计分析
└── api/
├── project.js
├── data.js
├── quality.js
├── risk.js
├── investigation.js
├── masterdata.js
└── report.js
```
---
# 实施优先级
## 第一阶段:基础框架
1. **项目管理域** - 建立项目概念实现项目CRUD
2. **数据接入域** - 实现基础数据导入功能
3. **系统管理域** - 扩展权限和配置
## 第二阶段:核心分析
4. **数据质量域** - 实现数据质量检查
5. **风险分析域** - 实现核心风险模型
6. **基础数据域** - 建立基础数据支撑
## 第三阶段:高级功能
7. **专项调查域** - 实现图谱分析和深度调查
8. **报告与统计域** - 实现报告生成和统计
---
# 验证方式
1. 各模块可独立开发、测试、部署
2. 模块间通过定义良好的接口交互
3. 使用若依代码生成器快速生成CRUD框架
4. 每个模块有独立的菜单权限配置
5. 数据库表按模块前缀命名,便于管理

Binary file not shown.