# Proposal: 添加中介人员黑名单管理模块 ## Change ID `add-intermediary-blacklist` ## Summary 添加中介人员黑名单管理模块,实现外部中介人员/机构黑名单库的建立和维护。该模块支持 Excel 模板下载、批量导入、增删改查等功能,是系统中信息维护模块的核心子功能之一。 ## Motivation 目前系统缺少中介人员黑名单管理功能。用户需要: 1. 建立并维护外部中介人员/机构黑名单库 2. 通过 Excel 批量导入中介名单数据 3. 对中介名单进行增、删、改、查操作 4. 支持按姓名、证件号、机构名称等条件查询 5. 在项目工作台中选择确认后的可疑名单 6. 当员工交易对手命中该库时,系统自动产生高风险预警 ## Scope 本提案实现以下功能: ### 包含的功能 - **3.1.1 名单导入** - Excel 模板下载(包含必填字段示例) - Excel 批量导入中介名单 - 导入数据验证与错误提示 - **3.1.2 名单维护** - 新增中介信息(个人/机构) - 编辑中介信息 - 删除中介信息(带使用检查) - 批量删除 - **3.1.3 名单查询** - 按姓名/机构名称模糊搜索 - 按证件号精确搜索 - 按中介类型筛选(个人/机构) - 按状态筛选(有效/失效) - **3.1.4 名单导出** - 导出当前查询结果为 Excel ### 明确排除 - **3.1.5 名单选择**(在项目工作台中选择名单的功能,属于项目工作台模块) - **3.1.6 自动预警**(命中黑名单产生预警的功能,属于风险分析模块) ## Proposed Design 详见 [design.md](./design.md) ## Alternatives Considered ### 选项1:使用若依代码生成器 **优点**: - 快速生成标准 CRUD 代码 - 自动生成前端页面和 API - 符合项目基本规范 **缺点**: - 需要手动调整 Excel 导入导出逻辑 - 需要手动添加数据验证规则 - 需要手动处理个人/机构两种类型的差异显示 **决定**:部分采用。使用代码生成器生成基础 CRUD 代码,然后手动添加 Excel 导入导出和业务验证逻辑。 ### 选项2:完全自定义开发 **优点**: - 完全控制实现细节 - 可以根据业务需求灵活定制 **缺点**: - 开发周期较长 - 需要确保代码风格与若依框架一致 **决定**:不采用。中介黑名单管理是标准 CRUD 功能,使用代码生成器可提高开发效率。 ## Impact ### 后端影响 - 新建 `ruoyi-dpc` 模块(如果不存在),与若依框架代码分离 - 新增表:`ccdi_intermediary_blacklist`(中介黑名单主表) - 新增权限:`dpc:intermediary:list`, `dpc:intermediary:query`, `dpc:intermediary:add`, `dpc:intermediary:edit`, `dpc:intermediary:remove`, `dpc:intermediary:export`, `dpc:intermediary:import` - Controller 层:`ruoyi-dpc/src/main/java/com/ruoyi/dpc/controller/CcdiIntermediaryBlacklistController.java` ### 前端影响 - 新增视图:`ruoyi-ui/src/views/dpcIntermediary/` - 新增 API:`ruoyi-ui/src/api/dpcIntermediary.js` - 新增菜单:信息维护 > 中介库管理(注意与数据库中菜单表进行联动修改) ### 数据库影响 - 新增表:`ccdi_intermediary_blacklist` ## Dependencies - 依赖 EasyExcel 进行 Excel 导入导出(参考 `replace-poi-with-easyexcel` change) - 依赖若依框架的文件上传功能 - 依赖若依框架的权限系统 ## Related Changes - `replace-poi-with-easyexcel` - 依赖 EasyExcel 替换完成后的 Excel 工具 ## Open Questions 1. **证件号校验**: - 是否需要添加格式校验? - 建议:添加基本格式校验,但不强制要求(可能是历史数据) 2. **删除前的使用检查**: - 如何判断中介信息是否在项目中使用? - 建议:暂时不实现使用检查,允许直接删除(可在后续版本中添加关联表) 3. **中介类型的数据结构**: - 个人和机构是否分开存储? - 建议:使用同一张表,通过 `intermediary_type` 字段区分 ## Success Criteria - [ ] 用户可以下载 Excel 导入模板 - [ ] 用户可以通过 Excel 批量导入中介名单 - [ ] 用户可以新增中介信息(个人/机构) - [ ] 用户可以编辑中介信息 - [ ] 用户可以删除中介信息 - [ ] 用户可以按多种条件查询中介名单 - [ ] 用户可以导出查询结果为 Excel - [ ] 导入时进行数据验证并提示错误 ## References - [模块设计文档](../../../doc/modules/03-信息维护模块.md) - [若依开发文档](https://doc.ruoyi.vip/)