2026-01-29 13:39:47 +08:00
|
|
|
|
# Design: 增强中介黑名单字段并实现类型化模板导入
|
|
|
|
|
|
|
|
|
|
|
|
## 数据库设计
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 表扩展:ccdi_intermediary_blacklist
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
在现有表基础上添加以下字段:
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 个人类型字段 (以 indiv_ 前缀标识,individual 缩写)
|
|
|
|
|
|
-- ============================================================
|
2026-01-30 14:15:21 +08:00
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_type` VARCHAR(30) DEFAULT NULL COMMENT '人员类型(中介、职业背债人、房产中介等)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_sub_type` VARCHAR(50) DEFAULT NULL COMMENT '人员子类型(本人、配偶等)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_gender` CHAR(1) DEFAULT NULL COMMENT '性别(M男 F女 O其他)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_cert_type` VARCHAR(30) DEFAULT '身份证' COMMENT '证件类型';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号码(加密存储)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_wechat` VARCHAR(50) DEFAULT NULL COMMENT '微信号';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_address` VARCHAR(200) DEFAULT NULL COMMENT '联系地址';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_company` VARCHAR(100) DEFAULT NULL COMMENT '所在公司';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_position` VARCHAR(100) DEFAULT NULL COMMENT '职位/职务';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_related_id` VARCHAR(20) DEFAULT NULL COMMENT '关联人员ID';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_relation` VARCHAR(50) DEFAULT NULL COMMENT '关联关系';
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 机构类型字段 (以 corp_ 前缀标识,corporation 缩写)
|
|
|
|
|
|
-- ============================================================
|
2026-01-30 14:15:21 +08:00
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_credit_code` VARCHAR(18) DEFAULT NULL COMMENT '统一社会信用代码';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_type` VARCHAR(50) DEFAULT NULL COMMENT '主体类型(有限责任公司、股份有限公司等)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_nature` VARCHAR(50) DEFAULT NULL COMMENT '企业性质(国企、民企、外企等)';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_industry_category` VARCHAR(100) DEFAULT NULL COMMENT '行业分类';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_industry` VARCHAR(100) DEFAULT NULL COMMENT '所属行业';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_establish_date` DATE DEFAULT NULL COMMENT '成立日期';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_address` VARCHAR(500) DEFAULT NULL COMMENT '注册地址';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_rep` VARCHAR(50) DEFAULT NULL COMMENT '法定代表人';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_cert_type` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件类型';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_cert_no` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件号码';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_1` VARCHAR(30) DEFAULT NULL COMMENT '股东1';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_2` VARCHAR(30) DEFAULT NULL COMMENT '股东2';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_3` VARCHAR(30) DEFAULT NULL COMMENT '股东3';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_4` VARCHAR(30) DEFAULT NULL COMMENT '股东4';
|
|
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_5` VARCHAR(30) DEFAULT NULL COMMENT '股东5';
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 通用字段
|
|
|
|
|
|
-- ============================================================
|
2026-01-30 14:15:21 +08:00
|
|
|
|
ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `data_source` VARCHAR(30) DEFAULT 'MANUAL' COMMENT '数据来源(MANUAL手动录入 SYSTEM系统同步 IMPORT批量导入 API接口获取)';
|
2026-01-29 13:39:47 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 完整表结构
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
2026-01-30 14:15:21 +08:00
|
|
|
|
CREATE TABLE `ccdi_intermediary_blacklist` (
|
2026-01-29 13:39:47 +08:00
|
|
|
|
`intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID',
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 核心字段(原有)
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
`name` VARCHAR(100) NOT NULL COMMENT '姓名/机构名称',
|
|
|
|
|
|
`certificate_no` VARCHAR(50) DEFAULT NULL COMMENT '证件号',
|
|
|
|
|
|
`intermediary_type` CHAR(1) NOT NULL DEFAULT '1' COMMENT '中介类型(1个人 2机构)',
|
|
|
|
|
|
`status` CHAR(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
|
|
|
|
|
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 个人类型字段(新增,以 indiv_ 前缀标识)
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
`indiv_type` VARCHAR(30) DEFAULT NULL COMMENT '人员类型',
|
|
|
|
|
|
`indiv_sub_type` VARCHAR(50) DEFAULT NULL COMMENT '人员子类型',
|
|
|
|
|
|
`indiv_gender` CHAR(1) DEFAULT NULL COMMENT '性别(M男 F女 O其他)',
|
|
|
|
|
|
`indiv_cert_type` VARCHAR(30) DEFAULT '身份证' COMMENT '证件类型',
|
|
|
|
|
|
`indiv_phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号码',
|
|
|
|
|
|
`indiv_wechat` VARCHAR(50) DEFAULT NULL COMMENT '微信号',
|
|
|
|
|
|
`indiv_address` VARCHAR(200) DEFAULT NULL COMMENT '联系地址',
|
|
|
|
|
|
`indiv_company` VARCHAR(100) DEFAULT NULL COMMENT '所在公司',
|
|
|
|
|
|
`indiv_position` VARCHAR(100) DEFAULT NULL COMMENT '职位/职务',
|
|
|
|
|
|
`indiv_related_id` VARCHAR(20) DEFAULT NULL COMMENT '关联人员ID',
|
|
|
|
|
|
`indiv_relation` VARCHAR(50) DEFAULT NULL COMMENT '关联关系',
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 机构类型字段(新增,以 corp_ 前缀标识)
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
`corp_credit_code` VARCHAR(18) DEFAULT NULL COMMENT '统一社会信用代码',
|
|
|
|
|
|
`corp_type` VARCHAR(50) DEFAULT NULL COMMENT '主体类型',
|
|
|
|
|
|
`corp_nature` VARCHAR(50) DEFAULT NULL COMMENT '企业性质',
|
|
|
|
|
|
`corp_industry_category` VARCHAR(100) DEFAULT NULL COMMENT '行业分类',
|
|
|
|
|
|
`corp_industry` VARCHAR(100) DEFAULT NULL COMMENT '所属行业',
|
|
|
|
|
|
`corp_establish_date` DATE DEFAULT NULL COMMENT '成立日期',
|
|
|
|
|
|
`corp_address` VARCHAR(500) DEFAULT NULL COMMENT '注册地址',
|
|
|
|
|
|
`corp_legal_rep` VARCHAR(50) DEFAULT NULL COMMENT '法定代表人',
|
|
|
|
|
|
`corp_legal_cert_type` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件类型',
|
|
|
|
|
|
`corp_legal_cert_no` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件号码',
|
|
|
|
|
|
`corp_shareholder_1` VARCHAR(30) DEFAULT NULL COMMENT '股东1',
|
|
|
|
|
|
`corp_shareholder_2` VARCHAR(30) DEFAULT NULL COMMENT '股东2',
|
|
|
|
|
|
`corp_shareholder_3` VARCHAR(30) DEFAULT NULL COMMENT '股东3',
|
|
|
|
|
|
`corp_shareholder_4` VARCHAR(30) DEFAULT NULL COMMENT '股东4',
|
|
|
|
|
|
`corp_shareholder_5` VARCHAR(30) DEFAULT NULL COMMENT '股东5',
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 通用字段(新增)
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
`data_source` VARCHAR(30) DEFAULT 'MANUAL' COMMENT '数据来源',
|
|
|
|
|
|
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 审计字段(原有)
|
|
|
|
|
|
-- ============================================================
|
|
|
|
|
|
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
|
|
|
|
|
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
|
|
|
|
|
|
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
|
|
|
|
|
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
|
|
|
|
|
|
|
|
|
|
|
|
PRIMARY KEY (`intermediary_id`),
|
|
|
|
|
|
KEY `idx_name` (`name`),
|
|
|
|
|
|
KEY `idx_certificate_no` (`certificate_no`),
|
|
|
|
|
|
KEY `idx_intermediary_type` (`intermediary_type`),
|
|
|
|
|
|
KEY `idx_corp_credit_code` (`corp_credit_code`),
|
|
|
|
|
|
KEY `idx_indiv_phone` (`indiv_phone`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='中介人员黑名单表';
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 新增字段说明
|
|
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | 适用类型 | 必填 | 默认值 |
|
|
|
|
|
|
|-------|------|------|---------|-----|-------|
|
|
|
|
|
|
| indiv_type | VARCHAR(30) | 人员类型(中介、职业背债人等) | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_sub_type | VARCHAR(50) | 人员子类型(本人、配偶等) | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_gender | CHAR(1) | 性别(M男 F女 O其他) | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_cert_type | VARCHAR(30) | 证件类型 | 个人 | 否 | 身份证 |
|
|
|
|
|
|
| indiv_phone | VARCHAR(20) | 手机号码 | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_wechat | VARCHAR(50) | 微信号 | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_address | VARCHAR(200) | 联系地址 | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_company | VARCHAR(100) | 所在公司 | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_position | VARCHAR(100) | 职位/职务 | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_related_id | VARCHAR(20) | 关联人员ID | 个人 | 否 | NULL |
|
|
|
|
|
|
| indiv_relation | VARCHAR(50) | 关联关系 | 个人 | 否 | NULL |
|
|
|
|
|
|
| corp_credit_code | VARCHAR(18) | 统一社会信用代码 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_type | VARCHAR(50) | 主体类型 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_nature | VARCHAR(50) | 企业性质 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_industry_category | VARCHAR(100) | 行业分类 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_industry | VARCHAR(100) | 所属行业 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_establish_date | DATE | 成立日期 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_address | VARCHAR(500) | 注册地址 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_legal_rep | VARCHAR(50) | 法定代表人 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_legal_cert_type | VARCHAR(30) | 法定代表人证件类型 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_legal_cert_no | VARCHAR(30) | 法定代表人证件号码 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_shareholder_1 | VARCHAR(30) | 股东1 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_shareholder_2 | VARCHAR(30) | 股东2 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_shareholder_3 | VARCHAR(30) | 股东3 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_shareholder_4 | VARCHAR(30) | 股东4 | 机构 | 否 | NULL |
|
|
|
|
|
|
| corp_shareholder_5 | VARCHAR(30) | 股东5 | 机构 | 否 | NULL |
|
|
|
|
|
|
| data_source | VARCHAR(30) | 数据来源 | 全部 | 否 | MANUAL |
|
|
|
|
|
|
|
|
|
|
|
|
**字段命名规则:**
|
|
|
|
|
|
- **个人字段**:统一使用 `indiv_` 前缀(individual 缩写),便于快速识别
|
|
|
|
|
|
- **机构字段**:统一使用 `corp_` 前缀(corporation 缩写),便于快速识别
|
|
|
|
|
|
- **通用字段**:无前缀,适用于所有类型
|
|
|
|
|
|
|
|
|
|
|
|
## 后端设计
|
|
|
|
|
|
|
|
|
|
|
|
### 模块结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
ruoyi-dpc/
|
|
|
|
|
|
├── src/main/java/com/ruoyi/dpc/
|
|
|
|
|
|
│ ├── controller/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ └── CcdiIntermediaryBlacklistController.java (修改)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ ├── domain/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ ├── CcdiIntermediaryBlacklist.java (修改 - 添加新字段)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ │ ├── dto/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ │ ├── CcdiIntermediaryBlacklistAddDTO.java (保留 - 兼容)
|
|
|
|
|
|
│ │ │ ├── CcdiIntermediaryBlacklistEditDTO.java (保留 - 兼容)
|
|
|
|
|
|
│ │ │ ├── CcdiIntermediaryBlacklistQueryDTO.java (保留)
|
|
|
|
|
|
│ │ │ ├── CcdiIntermediaryPersonAddDTO.java (新增)
|
|
|
|
|
|
│ │ │ └── CcdiIntermediaryEntityAddDTO.java (新增)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ │ ├── vo/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ │ ├── CcdiIntermediaryBlacklistVO.java (保留 - 列表用)
|
|
|
|
|
|
│ │ │ ├── CcdiIntermediaryPersonDetailVO.java (新增)
|
|
|
|
|
|
│ │ │ └── CcdiIntermediaryEntityDetailVO.java (新增)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ │ └── excel/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ ├── CcdiIntermediaryBlacklistExcel.java (保留 - 通用模板)
|
|
|
|
|
|
│ │ ├── CcdiIntermediaryPersonExcel.java (新增)
|
|
|
|
|
|
│ │ └── CcdiIntermediaryEntityExcel.java (新增)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ ├── mapper/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ │ └── CcdiIntermediaryBlacklistMapper.java
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ └── service/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ ├── ICcdiIntermediaryBlacklistService.java (修改接口)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
│ └── impl/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
│ └── CcdiIntermediaryBlacklistServiceImpl.java (修改实现)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
└── src/main/resources/mapper/dpc/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
└── CcdiIntermediaryBlacklistMapper.xml
|
2026-01-29 13:39:47 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Controller 层设计
|
|
|
|
|
|
|
|
|
|
|
|
**新增接口:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
@RestController
|
|
|
|
|
|
@RequestMapping("/dpc/intermediary")
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public class CcdiIntermediaryBlacklistController extends BaseController {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
// ... 现有接口保持不变 ...
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 下载个人中介导入模板(带字典下拉框)
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Operation(summary = "下载个人中介导入模板")
|
|
|
|
|
|
@PostMapping("/importPersonTemplate")
|
|
|
|
|
|
public void importPersonTemplate(HttpServletResponse response) {
|
|
|
|
|
|
EasyExcelUtil.importTemplateWithDictDropdown(
|
|
|
|
|
|
response,
|
2026-01-30 14:15:21 +08:00
|
|
|
|
CcdiIntermediaryPersonExcel.class,
|
2026-01-29 13:39:47 +08:00
|
|
|
|
"个人中介黑名单"
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 下载机构中介导入模板(带字典下拉框)
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Operation(summary = "下载机构中介导入模板")
|
|
|
|
|
|
@PostMapping("/importEntityTemplate")
|
|
|
|
|
|
public void importEntityTemplate(HttpServletResponse response) {
|
|
|
|
|
|
EasyExcelUtil.importTemplateWithDictDropdown(
|
|
|
|
|
|
response,
|
2026-01-30 14:15:21 +08:00
|
|
|
|
CcdiIntermediaryEntityExcel.class,
|
2026-01-29 13:39:47 +08:00
|
|
|
|
"机构中介黑名单"
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 导入个人中介黑名单
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Operation(summary = "导入个人中介黑名单")
|
|
|
|
|
|
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')")
|
|
|
|
|
|
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
|
|
|
|
|
|
@PostMapping("/importPersonData")
|
|
|
|
|
|
public AjaxResult importPersonData(MultipartFile file, boolean updateSupport) throws Exception {
|
2026-01-30 14:15:21 +08:00
|
|
|
|
List<CcdiIntermediaryPersonExcel> list = EasyExcelUtil.importExcel(
|
|
|
|
|
|
file.getInputStream(), CcdiIntermediaryPersonExcel.class);
|
2026-01-29 13:39:47 +08:00
|
|
|
|
String message = intermediaryService.importPersonIntermediary(list, updateSupport);
|
|
|
|
|
|
return success(message);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 导入机构中介黑名单
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Operation(summary = "导入机构中介黑名单")
|
|
|
|
|
|
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')")
|
|
|
|
|
|
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
|
|
|
|
|
|
@PostMapping("/importEntityData")
|
|
|
|
|
|
public AjaxResult importEntityData(MultipartFile file, boolean updateSupport) throws Exception {
|
2026-01-30 14:15:21 +08:00
|
|
|
|
List<CcdiIntermediaryEntityExcel> list = EasyExcelUtil.importExcel(
|
|
|
|
|
|
file.getInputStream(), CcdiIntermediaryEntityExcel.class);
|
2026-01-29 13:39:47 +08:00
|
|
|
|
String message = intermediaryService.importEntityIntermediary(list, updateSupport);
|
|
|
|
|
|
return success(message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Service 层设计
|
|
|
|
|
|
|
|
|
|
|
|
**接口扩展:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public interface ICcdiIntermediaryBlacklistService {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
// ... 现有方法保持不变 ...
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 根据中介类型获取详情(返回不同类型)
|
|
|
|
|
|
*/
|
|
|
|
|
|
Object selectIntermediaryDetailById(Long intermediaryId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 导入个人中介数据
|
|
|
|
|
|
*/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> list, boolean isUpdateSupport);
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 导入机构中介数据
|
|
|
|
|
|
*/
|
2026-01-30 14:15:21 +08:00
|
|
|
|
String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> list, boolean isUpdateSupport);
|
2026-01-29 13:39:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Excel 类设计
|
|
|
|
|
|
|
|
|
|
|
|
**使用 @DictDropdown 注解实现字典下拉框**
|
|
|
|
|
|
|
|
|
|
|
|
项目已有现成的字典下拉框功能,详见:[doc/EasyExcel字典下拉框使用说明.md](../../../doc/EasyExcel字典下拉框使用说明.md)
|
|
|
|
|
|
|
|
|
|
|
|
**个人中介 Excel 类:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
@Data
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public class CcdiIntermediaryPersonExcel implements Serializable {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
@Serial
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "姓名", index = 0)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String name;
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "人员类型", index = 1)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivType; // 对应 indiv_type
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "人员子类型", index = 2)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivSubType; // 对应 indiv_sub_type
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "性别", index = 3)
|
|
|
|
|
|
@ColumnWidth(10)
|
2026-01-30 14:15:21 +08:00
|
|
|
|
@DictDropdown(dictType = "ccdi_indiv_gender")
|
2026-01-29 13:39:47 +08:00
|
|
|
|
private String indivGender; // 对应 indiv_gender,字典下拉框:男/女/其他
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "证件类型", index = 4)
|
|
|
|
|
|
@ColumnWidth(15)
|
2026-01-30 14:15:21 +08:00
|
|
|
|
@DictDropdown(dictType = "ccdi_certificate_type")
|
2026-01-29 13:39:47 +08:00
|
|
|
|
private String indivCertType; // 对应 indiv_cert_type,字典下拉框:身份证/护照/港澳通行证/台胞证/军官证
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "证件号码", index = 5)
|
|
|
|
|
|
@ColumnWidth(20)
|
|
|
|
|
|
private String certificateNo;
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "手机号码", index = 6)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivPhone; // 对应 indiv_phone
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "微信号", index = 7)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivWechat; // 对应 indiv_wechat
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "联系地址", index = 8)
|
|
|
|
|
|
@ColumnWidth(30)
|
|
|
|
|
|
private String indivAddress; // 对应 indiv_address
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "所在公司", index = 9)
|
|
|
|
|
|
@ColumnWidth(20)
|
|
|
|
|
|
private String indivCompany; // 对应 indiv_company
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "职位", index = 10)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivPosition; // 对应 indiv_position
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "关联人员ID", index = 11)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivRelatedId; // 对应 indiv_related_id
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "关联关系", index = 12)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String indivRelation; // 对应 indiv_relation
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "备注", index = 13)
|
|
|
|
|
|
@ColumnWidth(30)
|
|
|
|
|
|
private String remark;
|
|
|
|
|
|
|
|
|
|
|
|
// 以下字段不在 Excel 中显示,由系统自动设置
|
|
|
|
|
|
// private String status; // 默认:正常(0)
|
|
|
|
|
|
// private String dataSource; // 默认:批量导入(IMPORT)
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**机构中介 Excel 类:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
@Data
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public class CcdiIntermediaryEntityExcel implements Serializable {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
@Serial
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "机构名称", index = 0)
|
|
|
|
|
|
@ColumnWidth(25)
|
|
|
|
|
|
private String name;
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "统一社会信用代码", index = 1)
|
|
|
|
|
|
@ColumnWidth(20)
|
|
|
|
|
|
private String corpCreditCode; // 对应 corp_credit_code
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "主体类型", index = 2)
|
|
|
|
|
|
@ColumnWidth(20)
|
2026-01-30 14:15:21 +08:00
|
|
|
|
@DictDropdown(dictType = "ccdi_entity_type")
|
2026-01-29 13:39:47 +08:00
|
|
|
|
private String corpType; // 对应 corp_type,字典下拉框:有限责任公司/股份有限公司/合伙企业/个体工商户/外资企业
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "企业性质", index = 3)
|
|
|
|
|
|
@ColumnWidth(15)
|
2026-01-30 14:15:21 +08:00
|
|
|
|
@DictDropdown(dictType = "ccdi_enterprise_nature")
|
2026-01-29 13:39:47 +08:00
|
|
|
|
private String corpNature; // 对应 corp_nature,字典下拉框:国企/民企/外企/合资/其他
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "行业分类", index = 4)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpIndustryCategory; // 对应 corp_industry_category
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "所属行业", index = 5)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpIndustry; // 对应 corp_industry
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "成立日期", index = 6)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpEstablishDate; // 对应 corp_establish_date
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "注册地址", index = 7)
|
|
|
|
|
|
@ColumnWidth(40)
|
|
|
|
|
|
private String corpAddress; // 对应 corp_address
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "法定代表人", index = 8)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpLegalRep; // 对应 corp_legal_rep
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "法定代表人证件类型", index = 9)
|
|
|
|
|
|
@ColumnWidth(20)
|
|
|
|
|
|
private String corpLegalCertType; // 对应 corp_legal_cert_type
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "法定代表人证件号码", index = 10)
|
|
|
|
|
|
@ColumnWidth(20)
|
|
|
|
|
|
private String corpLegalCertNo; // 对应 corp_legal_cert_no
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "股东1", index = 11)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpShareholder1; // 对应 corp_shareholder_1
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "股东2", index = 12)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpShareholder2; // 对应 corp_shareholder_2
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "股东3", index = 13)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpShareholder3; // 对应 corp_shareholder_3
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "股东4", index = 14)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpShareholder4; // 对应 corp_shareholder_4
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "股东5", index = 15)
|
|
|
|
|
|
@ColumnWidth(15)
|
|
|
|
|
|
private String corpShareholder5; // 对应 corp_shareholder_5
|
|
|
|
|
|
|
|
|
|
|
|
@ExcelProperty(value = "备注", index = 16)
|
|
|
|
|
|
@ColumnWidth(30)
|
|
|
|
|
|
private String remark;
|
|
|
|
|
|
|
|
|
|
|
|
// 以下字段不在 Excel 中显示,由系统自动设置
|
|
|
|
|
|
// private String status; // 默认:正常(0)
|
|
|
|
|
|
// private String dataSource; // 默认:批量导入(IMPORT)
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### VO 设计
|
|
|
|
|
|
|
|
|
|
|
|
**个人详情 VO:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
@Data
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public class CcdiIntermediaryPersonDetailVO implements Serializable {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
// 核心字段
|
|
|
|
|
|
private Long intermediaryId;
|
|
|
|
|
|
private String name;
|
|
|
|
|
|
private String certificateNo;
|
|
|
|
|
|
private String intermediaryType;
|
|
|
|
|
|
private String intermediaryTypeName;
|
|
|
|
|
|
private String status;
|
|
|
|
|
|
private String statusName;
|
|
|
|
|
|
private String remark;
|
|
|
|
|
|
private String dataSource;
|
|
|
|
|
|
|
|
|
|
|
|
// 个人专属字段(使用 indiv_ 前缀)
|
|
|
|
|
|
private String indivType; // 人员类型
|
|
|
|
|
|
private String indivSubType; // 人员子类型
|
|
|
|
|
|
private String indivGender; // 性别
|
|
|
|
|
|
private String indivGenderName; // 性别名称
|
|
|
|
|
|
private String indivCertType; // 证件类型
|
|
|
|
|
|
private String indivPhone; // 手机号码
|
|
|
|
|
|
private String indivWechat; // 微信号
|
|
|
|
|
|
private String indivAddress; // 联系地址
|
|
|
|
|
|
private String indivCompany; // 所在公司
|
|
|
|
|
|
private String indivPosition; // 职位/职务
|
|
|
|
|
|
private String indivRelatedId; // 关联人员ID
|
|
|
|
|
|
private String indivRelation; // 关联关系
|
|
|
|
|
|
|
|
|
|
|
|
// 审计字段
|
|
|
|
|
|
private String createBy;
|
|
|
|
|
|
private Date createTime;
|
|
|
|
|
|
private String updateBy;
|
|
|
|
|
|
private Date updateTime;
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**机构详情 VO:**
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
@Data
|
2026-01-30 14:15:21 +08:00
|
|
|
|
public class CcdiIntermediaryEntityDetailVO implements Serializable {
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
// 核心字段
|
|
|
|
|
|
private Long intermediaryId;
|
|
|
|
|
|
private String name;
|
|
|
|
|
|
private String certificateNo;
|
|
|
|
|
|
private String intermediaryType;
|
|
|
|
|
|
private String intermediaryTypeName;
|
|
|
|
|
|
private String status;
|
|
|
|
|
|
private String statusName;
|
|
|
|
|
|
private String remark;
|
|
|
|
|
|
private String dataSource;
|
|
|
|
|
|
|
|
|
|
|
|
// 机构专属字段(使用 corp_ 前缀)
|
|
|
|
|
|
private String corpCreditCode; // 统一社会信用代码
|
|
|
|
|
|
private String corpType; // 主体类型
|
|
|
|
|
|
private String corpNature; // 企业性质
|
|
|
|
|
|
private String corpIndustryCategory; // 行业分类
|
|
|
|
|
|
private String corpIndustry; // 所属行业
|
|
|
|
|
|
private String corpEstablishDate; // 成立日期
|
|
|
|
|
|
private String corpAddress; // 注册地址
|
|
|
|
|
|
private String corpLegalRep; // 法定代表人
|
|
|
|
|
|
private String corpLegalCertType; // 法定代表人证件类型
|
|
|
|
|
|
private String corpLegalCertNo; // 法定代表人证件号码
|
|
|
|
|
|
private String corpShareholder1; // 股东1
|
|
|
|
|
|
private String corpShareholder2; // 股东2
|
|
|
|
|
|
private String corpShareholder3; // 股东3
|
|
|
|
|
|
private String corpShareholder4; // 股东4
|
|
|
|
|
|
private String corpShareholder5; // 股东5
|
|
|
|
|
|
|
|
|
|
|
|
// 审计字段
|
|
|
|
|
|
private String createBy;
|
|
|
|
|
|
private Date createTime;
|
|
|
|
|
|
private String updateBy;
|
|
|
|
|
|
private Date updateTime;
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Excel 导入导出设计
|
|
|
|
|
|
|
|
|
|
|
|
### Excel 下拉框配置
|
|
|
|
|
|
|
|
|
|
|
|
为提高数据录入的准确性和一致性,以下字段在 Excel 模板中配置下拉框验证:
|
|
|
|
|
|
|
|
|
|
|
|
#### 个人中介模板下拉框
|
|
|
|
|
|
|
|
|
|
|
|
| 列名 | 下拉框选项 | 说明 |
|
|
|
|
|
|
|------|-----------|------|
|
|
|
|
|
|
| 性别 | 男, 女, 其他 | 对应值:M, F, O |
|
2026-01-30 14:15:21 +08:00
|
|
|
|
| 证件类型 | 身份证, 护照, 港澳通行证, 台胞证, 军官证 | 从字典 ccdi_certificate_type 加载 |
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
#### 机构中介模板下拉框
|
|
|
|
|
|
|
|
|
|
|
|
| 列名 | 下拉框选项 | 说明 |
|
|
|
|
|
|
|------|-----------|------|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
| 主体类型 | 有限责任公司, 股份有限公司, 合伙企业, 个体工商户, 外资企业 | 从字典 ccdi_entity_type 加载 |
|
|
|
|
|
|
| 企业性质 | 国企, 民企, 外企, 合资, 其他 | 从字典 ccdi_enterprise_nature 加载 |
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
**注意**:
|
|
|
|
|
|
- **状态字段**:不在 Excel 模板中显示,导入时默认设置为"正常"(0)
|
|
|
|
|
|
- **数据来源字段**:不在 Excel 模板中显示,导入时默认设置为"批量导入"(IMPORT)
|
|
|
|
|
|
|
|
|
|
|
|
#### 下拉框实现方式
|
|
|
|
|
|
|
|
|
|
|
|
使用项目现有的 `@DictDropdown` 注解功能,详见:[doc/EasyExcel字典下拉框使用说明.md](../../../doc/EasyExcel字典下拉框使用说明.md)
|
|
|
|
|
|
|
|
|
|
|
|
**核心组件:**
|
|
|
|
|
|
- `@DictDropdown` 注解:`com.ruoyi.common.annotation.DictDropdown`
|
|
|
|
|
|
- `DictDropdownWriteHandler` 处理器:`com.ruoyi.dpc.handler.DictDropdownWriteHandler`
|
|
|
|
|
|
- `EasyExcelUtil.importTemplateWithDictDropdown()`:`com.ruoyi.dpc.utils.EasyExcelUtil`
|
|
|
|
|
|
|
|
|
|
|
|
**实现步骤:**
|
|
|
|
|
|
1. 在 Excel 类的对应字段上添加 `@DictDropdown(dictType = "字典类型")` 注解
|
|
|
|
|
|
2. 在若依系统中配置对应的字典数据
|
|
|
|
|
|
3. 使用 `EasyExcelUtil.importTemplateWithDictDropdown()` 生成模板
|
|
|
|
|
|
4. 系统自动从 Redis 缓存读取字典数据并生成下拉框
|
|
|
|
|
|
|
|
|
|
|
|
**优势:**
|
|
|
|
|
|
- 无需手动编写下拉框处理器代码
|
|
|
|
|
|
- 字典数据统一管理,维护方便
|
|
|
|
|
|
- 支持大量下拉选项(自动使用隐藏 Sheet)
|
|
|
|
|
|
- 下拉选项可动态更新
|
|
|
|
|
|
|
|
|
|
|
|
### 个人中介模板格式
|
|
|
|
|
|
|
|
|
|
|
|
| 姓名 | 人员类型 | 人员子类型 | 性别▼ | 证件类型▼ | 证件号码 | 手机号码 | 微信号 | 联系地址 | 所在公司 | 职位 | 关联人员ID | 关联关系 | 备注 |
|
|
|
|
|
|
|------|---------|-----------|-------|-----------|---------|---------|--------|---------|---------|-----|-----------|---------|------|
|
|
|
|
|
|
| 张三 | 中介 | 本人 | 男 | 身份证 | 110101199001011234 | 13800138000 | zhangsan | 北京市朝阳区 | XX公司 | 经纪人 | - | - | 测试 |
|
|
|
|
|
|
|
|
|
|
|
|
**注:带 ▼ 标记的列包含下拉框;状态默认为"正常",数据来源默认为"批量导入"**
|
|
|
|
|
|
|
|
|
|
|
|
### 机构中介模板格式
|
|
|
|
|
|
|
|
|
|
|
|
| 机构名称 | 统一社会信用代码 | 主体类型▼ | 企业性质▼ | 行业分类 | 所属行业 | 成立日期 | 注册地址 | 法定代表人 | 法定代表人证件类型 | 法定代表人证件号码 | 股东1 | 股东2 | 股东3 | 股东4 | 股东5 | 备注 |
|
|
|
|
|
|
|---------|-----------------|-----------|-----------|---------|---------|---------|---------|-----------|-------------------|-------------------|-------|-------|-------|-------|-------|------|
|
|
|
|
|
|
| XX中介公司 | 91110000XXXXXXXXXX | 有限责任公司 | 民企 | 房地产 | 房地产业 | 2020-01-01 | 北京市朝阳区 | 张三 | 身份证 | 110101199001011234 | 李四 | 王五 | - | - | - | - |
|
|
|
|
|
|
|
|
|
|
|
|
**注:带 ▼ 标记的列包含下拉框;状态默认为"正常",数据来源默认为"批量导入"**
|
|
|
|
|
|
|
|
|
|
|
|
### 导入数据验证规则
|
|
|
|
|
|
|
|
|
|
|
|
**个人中介验证规则:**
|
|
|
|
|
|
1. **姓名**:必填,长度 1-50 字符
|
|
|
|
|
|
2. **证件号码**:必填,长度不超过 30 字符
|
|
|
|
|
|
3. **证件类型**:选填,默认"身份证"
|
|
|
|
|
|
4. **其他字段**:选填,按长度限制验证
|
|
|
|
|
|
5. **状态**:系统默认设置为"正常"(0)
|
|
|
|
|
|
6. **数据来源**:系统默认设置为"批量导入"(IMPORT)
|
|
|
|
|
|
|
|
|
|
|
|
**机构中介验证规则:**
|
|
|
|
|
|
1. **机构名称**:必填,长度 1-200 字符
|
|
|
|
|
|
2. **统一社会信用代码**:选填,18 位
|
|
|
|
|
|
3. **其他字段**:选填,按长度限制验证
|
|
|
|
|
|
4. **状态**:系统默认设置为"正常"(0)
|
|
|
|
|
|
5. **数据来源**:系统默认设置为"批量导入"(IMPORT)
|
|
|
|
|
|
|
|
|
|
|
|
## 字典数据设计
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 人员类型(ccdi_person_type)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| 中介 | 中介 | 1 | 正常 |
|
|
|
|
|
|
| 职业背债人 | 职业背债人 | 2 | 正常 |
|
|
|
|
|
|
| 房产中介 | 房产中介 | 3 | 正常 |
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 人员子类型(ccdi_person_sub_type)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| 本人 | 本人 | 1 | 正常 |
|
|
|
|
|
|
| 配偶 | 配偶 | 2 | 正常 |
|
|
|
|
|
|
| 子女 | 子女 | 3 | 正常 |
|
|
|
|
|
|
| 其他 | 其他 | 9 | 正常 |
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 证件类型(ccdi_certificate_type)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| 身份证 | 身份证 | 1 | 正常 |
|
|
|
|
|
|
| 护照 | 护照 | 2 | 正常 |
|
|
|
|
|
|
| 港澳通行证 | 港澳通行证 | 3 | 正常 |
|
|
|
|
|
|
| 台胞证 | 台胞证 | 4 | 正常 |
|
|
|
|
|
|
| 军官证 | 军官证 | 5 | 正常 |
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 主体类型(ccdi_entity_type)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| 有限责任公司 | 有限责任公司 | 1 | 正常 |
|
|
|
|
|
|
| 股份有限公司 | 股份有限公司 | 2 | 正常 |
|
|
|
|
|
|
| 合伙企业 | 合伙企业 | 3 | 正常 |
|
|
|
|
|
|
| 个体工商户 | 个体工商户 | 4 | 正常 |
|
|
|
|
|
|
| 外资企业 | 外资企业 | 5 | 正常 |
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 企业性质(ccdi_enterprise_nature)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| 国企 | 国企 | 1 | 正常 |
|
|
|
|
|
|
| 民企 | 民企 | 2 | 正常 |
|
|
|
|
|
|
| 外企 | 外企 | 3 | 正常 |
|
|
|
|
|
|
| 合资 | 合资 | 4 | 正常 |
|
|
|
|
|
|
| 其他 | 其他 | 9 | 正常 |
|
|
|
|
|
|
|
2026-01-30 14:15:21 +08:00
|
|
|
|
### 数据来源(ccdi_data_source)
|
2026-01-29 13:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
| 字典值 | 字典标签 | 排序 | 状态 |
|
|
|
|
|
|
|-------|---------|-----|------|
|
|
|
|
|
|
| MANUAL | 手动录入 | 1 | 正常 |
|
|
|
|
|
|
| SYSTEM | 系统同步 | 2 | 正常 |
|
|
|
|
|
|
| IMPORT | 批量导入 | 3 | 正常 |
|
|
|
|
|
|
| API | 接口获取 | 4 | 正常 |
|
|
|
|
|
|
|
|
|
|
|
|
## 技术约束
|
|
|
|
|
|
|
|
|
|
|
|
1. **后端框架**:Spring Boot 3.5.8
|
|
|
|
|
|
2. **ORM 框架**:MyBatis Plus 3.5.10
|
|
|
|
|
|
3. **Excel 处理**:EasyExcel
|
|
|
|
|
|
4. **数据库**:MySQL 8.2.0
|
|
|
|
|
|
5. **字符编码**:UTF-8(utf8mb4)
|
|
|
|
|
|
6. **向后兼容**:保持现有接口和数据结构不变
|
|
|
|
|
|
|
|
|
|
|
|
## 工具类使用
|
|
|
|
|
|
|
|
|
|
|
|
### EasyExcelUtil 现有方法
|
|
|
|
|
|
|
|
|
|
|
|
项目已有 `EasyExcelUtil.importTemplateWithDictDropdown()` 方法,可直接使用:
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
// 生成个人中介模板(带字典下拉框)
|
|
|
|
|
|
EasyExcelUtil.importTemplateWithDictDropdown(
|
|
|
|
|
|
response,
|
2026-01-30 14:15:21 +08:00
|
|
|
|
CcdiIntermediaryPersonExcel.class,
|
2026-01-29 13:39:47 +08:00
|
|
|
|
"个人中介黑名单"
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// 生成机构中介模板(带字典下拉框)
|
|
|
|
|
|
EasyExcelUtil.importTemplateWithDictDropdown(
|
|
|
|
|
|
response,
|
2026-01-30 14:15:21 +08:00
|
|
|
|
CcdiIntermediaryEntityExcel.class,
|
2026-01-29 13:39:47 +08:00
|
|
|
|
"机构中介黑名单"
|
|
|
|
|
|
);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**参考文档:** [doc/EasyExcel字典下拉框使用说明.md](../../../doc/EasyExcel字典下拉框使用说明.md)
|