变更项目缩写

This commit is contained in:
wkc
2026-01-30 14:15:21 +08:00
parent e99b05acc2
commit 29a2e60ee1
107 changed files with 1134 additions and 990 deletions

View File

@@ -35,7 +35,14 @@
"Skill(frontend-design:frontend-design)", "Skill(frontend-design:frontend-design)",
"mcp__web-reader__webReader", "mcp__web-reader__webReader",
"mcp__fetch__imageFetch", "mcp__fetch__imageFetch",
"Skill(frontend-design)" "Skill(frontend-design)",
"Bash(find:*)",
"Bash(mvn clean:*)",
"Bash(mvn install:*)",
"Bash(git mv:*)",
"Bash(powershell.exe:*)",
"Bash(git rm:*)",
"Bash(git add:*)"
] ]
}, },
"enabledMcpjsonServers": [ "enabledMcpjsonServers": [

View File

@@ -39,7 +39,7 @@
## 运行 ## 运行
- 使用mcp:dpc_intermediary_blacklist进行数据库相关操作 - 使用mcp:ccdi_intermediary_blacklist进行数据库相关操作
- 不要在命令行中启动后端进行测试 - 不要在命令行中启动后端进行测试
- 测试方式为生成可执行的测试脚本 - 测试方式为生成可执行的测试脚本
- 测试脚本在运行完成后需要保存所有接口输出并生成测试用例报告 - 测试脚本在运行完成后需要保存所有接口输出并生成测试用例报告

View File

@@ -4,7 +4,7 @@
中介黑名单管理模块提供个人和机构两类中介信息的增删改查、类型化模板下载和批量导入导出功能。 中介黑名单管理模块提供个人和机构两类中介信息的增删改查、类型化模板下载和批量导入导出功能。
**基础路径**: `/dpc/intermediary` **基础路径**: `/ccdi/intermediary`
**权限标识前缀**: `dpc:intermediary` **权限标识前缀**: `dpc:intermediary`
@@ -14,7 +14,7 @@
### 1. 查询中介黑名单列表 ### 1. 查询中介黑名单列表
**接口地址**: `GET /dpc/intermediary/list` **接口地址**: `GET /ccdi/intermediary/list`
**权限要求**: `dpc:intermediary:list` **权限要求**: `dpc:intermediary:list`
@@ -69,7 +69,7 @@
### 2. 获取中介黑名单详细信息 ### 2. 获取中介黑名单详细信息
**接口地址**: `GET /dpc/intermediary/{intermediaryId}` **接口地址**: `GET /ccdi/intermediary/{intermediaryId}`
**权限要求**: `dpc:intermediary:query` **权限要求**: `dpc:intermediary:query`
@@ -136,7 +136,7 @@
#### 3.1 新增个人中介黑名单 #### 3.1 新增个人中介黑名单
**接口地址**: `POST /dpc/intermediary/person` **接口地址**: `POST /ccdi/intermediary/person`
**权限要求**: `dpc:intermediary:add` **权限要求**: `dpc:intermediary:add`
@@ -189,7 +189,7 @@
#### 3.2 新增机构中介黑名单 #### 3.2 新增机构中介黑名单
**接口地址**: `POST /dpc/intermediary/entity` **接口地址**: `POST /ccdi/intermediary/entity`
**权限要求**: `dpc:intermediary:add` **权限要求**: `dpc:intermediary:add`
@@ -252,7 +252,7 @@
#### 4.1 修改个人中介黑名单 #### 4.1 修改个人中介黑名单
**接口地址**: `PUT /dpc/intermediary/person` **接口地址**: `PUT /ccdi/intermediary/person`
**权限要求**: `dpc:intermediary:edit` **权限要求**: `dpc:intermediary:edit`
@@ -309,7 +309,7 @@
#### 4.2 修改机构中介黑名单 #### 4.2 修改机构中介黑名单
**接口地址**: `PUT /dpc/intermediary/entity` **接口地址**: `PUT /ccdi/intermediary/entity`
**权限要求**: `dpc:intermediary:edit` **权限要求**: `dpc:intermediary:edit`
@@ -377,7 +377,7 @@
### 5. 删除中介黑名单 ### 5. 删除中介黑名单
**接口地址**: `DELETE /dpc/intermediary/{intermediaryIds}` **接口地址**: `DELETE /ccdi/intermediary/{intermediaryIds}`
**权限要求**: `dpc:intermediary:remove` **权限要求**: `dpc:intermediary:remove`
@@ -399,7 +399,7 @@
### 6. 导出中介黑名单 ### 6. 导出中介黑名单
**接口地址**: `POST /dpc/intermediary/export` **接口地址**: `POST /ccdi/intermediary/export`
**权限要求**: `dpc:intermediary:export` **权限要求**: `dpc:intermediary:export`
@@ -411,7 +411,7 @@
### 7. 下载个人中介导入模板(带字典下拉框) ### 7. 下载个人中介导入模板(带字典下拉框)
**接口地址**: `POST /dpc/intermediary/importPersonTemplate` **接口地址**: `POST /ccdi/intermediary/importPersonTemplate`
**权限要求**: 无 **权限要求**: 无
@@ -427,14 +427,14 @@
| 张三 | 中介 | 本人 | 男 | 身份证 | 110101199001011234 | 13800138000 | zhangsan | 北京市朝阳区 | XX公司 | 经纪人 | - | - | 测试 | | 张三 | 中介 | 本人 | 男 | 身份证 | 110101199001011234 | 13800138000 | zhangsan | 北京市朝阳区 | XX公司 | 经纪人 | - | - | 测试 |
**注**:带 ▼ 标记的列包含下拉框,选项来自字典: **注**:带 ▼ 标记的列包含下拉框,选项来自字典:
- 性别:`dpc_indiv_gender` - 性别:`ccdi_indiv_gender`
- 证件类型:`dpc_certificate_type` - 证件类型:`ccdi_certificate_type`
--- ---
### 8. 下载机构中介导入模板(带字典下拉框) ### 8. 下载机构中介导入模板(带字典下拉框)
**接口地址**: `POST /dpc/intermediary/importEntityTemplate` **接口地址**: `POST /ccdi/intermediary/importEntityTemplate`
**权限要求**: 无 **权限要求**: 无
@@ -450,14 +450,14 @@
| XX公司 | 91110000XXXXXXXXXX | 有限责任公司 | 民企 | 房地产 | 房地产业 | 2020-01-01 | 北京市朝阳区 | 张三 | 身份证 | 110101199001011234 | 李四 | 王五 | - | - | - | - | | XX公司 | 91110000XXXXXXXXXX | 有限责任公司 | 民企 | 房地产 | 房地产业 | 2020-01-01 | 北京市朝阳区 | 张三 | 身份证 | 110101199001011234 | 李四 | 王五 | - | - | - | - |
**注**:带 ▼ 标记的列包含下拉框,选项来自字典: **注**:带 ▼ 标记的列包含下拉框,选项来自字典:
- 主体类型:`dpc_entity_type` - 主体类型:`ccdi_entity_type`
- 企业性质:`dpc_enterprise_nature` - 企业性质:`ccdi_enterprise_nature`
--- ---
### 9. 导入个人中介黑名单 ### 9. 导入个人中介黑名单
**接口地址**: `POST /dpc/intermediary/importPersonData` **接口地址**: `POST /ccdi/intermediary/importPersonData`
**权限要求**: `dpc:intermediary:import` **权限要求**: `dpc:intermediary:import`
@@ -490,7 +490,7 @@
### 10. 导入机构中介黑名单 ### 10. 导入机构中介黑名单
**接口地址**: `POST /dpc/intermediary/importEntityData` **接口地址**: `POST /ccdi/intermediary/importEntityData`
**权限要求**: `dpc:intermediary:import` **权限要求**: `dpc:intermediary:import`
@@ -528,21 +528,21 @@
| 字典类型 | 字典名称 | 用途 | | 字典类型 | 字典名称 | 用途 |
|---------|---------|------| |---------|---------|------|
| dpc_indiv_gender | 个人中介性别 | 个人中介模板性别下拉框 | | ccdi_indiv_gender | 个人中介性别 | 个人中介模板性别下拉框 |
| dpc_certificate_type | 证件类型 | 个人中介模板证件类型下拉框 | | ccdi_certificate_type | 证件类型 | 个人中介模板证件类型下拉框 |
### 机构中介字典 ### 机构中介字典
| 字典类型 | 字典名称 | 用途 | | 字典类型 | 字典名称 | 用途 |
|---------|---------|------| |---------|---------|------|
| dpc_entity_type | 主体类型 | 机构中介模板主体类型下拉框 | | ccdi_entity_type | 主体类型 | 机构中介模板主体类型下拉框 |
| dpc_enterprise_nature | 企业性质 | 机构中介模板企业性质下拉框 | | ccdi_enterprise_nature | 企业性质 | 机构中介模板企业性质下拉框 |
### 通用字典 ### 通用字典
| 字典类型 | 字典名称 | 用途 | | 字典类型 | 字典名称 | 用途 |
|---------|---------|------| |---------|---------|------|
| dpc_data_source | 数据来源 | 数据来源字段映射 | | ccdi_data_source | 数据来源 | 数据来源字段映射 |
--- ---

View File

@@ -40,7 +40,7 @@
### 2. 查询中介黑名单列表 ### 2. 查询中介黑名单列表
**接口:** `GET /dpc/intermediary/list` **接口:** `GET /ccdi/intermediary/list`
**描述:** 分页查询中介黑名单列表 **描述:** 分页查询中介黑名单列表
**请求参数:** **请求参数:**
@@ -56,7 +56,7 @@
### 3. 新增个人中介黑名单 ### 3. 新增个人中介黑名单
**接口:** `POST /dpc/intermediary` **接口:** `POST /ccdi/intermediary`
**描述:** 新增个人类型的中介黑名单记录 **描述:** 新增个人类型的中介黑名单记录
**请求参数:** **请求参数:**
@@ -78,7 +78,7 @@
### 4. 新增机构中介黑名单 ### 4. 新增机构中介黑名单
**接口:** `POST /dpc/intermediary` **接口:** `POST /ccdi/intermediary`
**描述:** 新增机构类型的中介黑名单记录 **描述:** 新增机构类型的中介黑名单记录
**请求参数:** **请求参数:**
@@ -100,7 +100,7 @@
### 5. 获取中介详情 ### 5. 获取中介详情
**接口:** `GET /dpc/intermediary/{intermediaryId}` **接口:** `GET /ccdi/intermediary/{intermediaryId}`
**描述:** 根据ID获取中介详细信息 **描述:** 根据ID获取中介详细信息
**请求参数:** **请求参数:**
@@ -115,7 +115,7 @@
### 6. 修改中介黑名单 ### 6. 修改中介黑名单
**接口:** `PUT /dpc/intermediary` **接口:** `PUT /ccdi/intermediary`
**描述:** 修改已存在的中介信息 **描述:** 修改已存在的中介信息
**请求参数:** **请求参数:**
@@ -139,7 +139,7 @@
### 7. 导出中介黑名单列表 ### 7. 导出中介黑名单列表
**接口:** `POST /dpc/intermediary/export` **接口:** `POST /ccdi/intermediary/export`
**描述:** 导出中介黑名单数据为Excel文件 **描述:** 导出中介黑名单数据为Excel文件
**请求参数:** **请求参数:**
@@ -156,7 +156,7 @@
### 8. 下载个人中介导入模板 ### 8. 下载个人中介导入模板
**接口:** `POST /dpc/intermediary/importPersonTemplate` **接口:** `POST /ccdi/intermediary/importPersonTemplate`
**描述:** 下载个人中介导入Excel模板 **描述:** 下载个人中介导入Excel模板
**测试结果:** ✅ 通过 **测试结果:** ✅ 通过
@@ -168,7 +168,7 @@
### 9. 下载机构中介导入模板 ### 9. 下载机构中介导入模板
**接口:** `POST /dpc/intermediary/importEntityTemplate` **接口:** `POST /ccdi/intermediary/importEntityTemplate`
**描述:** 下载机构中介导入Excel模板 **描述:** 下载机构中介导入Excel模板
**测试结果:** ✅ 通过 **测试结果:** ✅ 通过
@@ -180,7 +180,7 @@
### 10. 条件查询(按中介类型) ### 10. 条件查询(按中介类型)
**接口:** `GET /dpc/intermediary/list` **接口:** `GET /ccdi/intermediary/list`
**描述:** 按中介类型筛选查询 **描述:** 按中介类型筛选查询
**请求参数:** **请求参数:**
@@ -197,7 +197,7 @@
### 11. 条件查询(按状态) ### 11. 条件查询(按状态)
**接口:** `GET /dpc/intermediary/list` **接口:** `GET /ccdi/intermediary/list`
**描述:** 按状态筛选查询 **描述:** 按状态筛选查询
**请求参数:** **请求参数:**
@@ -214,7 +214,7 @@
### 12. 删除中介黑名单 ### 12. 删除中介黑名单
**接口:** `DELETE /dpc/intermediary/{intermediaryIds}` **接口:** `DELETE /ccdi/intermediary/{intermediaryIds}`
**描述:** 批量删除中介黑名单记录 **描述:** 批量删除中介黑名单记录
**请求参数:** **请求参数:**

View File

@@ -4,7 +4,7 @@
员工信息管理模块提供员工及其亲属信息的增删改查、批量导入导出功能。 员工信息管理模块提供员工及其亲属信息的增删改查、批量导入导出功能。
**基础路径**: `/dpc/employee` **基础路径**: `/ccdi/employee`
**权限标识前缀**: `dpc:employee` **权限标识前缀**: `dpc:employee`
@@ -14,7 +14,7 @@
### 1. 查询员工列表 ### 1. 查询员工列表
**接口地址**: `GET /dpc/employee/list` **接口地址**: `GET /ccdi/employee/list`
**权限要求**: `dpc:employee:list` **权限要求**: `dpc:employee:list`
@@ -74,7 +74,7 @@
### 2. 查询员工详情 ### 2. 查询员工详情
**接口地址**: `GET /dpc/employee/{employeeId}` **接口地址**: `GET /ccdi/employee/{employeeId}`
**权限要求**: `dpc:employee:query` **权限要求**: `dpc:employee:query`
@@ -118,7 +118,7 @@
### 3. 新增员工 ### 3. 新增员工
**接口地址**: `POST /dpc/employee` **接口地址**: `POST /ccdi/employee`
**权限要求**: `dpc:employee:add` **权限要求**: `dpc:employee:add`
@@ -183,7 +183,7 @@ Authorization: Bearer {token}
### 4. 编辑员工 ### 4. 编辑员工
**接口地址**: `PUT /dpc/employee` **接口地址**: `PUT /ccdi/employee`
**权限要求**: `dpc:employee:edit` **权限要求**: `dpc:employee:edit`
@@ -223,7 +223,7 @@ Authorization: Bearer {token}
### 5. 删除员工 ### 5. 删除员工
**接口地址**: `DELETE /dpc/employee/{employeeIds}` **接口地址**: `DELETE /ccdi/employee/{employeeIds}`
**权限要求**: `dpc:employee:remove` **权限要求**: `dpc:employee:remove`
@@ -247,7 +247,7 @@ Authorization: Bearer {token}
### 6. 导出员工信息 ### 6. 导出员工信息
**接口地址**: `POST /dpc/employee/export` **接口地址**: `POST /ccdi/employee/export`
**权限要求**: `dpc:employee:export` **权限要求**: `dpc:employee:export`
@@ -259,7 +259,7 @@ Authorization: Bearer {token}
### 7. 下载导入模板(带字典下拉框) ### 7. 下载导入模板(带字典下拉框)
**接口地址**: `POST /dpc/employee/importTemplate` **接口地址**: `POST /ccdi/employee/importTemplate`
**权限要求**: 无 **权限要求**: 无
@@ -274,10 +274,10 @@ Authorization: Bearer {token}
|------|--------|------------|----------|------|----------|------| |------|--------|------------|----------|------|----------|------|
| 张三 | 001 | 100 | 110101199001011234 | 13800138000 | 2020-01-01 | 在职 | | 张三 | 001 | 100 | 110101199001011234 | 13800138000 | 2020-01-01 | 在职 |
**注**:带 ▼ 标记的列包含下拉框,选项来自字典 `dpc_employee_status` **注**:带 ▼ 标记的列包含下拉框,选项来自字典 `ccdi_employee_status`
**使用 @DictDropdown 注解实现**: **使用 @DictDropdown 注解实现**:
- 状态字段使用 `@DictDropdown(dictType = "dpc_employee_status")` 注解 - 状态字段使用 `@DictDropdown(dictType = "ccdi_employee_status")` 注解
- 系统自动从 Redis 缓存读取字典数据并生成下拉框 - 系统自动从 Redis 缓存读取字典数据并生成下拉框
- 下拉选项可动态更新,刷新字典缓存后生效 - 下拉选项可动态更新,刷新字典缓存后生效
@@ -285,7 +285,7 @@ Authorization: Bearer {token}
### 8. 导入员工信息 ### 8. 导入员工信息
**接口地址**: `POST /dpc/employee/importData` **接口地址**: `POST /ccdi/employee/importData`
**权限要求**: `dpc:employee:import` **权限要求**: `dpc:employee:import`

View File

@@ -51,7 +51,7 @@ import com.ruoyi.common.annotation.DictDropdown;
import lombok.Data; import lombok.Data;
@Data @Data
public class DpcEmployeeExcel { public class CcdiEmployeeExcel {
@ExcelProperty(value = "姓名", index = 0) @ExcelProperty(value = "姓名", index = 0)
@ColumnWidth(15) @ColumnWidth(15)
@@ -64,7 +64,7 @@ public class DpcEmployeeExcel {
// 添加字典下拉框注解 // 添加字典下拉框注解
@ExcelProperty(value = "状态", index = 6) @ExcelProperty(value = "状态", index = 6)
@ColumnWidth(10) @ColumnWidth(10)
@DictDropdown(dictType = "dpc_employee_status") @DictDropdown(dictType = "ccdi_employee_status")
private String status; private String status;
} }
``` ```
@@ -73,8 +73,8 @@ public class DpcEmployeeExcel {
```java ```java
@RestController @RestController
@RequestMapping("/dpc/employee") @RequestMapping("/ccdi/employee")
public class DpcEmployeeController { public class CcdiEmployeeController {
/** /**
* 下载带字典下拉框的导入模板 * 下载带字典下拉框的导入模板
@@ -83,7 +83,7 @@ public class DpcEmployeeController {
public void importTemplateWithDropdown(HttpServletResponse response) { public void importTemplateWithDropdown(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown( EasyExcelUtil.importTemplateWithDictDropdown(
response, response,
DpcEmployeeExcel.class, CcdiEmployeeExcel.class,
"员工信息" "员工信息"
); );
} }
@@ -93,11 +93,11 @@ public class DpcEmployeeController {
*/ */
@PostMapping("/exportWithDropdown") @PostMapping("/exportWithDropdown")
public void exportWithDropdown(HttpServletResponse response) { public void exportWithDropdown(HttpServletResponse response) {
List<DpcEmployeeExcel> list = employeeService.selectEmployeeList(); List<CcdiEmployeeExcel> list = employeeService.selectEmployeeList();
EasyExcelUtil.exportExcelWithDictDropdown( EasyExcelUtil.exportExcelWithDictDropdown(
response, response,
list, list,
DpcEmployeeExcel.class, CcdiEmployeeExcel.class,
"员工信息" "员工信息"
); );
} }
@@ -109,21 +109,21 @@ public class DpcEmployeeController {
### 1. 显示字典键值而非标签 ### 1. 显示字典键值而非标签
```java ```java
@DictDropdown(dictType = "dpc_employee_status", displayType = DisplayType.VALUE) @DictDropdown(dictType = "ccdi_employee_status", displayType = DisplayType.VALUE)
private String status; private String status;
``` ```
### 2. 允许手动输入(非严格模式) ### 2. 允许手动输入(非严格模式)
```java ```java
@DictDropdown(dictType = "dpc_employee_status", strict = false) @DictDropdown(dictType = "ccdi_employee_status", strict = false)
private String status; private String status;
``` ```
### 3. 自定义隐藏Sheet名称 ### 3. 自定义隐藏Sheet名称
```java ```java
@DictDropdown(dictType = "dpc_employee_status", hiddenSheetName = "employee_status_dict") @DictDropdown(dictType = "ccdi_employee_status", hiddenSheetName = "employee_status_dict")
private String status; private String status;
``` ```
@@ -150,7 +150,7 @@ private String status;
1. 启动项目后访问Swagger UI`http://localhost:8080/swagger-ui/index.html` 1. 启动项目后访问Swagger UI`http://localhost:8080/swagger-ui/index.html`
2. 找到员工信息管理相关接口: 2. 找到员工信息管理相关接口:
- `POST /dpc/employee/importTemplateWithDropdown` - 下载带字典下拉框的模板 - `POST /ccdi/employee/importTemplateWithDropdown` - 下载带字典下拉框的模板
3. 调用接口下载模板检查Excel中的下拉框是否正常 3. 调用接口下载模板检查Excel中的下拉框是否正常

File diff suppressed because one or more lines are too long

View File

@@ -143,7 +143,7 @@ project_status项目状态:
```sql ```sql
-- 项目信息表 -- 项目信息表
CREATE TABLE dpc_project ( CREATE TABLE ccdi_project (
project_id bigint(20) not null auto_increment comment '项目ID', project_id bigint(20) not null auto_increment comment '项目ID',
project_name varchar(100) not null comment '项目名称', project_name varchar(100) not null comment '项目名称',
project_desc varchar(500) default null comment '项目描述', project_desc varchar(500) default null comment '项目描述',
@@ -182,7 +182,7 @@ CREATE TABLE dpc_project (
示例: 示例:
``` ```
POST /dpc/project/list POST /ccdi/project/list
功能: 查询项目列表 功能: 查询项目列表
请求参数: 请求参数:
{ {

View File

@@ -10,9 +10,9 @@ Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationExceptio
## 问题原因 ## 问题原因
1. **数据库约束**`dpc_intermediary_blacklist` 表的 `certificate_no` 字段设置为 `NOT NULL`,不允许存储 null 值。 1. **数据库约束**`ccdi_intermediary_blacklist` 表的 `certificate_no` 字段设置为 `NOT NULL`,不允许存储 null 值。
2. **代码缺陷**:在 `DpcIntermediaryBlacklistServiceImpl.java``importEntityIntermediary` 方法中,导入机构中介时只设置了 `corpCreditCode`(统一社会信用代码),但没有设置 `certificateNo` 字段,导致该字段为 null。 2. **代码缺陷**:在 `CcdiIntermediaryBlacklistServiceImpl.java``importEntityIntermediary` 方法中,导入机构中介时只设置了 `corpCreditCode`(统一社会信用代码),但没有设置 `certificateNo` 字段,导致该字段为 null。
3. **批量插入失败**`batchInsert` 方法明确插入 `certificate_no` 字段,当值为 null 时违反数据库约束。 3. **批量插入失败**`batchInsert` 方法明确插入 `certificate_no` 字段,当值为 null 时违反数据库约束。
@@ -20,14 +20,14 @@ Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationExceptio
### 1. 代码修改 ### 1. 代码修改
**文件**[DpcIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\java\com\ruoyi\dpc\service\impl\DpcIntermediaryBlacklistServiceImpl.java) **文件**[CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java)
**修改位置**:第 390-394 行 **修改位置**:第 390-394 行
**修改前** **修改前**
```java ```java
// 转换为实体 // 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName()); intermediary.setName(excel.getName());
intermediary.setIntermediaryType("2"); intermediary.setIntermediaryType("2");
``` ```
@@ -35,7 +35,7 @@ intermediary.setIntermediaryType("2");
**修改后** **修改后**
```java ```java
// 转换为实体 // 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName()); intermediary.setName(excel.getName());
// 对于机构中介,使用统一社会信用代码作为证件号 // 对于机构中介,使用统一社会信用代码作为证件号
intermediary.setCertificateNo(excel.getCorpCreditCode()); intermediary.setCertificateNo(excel.getCorpCreditCode());
@@ -44,13 +44,13 @@ intermediary.setIntermediaryType("2");
### 2. 验证逻辑增强 ### 2. 验证逻辑增强
**文件**[DpcIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\java\com\ruoyi\dpc\service\impl\DpcIntermediaryBlacklistServiceImpl.java) **文件**[CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java)
**修改位置**:第 484-488 行 **修改位置**:第 484-488 行
**修改前** **修改前**
```java ```java
private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) { private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
if (StringUtils.isEmpty(excel.getName())) { if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("机构名称不能为空"); throw new RuntimeException("机构名称不能为空");
} }
@@ -59,7 +59,7 @@ private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
**修改后** **修改后**
```java ```java
private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) { private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
if (StringUtils.isEmpty(excel.getName())) { if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("机构名称不能为空"); throw new RuntimeException("机构名称不能为空");
} }
@@ -72,7 +72,7 @@ private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
### 3. 批量更新 XML 配置优化 ### 3. 批量更新 XML 配置优化
**文件**[DpcIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\resources\mapper\dpc\DpcIntermediaryBlacklistMapper.xml) **文件**[CcdiIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\resources\mapper\dpc\CcdiIntermediaryBlacklistMapper.xml)
**修改位置**:第 125-127 行 **修改位置**:第 125-127 行
@@ -140,7 +140,7 @@ python doc/test-data/test_import_fix.py
1. **数据迁移**:如果数据库中已存在机构中介数据且 `certificate_no` 为 null需要执行以下 SQL 进行数据修复: 1. **数据迁移**:如果数据库中已存在机构中介数据且 `certificate_no` 为 null需要执行以下 SQL 进行数据修复:
```sql ```sql
UPDATE dpc_intermediary_blacklist UPDATE ccdi_intermediary_blacklist
SET certificate_no = corp_credit_code SET certificate_no = corp_credit_code
WHERE intermediary_type = '2' AND certificate_no IS NULL AND corp_credit_code IS NOT NULL; WHERE intermediary_type = '2' AND certificate_no IS NULL AND corp_credit_code IS NOT NULL;
``` ```
@@ -151,8 +151,8 @@ WHERE intermediary_type = '2' AND certificate_no IS NULL AND corp_credit_code IS
## 修改文件列表 ## 修改文件列表
1. [DpcIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\java\com\ruoyi\dpc\service\impl\DpcIntermediaryBlacklistServiceImpl.java) - 服务层实现 1. [CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java) - 服务层实现
2. [DpcIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\resources\mapper\dpc\DpcIntermediaryBlacklistMapper.xml) - MyBatis 映射文件 2. [CcdiIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\resources\mapper\dpc\CcdiIntermediaryBlacklistMapper.xml) - MyBatis 映射文件
3. [test_import_fix.py](d:\discipline-prelim-check\discipline-prelim-check\doc\test-data\test_import_fix.py) - 测试脚本 3. [test_import_fix.py](d:\discipline-prelim-check\discipline-prelim-check\doc\test-data\test_import_fix.py) - 测试脚本
## 版本历史 ## 版本历史

View File

@@ -4,7 +4,7 @@
**约束条件:** **约束条件:**
- 必须遵循若依框架的代码规范 - 必须遵循若依框架的代码规范
- 必须使用项目已定义的命名规范(模块前缀 `dpc_` - 必须使用项目已定义的命名规范(模块前缀 `ccdi_`
- 必须支持 Excel 导入导出功能 - 必须支持 Excel 导入导出功能
- 亲属信息需要与员工信息关联管理 - 亲属信息需要与员工信息关联管理
@@ -19,7 +19,7 @@
1. 提供完整的员工信息 CRUD 接口 1. 提供完整的员工信息 CRUD 接口
2. 支持员工亲属信息的关联管理(一对多关系) 2. 支持员工亲属信息的关联管理(一对多关系)
3. 支持 Excel 批量导入导出,导入时可同时导入亲属信息 3. 支持 Excel 批量导入导出,导入时可同时导入亲属信息
4. 遵循现有代码模式(参考 `dpc_intermediary_blacklist` 模块) 4. 遵循现有代码模式(参考 `ccdi_intermediary_blacklist` 模块)
### Non-Goals ### Non-Goals
- 不涉及前端页面的实现(本次仅实现后端接口) - 不涉及前端页面的实现(本次仅实现后端接口)
@@ -34,7 +34,7 @@
**决策:使用两张表存储员工和亲属信息** **决策:使用两张表存储员工和亲属信息**
``` ```
dpc_employee (员工主表) ccdi_employee (员工主表)
├── employee_id (主键) ├── employee_id (主键)
├── name (姓名) ├── name (姓名)
├── teller_no (柜员号, UNIQUE) ├── teller_no (柜员号, UNIQUE)
@@ -45,9 +45,9 @@ dpc_employee (员工主表)
├── status (状态: 0=在职, 1=离职) ├── status (状态: 0=在职, 1=离职)
└── 审计字段 (create_by, create_time, update_by, update_time) └── 审计字段 (create_by, create_time, update_by, update_time)
dpc_employee_relative (员工亲属表) ccdi_employee_relative (员工亲属表)
├── relative_id (主键) ├── relative_id (主键)
├── employee_id (外键 → dpc_employee.employee_id) ├── employee_id (外键 → ccdi_employee.employee_id)
├── relative_name (亲属姓名) ├── relative_name (亲属姓名)
├── relative_id_card (亲属身份证号) ├── relative_id_card (亲属身份证号)
├── relative_phone (亲属手机号) ├── relative_phone (亲属手机号)
@@ -126,10 +126,10 @@ Sheet2: 亲属信息 (可选)
**决策:使用字典管理"与员工关系"字段和"员工状态"字段** **决策:使用字典管理"与员工关系"字段和"员工状态"字段**
``` ```
字典类型: dpc_relative_relationship 字典类型: ccdi_relative_relationship
字典数据: 配偶、父亲、母亲、子女、兄弟姐妹、其他 字典数据: 配偶、父亲、母亲、子女、兄弟姐妹、其他
字典类型: dpc_employee_status 字典类型: ccdi_employee_status
字典数据: 在职(0)、离职(1) 字典数据: 在职(0)、离职(1)
``` ```
@@ -156,14 +156,14 @@ UNIQUE KEY `uk_id_card` (`id_card`)
**决策:遵循项目规范** **决策:遵循项目规范**
- 表名: `dpc_employee`, `dpc_employee_relative` - 表名: `ccdi_employee`, `ccdi_employee_relative`
- 实体类: `DpcEmployee`, `DpcEmployeeRelative` - 实体类: `CcdiEmployee`, `CcdiEmployeeRelative`
- Controller: `DpcEmployeeController` - Controller: `CcdiEmployeeController`
- 权限标识: `dpc:employee:*` - 权限标识: `dpc:employee:*`
- **所有实体类、DTO、VO 类统一使用 @Data 注解** - **所有实体类、DTO、VO 类统一使用 @Data 注解**
**理由:** **理由:**
- 与现有 `dpc_intermediary_blacklist` 模块保持一致 - 与现有 `ccdi_intermediary_blacklist` 模块保持一致
- 符合项目编码规范 - 符合项目编码规范
- @Data 注解自动生成 getter/setter代码简洁 - @Data 注解自动生成 getter/setter代码简洁
@@ -186,8 +186,8 @@ UNIQUE KEY `uk_id_card` (`id_card`)
```java ```java
// 简单查询 - 使用 MyBatis Plus // 简单查询 - 使用 MyBatis Plus
employeeMapper.selectById(id); employeeMapper.selectById(id);
employeeMapper.selectList(new LambdaQueryWrapper<DpcEmployee>() employeeMapper.selectList(new LambdaQueryWrapper<CcdiEmployee>()
.eq(DpcEmployee::getTellerNo, tellerNo)); .eq(CcdiEmployee::getTellerNo, tellerNo));
// 复杂查询 - 使用 XML // 复杂查询 - 使用 XML
EmployeeWithRelativesVO selectEmployeeWithRelatives(Long id); EmployeeWithRelativesVO selectEmployeeWithRelatives(Long id);

View File

@@ -17,7 +17,7 @@
- 员工亲属管理:支持在员工信息中维护亲属关系 - 员工亲属管理:支持在员工信息中维护亲属关系
### 数据模型 ### 数据模型
**员工主表 (dpc_employee)** **员工主表 (ccdi_employee)**
- 员工ID (主键) - 员工ID (主键)
- 姓名 - 姓名
- 柜员号 (唯一约束) - 柜员号 (唯一约束)
@@ -28,7 +28,7 @@
- 状态 (0=在职, 1=离职) - 状态 (0=在职, 1=离职)
- 审计字段(创建者、创建时间、更新者、更新时间) - 审计字段(创建者、创建时间、更新者、更新时间)
**员工亲属表 (dpc_employee_relative)** **员工亲属表 (ccdi_employee_relative)**
- 亲属ID (主键) - 亲属ID (主键)
- 员工ID (外键) - 员工ID (外键)
- 亲属姓名 - 亲属姓名
@@ -54,11 +54,11 @@
### 影响的代码 (Affected Code) ### 影响的代码 (Affected Code)
- **新增模块**: `ruoyi-dpc` (DPC业务模块) - **新增模块**: `ruoyi-dpc` (DPC业务模块)
- `com.ruoyi.dpc.domain.DpcEmployee` - 员工实体(使用 @Data 注解) - `com.ruoyi.dpc.domain.CcdiEmployee` - 员工实体(使用 @Data 注解)
- `com.ruoyi.dpc.domain.DpcEmployeeRelative` - 亲属实体(使用 @Data 注解) - `com.ruoyi.dpc.domain.CcdiEmployeeRelative` - 亲属实体(使用 @Data 注解)
- `com.ruoyi.dpc.domain.dto.*` - DTO类统一使用 @Data 注解) - `com.ruoyi.dpc.domain.dto.*` - DTO类统一使用 @Data 注解)
- `com.ruoyi.dpc.domain.vo.*` - VO类统一使用 @Data 注解) - `com.ruoyi.dpc.domain.vo.*` - VO类统一使用 @Data 注解)
- `com.ruoyi.dpc.controller.DpcEmployeeController` - 控制器 - `com.ruoyi.dpc.controller.CcdiEmployeeController` - 控制器
- `com.ruoyi.dpc.service.*` - 服务层 - `com.ruoyi.dpc.service.*` - 服务层
- `com.ruoyi.dpc.mapper.*` - 数据访问层(继承 MyBatis Plus BaseMapper - `com.ruoyi.dpc.mapper.*` - 数据访问层(继承 MyBatis Plus BaseMapper
- **技术实现**: - **技术实现**:
@@ -66,8 +66,8 @@
- 复杂查询(如多表关联)使用 XML 映射文件 - 复杂查询(如多表关联)使用 XML 映射文件
- **数据库**: 新增表 - **数据库**: 新增表
- `dpc_employee` - 员工信息表 - `ccdi_employee` - 员工信息表
- `dpc_employee_relative` - 员工亲属表 - `ccdi_employee_relative` - 员工亲属表
- `sys_dict_type` - 字典类型表(员工状态、亲属关系) - `sys_dict_type` - 字典类型表(员工状态、亲属关系)
- **菜单系统**: (将在前端开发阶段处理) - **菜单系统**: (将在前端开发阶段处理)

View File

@@ -1,40 +1,40 @@
## 1. 数据库设计与实现 ## 1. 数据库设计与实现
- [x] 1.1 创建 `dpc_employee` 员工信息表包含字段employee_id, name, teller_no, org_no, id_card, phone, hire_date, status, create_by, create_time, update_by, update_time - [x] 1.1 创建 `ccdi_employee` 员工信息表包含字段employee_id, name, teller_no, org_no, id_card, phone, hire_date, status, create_by, create_time, update_by, update_time
- [x] 1.2 为 `dpc_employee` 表创建唯一约束uk_teller_no (柜员号唯一), uk_id_card (身份证号唯一) - [x] 1.2 为 `ccdi_employee` 表创建唯一约束uk_teller_no (柜员号唯一), uk_id_card (身份证号唯一)
- [x] 1.3 为 `dpc_employee` 表创建索引idx_org_no, idx_status - [x] 1.3 为 `ccdi_employee` 表创建索引idx_org_no, idx_status
- [x] 1.4 创建 `dpc_employee_relative` 员工亲属表包含字段relative_id, employee_id, relative_name, relative_id_card, relative_phone, relationship, create_by, create_time, update_by, update_time - [x] 1.4 创建 `ccdi_employee_relative` 员工亲属表包含字段relative_id, employee_id, relative_name, relative_id_card, relative_phone, relationship, create_by, create_time, update_by, update_time
- [x] 1.5 为 `dpc_employee_relative` 表创建索引idx_employee_id, idx_relative_id_card - [x] 1.5 为 `ccdi_employee_relative` 表创建索引idx_employee_id, idx_relative_id_card
- [x] 1.6 添加外键约束:dpc_employee_relative.employee_id → dpc_employee.employee_id可选根据项目规范决定 - [x] 1.6 添加外键约束:ccdi_employee_relative.employee_id → ccdi_employee.employee_id可选根据项目规范决定
- [x] 1.7 创建 `dpc_relative_relationship` 字典类型及字典数据(配偶、父亲、母亲、子女、兄弟姐妹、其他) - [x] 1.7 创建 `ccdi_relative_relationship` 字典类型及字典数据(配偶、父亲、母亲、子女、兄弟姐妹、其他)
- [x] 1.8 创建 `dpc_employee_status` 字典类型及字典数据(在职=0、离职=1 - [x] 1.8 创建 `ccdi_employee_status` 字典类型及字典数据(在职=0、离职=1
## 2. 后端实体类创建 ## 2. 后端实体类创建
- [x] 2.1 创建 `DpcEmployee.java` 实体类,使用 @Data 注解,包含 @Excel 注解用于导入导出 - [x] 2.1 创建 `CcdiEmployee.java` 实体类,使用 @Data 注解,包含 @Excel 注解用于导入导出
- [x] 2.2 创建 `DpcEmployeeRelative.java` 实体类,使用 @Data 注解 - [x] 2.2 创建 `CcdiEmployeeRelative.java` 实体类,使用 @Data 注解
- [x] 2.3 创建 `DpcEmployeeAddDTO.java` 新增 DTO使用 @Data 注解,包含 @Validated 校验注解 - [x] 2.3 创建 `CcdiEmployeeAddDTO.java` 新增 DTO使用 @Data 注解,包含 @Validated 校验注解
- [x] 2.4 创建 `DpcEmployeeEditDTO.java` 编辑 DTO使用 @Data 注解,包含 @Validated 校验注解 - [x] 2.4 创建 `CcdiEmployeeEditDTO.java` 编辑 DTO使用 @Data 注解,包含 @Validated 校验注解
- [x] 2.5 创建 `DpcEmployeeQueryDTO.java` 查询 DTO使用 @Data 注解 - [x] 2.5 创建 `CcdiEmployeeQueryDTO.java` 查询 DTO使用 @Data 注解
- [x] 2.6 创建 `DpcEmployeeVO.java` 视图对象,使用 @Data 注解,包含亲属列表 - [x] 2.6 创建 `CcdiEmployeeVO.java` 视图对象,使用 @Data 注解,包含亲属列表
- [x] 2.7 创建 `DpcEmployeeRelativeVO.java` 亲属视图对象,使用 @Data 注解 - [x] 2.7 创建 `CcdiEmployeeRelativeVO.java` 亲属视图对象,使用 @Data 注解
- [x] 2.8 创建 `DpcEmployeeRelativeAddDTO.java` 亲属新增 DTO使用 @Data 注解 - [x] 2.8 创建 `CcdiEmployeeRelativeAddDTO.java` 亲属新增 DTO使用 @Data 注解
## 3. Mapper 层实现 ## 3. Mapper 层实现
- [x] 3.1 创建 `DpcEmployeeMapper.java` 接口,继承 `BaseMapper<DpcEmployee>` - [x] 3.1 创建 `CcdiEmployeeMapper.java` 接口,继承 `BaseMapper<CcdiEmployee>`
- [x] 3.2 创建 `DpcEmployeeMapper.xml` MyBatis 映射文件,仅实现复杂查询(如:员工详情包含亲属列表) - [x] 3.2 创建 `CcdiEmployeeMapper.xml` MyBatis 映射文件,仅实现复杂查询(如:员工详情包含亲属列表)
- [x] 3.3 在 XML 中实现 `selectEmployeeWithRelatives` 方法,关联查询员工及其亲属信息 - [x] 3.3 在 XML 中实现 `selectEmployeeWithRelatives` 方法,关联查询员工及其亲属信息
- [x] 3.4 创建 `DpcEmployeeRelativeMapper.java` 接口,继承 `BaseMapper<DpcEmployeeRelative>` - [x] 3.4 创建 `CcdiEmployeeRelativeMapper.java` 接口,继承 `BaseMapper<CcdiEmployeeRelative>`
- [x] 3.5 创建 `DpcEmployeeRelativeMapper.xml` MyBatis 映射文件(如需复杂查询) - [x] 3.5 创建 `CcdiEmployeeRelativeMapper.xml` MyBatis 映射文件(如需复杂查询)
- [x] 3.6 简单 CRUD 操作使用 MyBatis Plus 提供的 BaseMapper 方法insert, deleteById, deleteByIds, updateById, selectById, selectList - [x] 3.6 简单 CRUD 操作使用 MyBatis Plus 提供的 BaseMapper 方法insert, deleteById, deleteByIds, updateById, selectById, selectList
- [x] 3.7 简单条件查询使用 LambdaQueryWrapper 或 QueryWrapper按柜员号、身份证号查询 - [x] 3.7 简单条件查询使用 LambdaQueryWrapper 或 QueryWrapper按柜员号、身份证号查询
- [x] 3.8 复杂多条件查询在 XML 中编写自定义 SQL - [x] 3.8 复杂多条件查询在 XML 中编写自定义 SQL
## 4. Service 层实现 ## 4. Service 层实现
- [x] 4.1 创建 `IDpcEmployeeService.java` 接口 - [x] 4.1 创建 `ICcdiEmployeeService.java` 接口
- [x] 4.2 创建 `DpcEmployeeServiceImpl.java` 实现类 - [x] 4.2 创建 `CcdiEmployeeServiceImpl.java` 实现类
- [x] 4.3 实现查询员工列表方法 `selectEmployeeList`,支持分页和多条件查询 - [x] 4.3 实现查询员工列表方法 `selectEmployeeList`,支持分页和多条件查询
- [x] 4.4 实现查询员工详情方法 `selectEmployeeById`,包含亲属信息 - [x] 4.4 实现查询员工详情方法 `selectEmployeeById`,包含亲属信息
- [x] 4.5 实现新增员工方法 `insertEmployee`,支持同时插入亲属信息 - [x] 4.5 实现新增员工方法 `insertEmployee`,支持同时插入亲属信息
@@ -48,7 +48,7 @@
## 5. Controller 层实现 ## 5. Controller 层实现
- [x] 5.1 创建 `DpcEmployeeController.java` 控制器类 - [x] 5.1 创建 `CcdiEmployeeController.java` 控制器类
- [x] 5.2 实现 `GET /dpc/employee/list` 查询列表接口,添加 @PreAuthorize 权限注解 - [x] 5.2 实现 `GET /dpc/employee/list` 查询列表接口,添加 @PreAuthorize 权限注解
- [x] 5.3 实现 `GET /dpc/employee/{id}` 查询详情接口 - [x] 5.3 实现 `GET /dpc/employee/{id}` 查询详情接口
- [x] 5.4 实现 `POST /dpc/employee` 新增接口 - [x] 5.4 实现 `POST /dpc/employee` 新增接口
@@ -61,8 +61,8 @@
## 6. 导入导出功能实现 ## 6. 导入导出功能实现
- [x] 6.1 配置 `DpcEmployee` 实体的 @Excel 注解,定义导出列 - [x] 6.1 配置 `CcdiEmployee` 实体的 @Excel 注解,定义导出列
- [x] 6.2 配置 `DpcEmployeeRelative` 实体的 @Excel 注解(用于多 Sheet 导入) - [x] 6.2 配置 `CcdiEmployeeRelative` 实体的 @Excel 注解(用于多 Sheet 导入)
- [x] 6.3 实现导入模板的 Excel 格式定义 - [x] 6.3 实现导入模板的 Excel 格式定义
- [x] 6.4 实现 Excel 解析逻辑,支持多 Sheet 读取 - [x] 6.4 实现 Excel 解析逻辑,支持多 Sheet 读取
- [x] 6.5 实现员工和亲属数据的关联逻辑(通过身份证号) - [x] 6.5 实现员工和亲属数据的关联逻辑(通过身份证号)

View File

@@ -2,12 +2,12 @@
## 数据库设计 ## 数据库设计
### 表:dpc_intermediary_blacklist ### 表:ccdi_intermediary_blacklist
中介人员/机构黑名单主表。 中介人员/机构黑名单主表。
```sql ```sql
CREATE TABLE `dpc_intermediary_blacklist` ( CREATE TABLE `ccdi_intermediary_blacklist` (
`intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID', `intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID',
`name` VARCHAR(100) NOT NULL COMMENT '姓名/机构名称', `name` VARCHAR(100) NOT NULL COMMENT '姓名/机构名称',
`certificate_no` VARCHAR(50) DEFAULT NULL COMMENT '证件号', `certificate_no` VARCHAR(50) DEFAULT NULL COMMENT '证件号',
@@ -55,40 +55,40 @@ CREATE TABLE `dpc_intermediary_blacklist` (
ruoyi-dpc/ ruoyi-dpc/
├── src/main/java/com/ruoyi/dpc/ ├── src/main/java/com/ruoyi/dpc/
│ ├── controller/ │ ├── controller/
│ │ └── DpcIntermediaryBlacklistController.java │ │ └── CcdiIntermediaryBlacklistController.java
│ ├── domain/ │ ├── domain/
│ │ ├── DpcIntermediaryBlacklist.java │ │ ├── CcdiIntermediaryBlacklist.java
│ │ ├── dto/ │ │ ├── dto/
│ │ │ ├── DpcIntermediaryBlacklistAddDTO.java │ │ │ ├── CcdiIntermediaryBlacklistAddDTO.java
│ │ │ ├── DpcIntermediaryBlacklistEditDTO.java │ │ │ ├── CcdiIntermediaryBlacklistEditDTO.java
│ │ │ └── DpcIntermediaryBlacklistQueryDTO.java │ │ │ └── CcdiIntermediaryBlacklistQueryDTO.java
│ │ └── vo/ │ │ └── vo/
│ │ └── DpcIntermediaryBlacklistVO.java │ │ └── CcdiIntermediaryBlacklistVO.java
│ ├── mapper/ │ ├── mapper/
│ │ └── DpcIntermediaryBlacklistMapper.java │ │ └── CcdiIntermediaryBlacklistMapper.java
│ └── service/ │ └── service/
│ ├── IDpcIntermediaryBlacklistService.java │ ├── ICcdiIntermediaryBlacklistService.java
│ └── impl/ │ └── impl/
│ └── DpcIntermediaryBlacklistServiceImpl.java │ └── CcdiIntermediaryBlacklistServiceImpl.java
└── src/main/resources/mapper/dpc/ └── src/main/resources/mapper/dpc/
└── DpcIntermediaryBlacklistMapper.xml └── CcdiIntermediaryBlacklistMapper.xml
``` ```
### Controller 层设计 ### Controller 层设计
**DpcIntermediaryBlacklistController** **CcdiIntermediaryBlacklistController**
```java ```java
@RestController @RestController
@RequestMapping("/dpc/intermediary") @RequestMapping("/dpc/intermediary")
public class DpcIntermediaryBlacklistController extends BaseController { public class CcdiIntermediaryBlacklistController extends BaseController {
/** /**
* 查询中介黑名单列表 * 查询中介黑名单列表
*/ */
@PreAuthorize("@ss.hasPermi('dpc:intermediary:list')") @PreAuthorize("@ss.hasPermi('dpc:intermediary:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(DpcIntermediaryBlacklistQueryDTO queryDTO) { public TableDataInfo list(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
// 分页查询逻辑 // 分页查询逻辑
} }
@@ -98,7 +98,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@PreAuthorize("@ss.hasPermi('dpc:intermediary:export')") @PreAuthorize("@ss.hasPermi('dpc:intermediary:export')")
@Log(title = "中介黑名单", businessType = BusinessType.EXPORT) @Log(title = "中介黑名单", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, DpcIntermediaryBlacklistQueryDTO queryDTO) { public void export(HttpServletResponse response, CcdiIntermediaryBlacklistQueryDTO queryDTO) {
// 导出逻辑 // 导出逻辑
} }
@@ -117,7 +117,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')") @PreAuthorize("@ss.hasPermi('dpc:intermediary:add')")
@Log(title = "中介黑名单", businessType = BusinessType.INSERT) @Log(title = "中介黑名单", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody DpcIntermediaryBlacklistAddDTO addDTO) { public AjaxResult add(@Validated @RequestBody CcdiIntermediaryBlacklistAddDTO addDTO) {
// 新增逻辑 // 新增逻辑
} }
@@ -127,7 +127,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')") @PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')")
@Log(title = "中介黑名单", businessType = BusinessType.UPDATE) @Log(title = "中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody DpcIntermediaryBlacklistEditDTO editDTO) { public AjaxResult edit(@Validated @RequestBody CcdiIntermediaryBlacklistEditDTO editDTO) {
// 修改逻辑 // 修改逻辑
} }
@@ -163,30 +163,30 @@ public class DpcIntermediaryBlacklistController extends BaseController {
### Service 层设计 ### Service 层设计
**IDpcIntermediaryBlacklistService** **ICcdiIntermediaryBlacklistService**
```java ```java
public interface IDpcIntermediaryBlacklistService { public interface ICcdiIntermediaryBlacklistService {
/** /**
* 查询中介黑名单列表 * 查询中介黑名单列表
*/ */
List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO); List<CcdiIntermediaryBlacklistVO> selectIntermediaryList(CcdiIntermediaryBlacklistQueryDTO queryDTO);
/** /**
* 查询中介黑名单详细信息 * 查询中介黑名单详细信息
*/ */
DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId); CcdiIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId);
/** /**
* 新增中介黑名单 * 新增中介黑名单
*/ */
int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO); int insertIntermediary(CcdiIntermediaryBlacklistAddDTO addDTO);
/** /**
* 修改中介黑名单 * 修改中介黑名单
*/ */
int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO); int updateIntermediary(CcdiIntermediaryBlacklistEditDTO editDTO);
/** /**
* 批量删除中介黑名单 * 批量删除中介黑名单
@@ -196,7 +196,7 @@ public interface IDpcIntermediaryBlacklistService {
/** /**
* 导入中介黑名单数据 * 导入中介黑名单数据
*/ */
String importIntermediary(List<DpcIntermediaryBlacklistAddDTO> addDTOList, boolean isUpdateSupport); String importIntermediary(List<CcdiIntermediaryBlacklistAddDTO> addDTOList, boolean isUpdateSupport);
} }
``` ```
@@ -205,7 +205,7 @@ public interface IDpcIntermediaryBlacklistService {
**实体类注解** **实体类注解**
```java ```java
public class DpcIntermediaryBlacklist { public class CcdiIntermediaryBlacklist {
/** 中介ID */ /** 中介ID */
private Long intermediaryId; private Long intermediaryId;
@@ -424,7 +424,7 @@ INSERT INTO sys_menu VALUES (2007, '中介导入', 2001, 6, 0, '', '', 1, 0, 'F'
## 字典数据设计 ## 字典数据设计
### 中介类型(dpc_intermediary_type ### 中介类型(ccdi_intermediary_type
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|

View File

@@ -76,9 +76,9 @@
### 后端影响 ### 后端影响
- 新建 `ruoyi-dpc` 模块(如果不存在),与若依框架代码分离 - 新建 `ruoyi-dpc` 模块(如果不存在),与若依框架代码分离
- 新增表:`dpc_intermediary_blacklist`(中介黑名单主表) - 新增表:`ccdi_intermediary_blacklist`(中介黑名单主表)
- 新增权限:`dpc:intermediary:list`, `dpc:intermediary:query`, `dpc:intermediary:add`, `dpc:intermediary:edit`, `dpc:intermediary:remove`, `dpc:intermediary:export`, `dpc:intermediary:import` - 新增权限:`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/DpcIntermediaryBlacklistController.java` - Controller 层:`ruoyi-dpc/src/main/java/com/ruoyi/dpc/controller/CcdiIntermediaryBlacklistController.java`
### 前端影响 ### 前端影响
- 新增视图:`ruoyi-ui/src/views/dpcIntermediary/` - 新增视图:`ruoyi-ui/src/views/dpcIntermediary/`
@@ -86,7 +86,7 @@
- 新增菜单:信息维护 > 中介库管理(注意与数据库中菜单表进行联动修改) - 新增菜单:信息维护 > 中介库管理(注意与数据库中菜单表进行联动修改)
### 数据库影响 ### 数据库影响
- 新增表:`dpc_intermediary_blacklist` - 新增表:`ccdi_intermediary_blacklist`
## Dependencies ## Dependencies
- 依赖 EasyExcel 进行 Excel 导入导出(参考 `replace-poi-with-easyexcel` change - 依赖 EasyExcel 进行 Excel 导入导出(参考 `replace-poi-with-easyexcel` change

View File

@@ -9,7 +9,7 @@
## 数据库设计 ## 数据库设计
- [ ] 2.1 编写数据库建表 SQL - [ ] 2.1 编写数据库建表 SQL
- [ ] 2.1.1 创建 `dpc_intermediary_blacklist` - [ ] 2.1.1 创建 `ccdi_intermediary_blacklist`
- [ ] 2.1.2 添加索引name, id_card, intermediary_type - [ ] 2.1.2 添加索引name, id_card, intermediary_type
- [ ] 2.1.3 添加表注释和字段注释 - [ ] 2.1.3 添加表注释和字段注释
@@ -19,24 +19,24 @@
- [ ] 2.2.3 添加按钮权限(查询、新增、修改、删除、导出、导入) - [ ] 2.2.3 添加按钮权限(查询、新增、修改、删除、导出、导入)
- [ ] 2.3 编写字典数据 SQL - [ ] 2.3 编写字典数据 SQL
- [ ] 2.3.1 添加"中介类型"字典(dpc_intermediary_type - [ ] 2.3.1 添加"中介类型"字典(ccdi_intermediary_type
- [ ] 2.3.2 添加"风险等级"字典(dpc_risk_level - [ ] 2.3.2 添加"风险等级"字典(ccdi_risk_level
- [ ] 2.4 执行 SQL 脚本初始化数据 - [ ] 2.4 执行 SQL 脚本初始化数据
## 后端开发 ## 后端开发
- [ ] 3.1 创建 Domain 层 - [ ] 3.1 创建 Domain 层
- [ ] 3.1.1 创建 `DpcIntermediaryBlacklist.java` 实体类 - [ ] 3.1.1 创建 `CcdiIntermediaryBlacklist.java` 实体类
- [ ] 3.1.2 创建 `DpcIntermediaryBlacklistAddDTO.java` 新增 DTO - [ ] 3.1.2 创建 `CcdiIntermediaryBlacklistAddDTO.java` 新增 DTO
- [ ] 3.1.3 创建 `DpcIntermediaryBlacklistEditDTO.java` 编辑 DTO - [ ] 3.1.3 创建 `CcdiIntermediaryBlacklistEditDTO.java` 编辑 DTO
- [ ] 3.1.4 创建 `DpcIntermediaryBlacklistQueryDTO.java` 查询 DTO - [ ] 3.1.4 创建 `CcdiIntermediaryBlacklistQueryDTO.java` 查询 DTO
- [ ] 3.1.5 创建 `DpcIntermediaryBlacklistVO.java` 视图对象 - [ ] 3.1.5 创建 `CcdiIntermediaryBlacklistVO.java` 视图对象
- [ ] 3.1.6 添加 `@Excel` 注解支持导入导出 - [ ] 3.1.6 添加 `@Excel` 注解支持导入导出
- [ ] 3.2 创建 Mapper 层 - [ ] 3.2 创建 Mapper 层
- [ ] 3.2.1 创建 `DpcIntermediaryBlacklistMapper.java` 接口 - [ ] 3.2.1 创建 `CcdiIntermediaryBlacklistMapper.java` 接口
- [ ] 3.2.2 创建 `DpcIntermediaryBlacklistMapper.xml` 映射文件 - [ ] 3.2.2 创建 `CcdiIntermediaryBlacklistMapper.xml` 映射文件
- [ ] 3.2.3 实现 `selectIntermediaryList` 方法(支持条件查询) - [ ] 3.2.3 实现 `selectIntermediaryList` 方法(支持条件查询)
- [ ] 3.2.4 实现 `selectIntermediaryById` 方法 - [ ] 3.2.4 实现 `selectIntermediaryById` 方法
- [ ] 3.2.5 实现 `insertIntermediary` 方法 - [ ] 3.2.5 实现 `insertIntermediary` 方法
@@ -44,8 +44,8 @@
- [ ] 3.2.7 实现 `deleteIntermediaryByIds` 方法 - [ ] 3.2.7 实现 `deleteIntermediaryByIds` 方法
- [ ] 3.3 创建 Service 层 - [ ] 3.3 创建 Service 层
- [ ] 3.3.1 创建 `IDpcIntermediaryBlacklistService.java` 接口 - [ ] 3.3.1 创建 `ICcdiIntermediaryBlacklistService.java` 接口
- [ ] 3.3.2 创建 `DpcIntermediaryBlacklistServiceImpl.java` 实现类 - [ ] 3.3.2 创建 `CcdiIntermediaryBlacklistServiceImpl.java` 实现类
- [ ] 3.3.3 实现查询列表业务逻辑(分页) - [ ] 3.3.3 实现查询列表业务逻辑(分页)
- [ ] 3.3.4 实现查询详情业务逻辑 - [ ] 3.3.4 实现查询详情业务逻辑
- [ ] 3.3.5 实现新增业务逻辑(含数据校验) - [ ] 3.3.5 实现新增业务逻辑(含数据校验)
@@ -55,7 +55,7 @@
- [ ] 3.3.9 实现导入业务逻辑(含数据验证) - [ ] 3.3.9 实现导入业务逻辑(含数据验证)
- [ ] 3.4 创建 Controller 层 - [ ] 3.4 创建 Controller 层
- [ ] 3.4.1 创建 `DpcIntermediaryBlacklistController.java` - [ ] 3.4.1 创建 `CcdiIntermediaryBlacklistController.java`
- [ ] 3.4.2 实现 `list` 接口(查询列表) - [ ] 3.4.2 实现 `list` 接口(查询列表)
- [ ] 3.4.3 实现 `getInfo` 接口(查询详情) - [ ] 3.4.3 实现 `getInfo` 接口(查询详情)
- [ ] 3.4.4 实现 `add` 接口(新增) - [ ] 3.4.4 实现 `add` 接口(新增)

View File

@@ -13,27 +13,27 @@ ruoyi-dpc/ (新建模块)
├── pom.xml # 模块依赖配置 ├── pom.xml # 模块依赖配置
├── src/main/java/com/ruoyi/dpc/ ├── src/main/java/com/ruoyi/dpc/
│ ├── controller/ │ ├── controller/
│ │ └── DpcProjectController.java # 项目控制器 │ │ └── CcdiProjectController.java # 项目控制器
│ ├── domain/ │ ├── domain/
│ │ ├── DpcProject.java # 项目实体 │ │ ├── CcdiProject.java # 项目实体
│ │ ├── DpcProjectPerson.java # 项目人员关联 │ │ ├── CcdiProjectPerson.java # 项目人员关联
│ │ ├── dto/ │ │ ├── dto/
│ │ │ ├── DpcProjectDTO.java # 项目数据传输对象 │ │ │ ├── CcdiProjectDTO.java # 项目数据传输对象
│ │ │ ├── DpcProjectQueryDTO.java # 项目查询DTO │ │ │ ├── CcdiProjectQueryDTO.java # 项目查询DTO
│ │ │ └── DpcProjectImportDTO.java # 项目导入DTO │ │ │ └── CcdiProjectImportDTO.java # 项目导入DTO
│ │ └── vo/ │ │ └── vo/
│ │ ├── DpcProjectVO.java # 项目视图对象 │ │ ├── CcdiProjectVO.java # 项目视图对象
│ │ └── DpcProjectQueryVO.java # 查询视图对象 │ │ └── CcdiProjectQueryVO.java # 查询视图对象
│ ├── mapper/ │ ├── mapper/
│ │ ├── DpcProjectMapper.java │ │ ├── CcdiProjectMapper.java
│ │ └── DpcProjectPersonMapper.java │ │ └── CcdiProjectPersonMapper.java
│ └── service/ │ └── service/
│ ├── IDpcProjectService.java │ ├── ICcdiProjectService.java
│ └── impl/ │ └── impl/
│ └── DpcProjectServiceImpl.java │ └── CcdiProjectServiceImpl.java
└── src/main/resources/mapper/dpc/ └── src/main/resources/mapper/dpc/
├── DpcProjectMapper.xml ├── CcdiProjectMapper.xml
└── DpcProjectPersonMapper.xml └── CcdiProjectPersonMapper.xml
ruoyi-ui/src/ ruoyi-ui/src/
├── api/ ├── api/
@@ -49,7 +49,7 @@ ruoyi-ui/src/
### 数据库表设计 ### 数据库表设计
#### dpc_project (项目主表) #### ccdi_project (项目主表)
| 字段名 | 类型 | 说明 | 约束 | | 字段名 | 类型 | 说明 | 约束 |
|-------|------|------|-----| |-------|------|------|-----|
@@ -74,12 +74,12 @@ ruoyi-ui/src/
- `1`: 已完成 - `1`: 已完成
- `2`: 已归档 - `2`: 已归档
#### dpc_project_person (项目人员关联表) #### ccdi_project_person (项目人员关联表)
| 字段名 | 类型 | 说明 | 约束 | | 字段名 | 类型 | 说明 | 约束 |
|-------|------|------|-----| |-------|------|------|-----|
| id | BIGINT | 主键ID | PK, AUTO_INCREMENT | | id | BIGINT | 主键ID | PK, AUTO_INCREMENT |
| project_id | BIGINT | 项目ID | FK -> dpc_project.project_id | | project_id | BIGINT | 项目ID | FK -> ccdi_project.project_id |
| person_id | BIGINT | 人员ID | FK -> sys_user.user_id | | person_id | BIGINT | 人员ID | FK -> sys_user.user_id |
| person_name | VARCHAR(30) | 人员姓名 | 冗余字段 | | person_name | VARCHAR(30) | 人员姓名 | 冗余字段 |
| person_dept_id | BIGINT | 部门ID | 冗余字段 | | person_dept_id | BIGINT | 部门ID | 冗余字段 |
@@ -90,11 +90,11 @@ ruoyi-ui/src/
### 实体类设计 ### 实体类设计
#### DpcProject.java #### CcdiProject.java
```java ```java
@Data @Data
@TableName("dpc_project") @TableName("ccdi_project")
public class DpcProject { public class CcdiProject {
/** 项目ID */ /** 项目ID */
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long projectId; private Long projectId;
@@ -164,7 +164,7 @@ public class DpcProject {
* MyBatis Plus 审计字段自动填充处理器 * MyBatis Plus 审计字段自动填充处理器
*/ */
@Component @Component
public class DpcMetaObjectHandler implements MetaObjectHandler { public class CcdiMetaObjectHandler implements MetaObjectHandler {
@Resource @Resource
private TokenService tokenService; private TokenService tokenService;
@@ -199,8 +199,8 @@ public class DpcMetaObjectHandler implements MetaObjectHandler {
```java ```java
@Data @Data
@TableName("dpc_project") @TableName("ccdi_project")
public class DpcProject { public class CcdiProject {
// ... 其他字段 // ... 其他字段
/** 创建者 */ /** 创建者 */
@@ -233,10 +233,10 @@ public class DpcProject {
按照全局配置要求,接口传参使用单独的 DTO不与 entity 混用。 按照全局配置要求,接口传参使用单独的 DTO不与 entity 混用。
#### DpcProjectDTO.java新增/修改项目DTO #### CcdiProjectDTO.java新增/修改项目DTO
```java ```java
@Data @Data
public class DpcProjectDTO { public class CcdiProjectDTO {
/** 项目名称 */ /** 项目名称 */
@NotBlank(message = "项目名称不能为空") @NotBlank(message = "项目名称不能为空")
@Size(max = 100, message = "项目名称不能超过100个字符") @Size(max = 100, message = "项目名称不能超过100个字符")
@@ -260,10 +260,10 @@ public class DpcProjectDTO {
} }
``` ```
#### DpcProjectQueryDTO.java查询项目DTO #### CcdiProjectQueryDTO.java查询项目DTO
```java ```java
@Data @Data
public class DpcProjectQueryDTO { public class CcdiProjectQueryDTO {
/** 项目名称(模糊搜索) */ /** 项目名称(模糊搜索) */
private String projectName; private String projectName;
@@ -280,10 +280,10 @@ public class DpcProjectQueryDTO {
} }
``` ```
#### DpcProjectImportDTO.java导入历史项目DTO #### CcdiProjectImportDTO.java导入历史项目DTO
```java ```java
@Data @Data
public class DpcProjectImportDTO { public class CcdiProjectImportDTO {
/** 历史项目ID */ /** 历史项目ID */
@NotNull(message = "请选择要导入的历史项目") @NotNull(message = "请选择要导入的历史项目")
private Long historyProjectId; private Long historyProjectId;
@@ -300,16 +300,16 @@ public class DpcProjectImportDTO {
/** /**
* DTO 与 Entity 转换工具类 * DTO 与 Entity 转换工具类
*/ */
public class DpcProjectConverter { public class CcdiProjectConverter {
/** /**
* DTO 转 Entity新增/修改) * DTO 转 Entity新增/修改)
*/ */
public static DpcProject toEntity(DpcProjectDTO dto) { public static CcdiProject toEntity(CcdiProjectDTO dto) {
if (dto == null) { if (dto == null) {
return null; return null;
} }
DpcProject entity = new DpcProject(); CcdiProject entity = new CcdiProject();
entity.setProjectName(dto.getProjectName()); entity.setProjectName(dto.getProjectName());
entity.setDescription(dto.getDescription()); entity.setDescription(dto.getDescription());
entity.setStartDate(dto.getStartDate()); entity.setStartDate(dto.getStartDate());
@@ -320,11 +320,11 @@ public class DpcProjectConverter {
/** /**
* Entity 转 VO * Entity 转 VO
*/ */
public static DpcProjectVO toVO(DpcProject entity) { public static CcdiProjectVO toVO(CcdiProject entity) {
if (entity == null) { if (entity == null) {
return null; return null;
} }
DpcProjectVO vo = new DpcProjectVO(); CcdiProjectVO vo = new CcdiProjectVO();
BeanUtils.copyProperties(entity, vo); BeanUtils.copyProperties(entity, vo);
return vo; return vo;
} }
@@ -332,12 +332,12 @@ public class DpcProjectConverter {
/** /**
* Entity 列表转 VO 列表 * Entity 列表转 VO 列表
*/ */
public static List<DpcProjectVO> toVOList(List<DpcProject> entityList) { public static List<CcdiProjectVO> toVOList(List<CcdiProject> entityList) {
if (entityList == null || entityList.isEmpty()) { if (entityList == null || entityList.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
} }
return entityList.stream() return entityList.stream()
.map(DpcProjectConverter::toVO) .map(CcdiProjectConverter::toVO)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
} }
@@ -347,34 +347,34 @@ public class DpcProjectConverter {
```java ```java
@RestController @RestController
@RequestMapping("/dpc/project") @RequestMapping("/dpc/project")
public class DpcProjectController { public class CcdiProjectController {
@Resource @Resource
private IDpcProjectService projectService; private ICcdiProjectService projectService;
@PreAuthorize("@ss.hasPermi('dpc:project:add')") @PreAuthorize("@ss.hasPermi('dpc:project:add')")
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody DpcProjectDTO dto) { public AjaxResult add(@Validated @RequestBody CcdiProjectDTO dto) {
DpcProject project = DpcProjectConverter.toEntity(dto); CcdiProject project = CcdiProjectConverter.toEntity(dto);
return AjaxResult.success(projectService.insertProject(project)); return AjaxResult.success(projectService.insertProject(project));
} }
@PreAuthorize("@ss.hasPermi('dpc:project:edit')") @PreAuthorize("@ss.hasPermi('dpc:project:edit')")
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody DpcProjectDTO dto) { public AjaxResult edit(@Validated @RequestBody CcdiProjectDTO dto) {
DpcProject project = DpcProjectConverter.toEntity(dto); CcdiProject project = CcdiProjectConverter.toEntity(dto);
return AjaxResult.success(projectService.updateProject(project)); return AjaxResult.success(projectService.updateProject(project));
} }
@PreAuthorize("@ss.hasPermi('dpc:project:list')") @PreAuthorize("@ss.hasPermi('dpc:project:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(DpcProjectQueryDTO queryDTO) { public TableDataInfo list(CcdiProjectQueryDTO queryDTO) {
DpcProject project = new DpcProject(); CcdiProject project = new CcdiProject();
// 将查询条件转换到实体 // 将查询条件转换到实体
BeanUtils.copyProperties(queryDTO, project); BeanUtils.copyProperties(queryDTO, project);
startPage(); startPage();
List<DpcProject> list = projectService.selectProjectList(project); List<CcdiProject> list = projectService.selectProjectList(project);
List<DpcProjectVO> voList = DpcProjectConverter.toVOList(list); List<CcdiProjectVO> voList = CcdiProjectConverter.toVOList(list);
return getDataTable(voList); return getDataTable(voList);
} }
} }
@@ -585,7 +585,7 @@ export function importProject(data) {
3. **数据库** 3. **数据库**
- MySQL 8.2.0 - MySQL 8.2.0
- 表名使用 `dpc_` 前缀(项目英文名首字母集合) - 表名使用 `ccdi_` 前缀(项目英文名首字母集合)
4. **安全** 4. **安全**
- 所有API需要 `@PreAuthorize` 权限注解 - 所有API需要 `@PreAuthorize` 权限注解

View File

@@ -67,9 +67,9 @@
### 后端影响 ### 后端影响
- 新建 `ruoyi-dpc` 模块,与若依框架代码分离(包含 Controller、Service、Mapper、Domain 层) - 新建 `ruoyi-dpc` 模块,与若依框架代码分离(包含 Controller、Service、Mapper、Domain 层)
- 新增表:`dpc_project`(项目主表)、`dpc_project_person`(项目人员关联表) - 新增表:`ccdi_project`(项目主表)、`ccdi_project_person`(项目人员关联表)
- 新增权限:`dpc:project:list`, `dpc:project:query`, `dpc:project:add`, `dpc:project:edit`, `dpc:project:remove`, `dpc:project:archive`, `dpc:project:reanalyze` - 新增权限:`dpc:project:list`, `dpc:project:query`, `dpc:project:add`, `dpc:project:edit`, `dpc:project:remove`, `dpc:project:archive`, `dpc:project:reanalyze`
- Controller层`ruoyi-dpc/src/main/java/com/ruoyi/dpc/controller/DpcProjectController.java` - Controller层`ruoyi-dpc/src/main/java/com/ruoyi/dpc/controller/CcdiProjectController.java`
### 前端影响 ### 前端影响
- 新增视图:`ruoyi-ui/src/views/dpcProject/` - 新增视图:`ruoyi-ui/src/views/dpcProject/`
@@ -77,8 +77,8 @@
- 新增菜单:项目管理(在系统菜单中添加,注意与数据库中菜单表进行联动修改) - 新增菜单:项目管理(在系统菜单中添加,注意与数据库中菜单表进行联动修改)
### 数据库影响 ### 数据库影响
- 新增表:`dpc_project`(项目主表) - 新增表:`ccdi_project`(项目主表)
- 新增表:`dpc_project_person`(项目人员关联表) - 新增表:`ccdi_project_person`(项目人员关联表)
## Dependencies ## Dependencies
- 依赖现有用户系统(`SysUser`)进行人员选择 - 依赖现有用户系统(`SysUser`)进行人员选择
@@ -90,7 +90,7 @@
## Open Questions ## Open Questions
1. **项目人员关联方式**使用多对多关联表还是JSON字段存储人员列表 1. **项目人员关联方式**使用多对多关联表还是JSON字段存储人员列表
- 建议:使用 `dpc_project_person` 关联表,便于查询和扩展 - 建议:使用 `ccdi_project_person` 关联表,便于查询和扩展
2. **归档PDF生成**使用什么工具生成PDF 2. **归档PDF生成**使用什么工具生成PDF
- 建议:使用 iText 或 Apache POI需要后续确认 - 建议:使用 iText 或 Apache POI需要后续确认

View File

@@ -5,12 +5,12 @@
## 阶段1基础架构搭建 ## 阶段1基础架构搭建
### 1.1 创建数据库表 ### 1.1 创建数据库表
- [ ] 创建 `dpc_project` - [ ] 创建 `ccdi_project`
- [ ] 创建 `dpc_project_person` - [ ] 创建 `ccdi_project_person`
- [ ] 创建索引和外键约束 - [ ] 创建索引和外键约束
- [ ] 准备测试数据 - [ ] 准备测试数据
**验证**执行SQL脚本表结构创建成功可以使用 `DESC dpc_project;` 查看表结构 **验证**执行SQL脚本表结构创建成功可以使用 `DESC ccdi_project;` 查看表结构
### 1.2 创建后端模块结构 ### 1.2 创建后端模块结构
- [ ] 创建 `ruoyi-dpc` 新模块 - [ ] 创建 `ruoyi-dpc` 新模块
@@ -23,27 +23,27 @@
**验证**:项目可以正常编译启动 **验证**:项目可以正常编译启动
### 1.3 创建实体类和DTO ### 1.3 创建实体类和DTO
- [ ] 创建 `DpcProject.java` 实体类(使用 `@Data` 注解,不继承 BaseEntity - [ ] 创建 `CcdiProject.java` 实体类(使用 `@Data` 注解,不继承 BaseEntity
- [ ] 创建 `DpcProjectPerson.java` 实体类(使用 `@Data` 注解) - [ ] 创建 `CcdiProjectPerson.java` 实体类(使用 `@Data` 注解)
- [ ] 创建 `DpcProjectVO.java` 视图对象 - [ ] 创建 `CcdiProjectVO.java` 视图对象
- [ ] 创建 `DpcProjectQueryVO.java` 查询视图对象 - [ ] 创建 `CcdiProjectQueryVO.java` 查询视图对象
- [ ] 创建 `DpcProjectDTO.java` 数据传输对象(新增/修改) - [ ] 创建 `CcdiProjectDTO.java` 数据传输对象(新增/修改)
- [ ] 创建 `DpcProjectQueryDTO.java` 查询DTO - [ ] 创建 `CcdiProjectQueryDTO.java` 查询DTO
- [ ] 创建 `DpcProjectImportDTO.java` 导入DTO - [ ] 创建 `CcdiProjectImportDTO.java` 导入DTO
- [ ] 为审计字段添加 `@TableField` 注解配置自动填充 - [ ] 为审计字段添加 `@TableField` 注解配置自动填充
**验证**实体类和DTO编译通过字段注解正确 **验证**实体类和DTO编译通过字段注解正确
### 1.4 创建DTO转换工具类 ### 1.4 创建DTO转换工具类
- [ ] 创建 `DpcProjectConverter.java` 工具类 - [ ] 创建 `CcdiProjectConverter.java` 工具类
- [ ] 实现 `toEntity(DpcProjectDTO)` 方法 - [ ] 实现 `toEntity(CcdiProjectDTO)` 方法
- [ ] 实现 `toVO(DpcProject)` 方法 - [ ] 实现 `toVO(CcdiProject)` 方法
- [ ] 实现 `toVOList(List<DpcProject>)` 方法 - [ ] 实现 `toVOList(List<CcdiProject>)` 方法
**验证**:转换逻辑正确,覆盖所有字段 **验证**:转换逻辑正确,覆盖所有字段
### 1.5 配置审计字段自动填充 ### 1.5 配置审计字段自动填充
- [ ] 创建 `DpcMetaObjectHandler.java` 实现 `MetaObjectHandler` 接口 - [ ] 创建 `CcdiMetaObjectHandler.java` 实现 `MetaObjectHandler` 接口
- [ ] 实现 `insertFill` 方法自动填充 `create_by``create_time` - [ ] 实现 `insertFill` 方法自动填充 `create_by``create_time`
- [ ] 实现 `updateFill` 方法自动填充 `update_by``update_time` - [ ] 实现 `updateFill` 方法自动填充 `update_by``update_time`
- [ ] 从 Spring Security 上下文获取当前登录用户 - [ ] 从 Spring Security 上下文获取当前登录用户
@@ -54,12 +54,12 @@
## 阶段2数据访问层开发 ## 阶段2数据访问层开发
### 2.1 创建Mapper接口 ### 2.1 创建Mapper接口
- [ ] 创建 `DpcProjectMapper.java`(使用 MyBatis Plus - [ ] 创建 `CcdiProjectMapper.java`(使用 MyBatis Plus
- [ ] 创建 `DpcProjectPersonMapper.java`(使用 MyBatis Plus - [ ] 创建 `CcdiProjectPersonMapper.java`(使用 MyBatis Plus
### 2.2 创建Mapper XML ### 2.2 创建Mapper XML
- [ ] 创建 `DpcProjectMapper.xml` - [ ] 创建 `CcdiProjectMapper.xml`
- [ ] 创建 `DpcProjectPersonMapper.xml` - [ ] 创建 `CcdiProjectPersonMapper.xml`
- [ ] 定义基础CRUD SQLMyBatis Plus 自动生成) - [ ] 定义基础CRUD SQLMyBatis Plus 自动生成)
- [ ] 定义关联查询SQL项目+人员) - [ ] 定义关联查询SQL项目+人员)
@@ -68,19 +68,19 @@
## 阶段3服务层开发 ## 阶段3服务层开发
### 3.1 创建Service接口 ### 3.1 创建Service接口
- [ ] 创建 `IDpcProjectService.java` - [ ] 创建 `ICcdiProjectService.java`
- [ ] 定义方法签名: - [ ] 定义方法签名:
- `List<DpcProject> selectProjectList(DpcProject project)` - `List<CcdiProject> selectProjectList(CcdiProject project)`
- `DpcProject selectProjectById(Long projectId)` - `CcdiProject selectProjectById(Long projectId)`
- `int insertProject(DpcProject project)` - `int insertProject(CcdiProject project)`
- `int updateProject(DpcProject project)` - `int updateProject(CcdiProject project)`
- `int deleteProjectByIds(Long[] projectIds)` - `int deleteProjectByIds(Long[] projectIds)`
- `boolean checkProjectNameUnique(DpcProject project)` - `boolean checkProjectNameUnique(CcdiProject project)`
- `void archiveProject(Long projectId)` - `void archiveProject(Long projectId)`
- `void reanalyzeProject(Long projectId)` - `void reanalyzeProject(Long projectId)`
### 3.2 实现Service ### 3.2 实现Service
- [ ] 创建 `DpcProjectServiceImpl.java` - [ ] 创建 `CcdiProjectServiceImpl.java`
- [ ] 使用 `@Resource` 注入依赖 - [ ] 使用 `@Resource` 注入依赖
- [ ] 实现基础CRUD方法 - [ ] 实现基础CRUD方法
- [ ] 实现项目名称唯一性校验 - [ ] 实现项目名称唯一性校验
@@ -92,7 +92,7 @@
## 阶段4控制器层开发 ## 阶段4控制器层开发
### 4.1 创建Controller ### 4.1 创建Controller
- [ ] 创建 `DpcProjectController.java`(位于 `ruoyi-dpc` 模块的 `com.ruoyi.dpc.controller` 包中) - [ ] 创建 `CcdiProjectController.java`(位于 `ruoyi-dpc` 模块的 `com.ruoyi.dpc.controller` 包中)
- [ ] 实现列表查询接口 `GET /dpc/project/list` - [ ] 实现列表查询接口 `GET /dpc/project/list`
- [ ] 实现详情查询接口 `GET /dpc/project/{id}` - [ ] 实现详情查询接口 `GET /dpc/project/{id}`
- [ ] 实现新增接口 `POST /dpc/project` - [ ] 实现新增接口 `POST /dpc/project`

View File

@@ -2,7 +2,7 @@
## 数据库设计 ## 数据库设计
### 表扩展:dpc_intermediary_blacklist ### 表扩展:ccdi_intermediary_blacklist
在现有表基础上添加以下字段: 在现有表基础上添加以下字段:
@@ -10,47 +10,47 @@
-- ============================================================ -- ============================================================
-- 个人类型字段 (以 indiv_ 前缀标识individual 缩写) -- 个人类型字段 (以 indiv_ 前缀标识individual 缩写)
-- ============================================================ -- ============================================================
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_type` VARCHAR(30) DEFAULT NULL COMMENT '人员类型(中介、职业背债人、房产中介等)'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_type` VARCHAR(30) DEFAULT NULL COMMENT '人员类型(中介、职业背债人、房产中介等)';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_sub_type` VARCHAR(50) DEFAULT NULL COMMENT '人员子类型(本人、配偶等)'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_sub_type` VARCHAR(50) DEFAULT NULL COMMENT '人员子类型(本人、配偶等)';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_gender` CHAR(1) DEFAULT NULL COMMENT '性别M男 F女 O其他'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_gender` CHAR(1) DEFAULT NULL COMMENT '性别M男 F女 O其他';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_cert_type` VARCHAR(30) DEFAULT '身份证' COMMENT '证件类型'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_cert_type` VARCHAR(30) DEFAULT '身份证' COMMENT '证件类型';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号码(加密存储)'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号码(加密存储)';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_wechat` VARCHAR(50) DEFAULT NULL COMMENT '微信号'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_wechat` VARCHAR(50) DEFAULT NULL COMMENT '微信号';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_address` VARCHAR(200) DEFAULT NULL COMMENT '联系地址'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_address` VARCHAR(200) DEFAULT NULL COMMENT '联系地址';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_company` VARCHAR(100) DEFAULT NULL COMMENT '所在公司'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_company` VARCHAR(100) DEFAULT NULL COMMENT '所在公司';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_position` VARCHAR(100) DEFAULT NULL COMMENT '职位/职务'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_position` VARCHAR(100) DEFAULT NULL COMMENT '职位/职务';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_related_id` VARCHAR(20) DEFAULT NULL COMMENT '关联人员ID'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_related_id` VARCHAR(20) DEFAULT NULL COMMENT '关联人员ID';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `indiv_relation` VARCHAR(50) DEFAULT NULL COMMENT '关联关系'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `indiv_relation` VARCHAR(50) DEFAULT NULL COMMENT '关联关系';
-- ============================================================ -- ============================================================
-- 机构类型字段 (以 corp_ 前缀标识corporation 缩写) -- 机构类型字段 (以 corp_ 前缀标识corporation 缩写)
-- ============================================================ -- ============================================================
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_credit_code` VARCHAR(18) DEFAULT NULL COMMENT '统一社会信用代码'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_credit_code` VARCHAR(18) DEFAULT NULL COMMENT '统一社会信用代码';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_type` VARCHAR(50) DEFAULT NULL COMMENT '主体类型(有限责任公司、股份有限公司等)'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_type` VARCHAR(50) DEFAULT NULL COMMENT '主体类型(有限责任公司、股份有限公司等)';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_nature` VARCHAR(50) DEFAULT NULL COMMENT '企业性质(国企、民企、外企等)'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_nature` VARCHAR(50) DEFAULT NULL COMMENT '企业性质(国企、民企、外企等)';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_industry_category` VARCHAR(100) DEFAULT NULL COMMENT '行业分类'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_industry_category` VARCHAR(100) DEFAULT NULL COMMENT '行业分类';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_industry` VARCHAR(100) DEFAULT NULL COMMENT '所属行业'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_industry` VARCHAR(100) DEFAULT NULL COMMENT '所属行业';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_establish_date` DATE DEFAULT NULL COMMENT '成立日期'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_establish_date` DATE DEFAULT NULL COMMENT '成立日期';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_address` VARCHAR(500) DEFAULT NULL COMMENT '注册地址'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_address` VARCHAR(500) DEFAULT NULL COMMENT '注册地址';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_legal_rep` VARCHAR(50) DEFAULT NULL COMMENT '法定代表人'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_rep` VARCHAR(50) DEFAULT NULL COMMENT '法定代表人';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_legal_cert_type` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件类型'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_cert_type` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件类型';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_legal_cert_no` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件号码'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_legal_cert_no` VARCHAR(30) DEFAULT NULL COMMENT '法定代表人证件号码';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_shareholder_1` VARCHAR(30) DEFAULT NULL COMMENT '股东1'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_1` VARCHAR(30) DEFAULT NULL COMMENT '股东1';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_shareholder_2` VARCHAR(30) DEFAULT NULL COMMENT '股东2'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_2` VARCHAR(30) DEFAULT NULL COMMENT '股东2';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_shareholder_3` VARCHAR(30) DEFAULT NULL COMMENT '股东3'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_3` VARCHAR(30) DEFAULT NULL COMMENT '股东3';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_shareholder_4` VARCHAR(30) DEFAULT NULL COMMENT '股东4'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_4` VARCHAR(30) DEFAULT NULL COMMENT '股东4';
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `corp_shareholder_5` VARCHAR(30) DEFAULT NULL COMMENT '股东5'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `corp_shareholder_5` VARCHAR(30) DEFAULT NULL COMMENT '股东5';
-- ============================================================ -- ============================================================
-- 通用字段 -- 通用字段
-- ============================================================ -- ============================================================
ALTER TABLE dpc_intermediary_blacklist ADD COLUMN `data_source` VARCHAR(30) DEFAULT 'MANUAL' COMMENT '数据来源MANUAL手动录入 SYSTEM系统同步 IMPORT批量导入 API接口获取'; ALTER TABLE ccdi_intermediary_blacklist ADD COLUMN `data_source` VARCHAR(30) DEFAULT 'MANUAL' COMMENT '数据来源MANUAL手动录入 SYSTEM系统同步 IMPORT批量导入 API接口获取';
``` ```
### 完整表结构 ### 完整表结构
```sql ```sql
CREATE TABLE `dpc_intermediary_blacklist` ( CREATE TABLE `ccdi_intermediary_blacklist` (
`intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID', `intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID',
-- ============================================================ -- ============================================================
@@ -163,31 +163,31 @@ CREATE TABLE `dpc_intermediary_blacklist` (
ruoyi-dpc/ ruoyi-dpc/
├── src/main/java/com/ruoyi/dpc/ ├── src/main/java/com/ruoyi/dpc/
│ ├── controller/ │ ├── controller/
│ │ └── DpcIntermediaryBlacklistController.java (修改) │ │ └── CcdiIntermediaryBlacklistController.java (修改)
│ ├── domain/ │ ├── domain/
│ │ ├── DpcIntermediaryBlacklist.java (修改 - 添加新字段) │ │ ├── CcdiIntermediaryBlacklist.java (修改 - 添加新字段)
│ │ ├── dto/ │ │ ├── dto/
│ │ │ ├── DpcIntermediaryBlacklistAddDTO.java (保留 - 兼容) │ │ │ ├── CcdiIntermediaryBlacklistAddDTO.java (保留 - 兼容)
│ │ │ ├── DpcIntermediaryBlacklistEditDTO.java (保留 - 兼容) │ │ │ ├── CcdiIntermediaryBlacklistEditDTO.java (保留 - 兼容)
│ │ │ ├── DpcIntermediaryBlacklistQueryDTO.java (保留) │ │ │ ├── CcdiIntermediaryBlacklistQueryDTO.java (保留)
│ │ │ ├── DpcIntermediaryPersonAddDTO.java (新增) │ │ │ ├── CcdiIntermediaryPersonAddDTO.java (新增)
│ │ │ └── DpcIntermediaryEntityAddDTO.java (新增) │ │ │ └── CcdiIntermediaryEntityAddDTO.java (新增)
│ │ ├── vo/ │ │ ├── vo/
│ │ │ ├── DpcIntermediaryBlacklistVO.java (保留 - 列表用) │ │ │ ├── CcdiIntermediaryBlacklistVO.java (保留 - 列表用)
│ │ │ ├── DpcIntermediaryPersonDetailVO.java (新增) │ │ │ ├── CcdiIntermediaryPersonDetailVO.java (新增)
│ │ │ └── DpcIntermediaryEntityDetailVO.java (新增) │ │ │ └── CcdiIntermediaryEntityDetailVO.java (新增)
│ │ └── excel/ │ │ └── excel/
│ │ ├── DpcIntermediaryBlacklistExcel.java (保留 - 通用模板) │ │ ├── CcdiIntermediaryBlacklistExcel.java (保留 - 通用模板)
│ │ ├── DpcIntermediaryPersonExcel.java (新增) │ │ ├── CcdiIntermediaryPersonExcel.java (新增)
│ │ └── DpcIntermediaryEntityExcel.java (新增) │ │ └── CcdiIntermediaryEntityExcel.java (新增)
│ ├── mapper/ │ ├── mapper/
│ │ └── DpcIntermediaryBlacklistMapper.java │ │ └── CcdiIntermediaryBlacklistMapper.java
│ └── service/ │ └── service/
│ ├── IDpcIntermediaryBlacklistService.java (修改接口) │ ├── ICcdiIntermediaryBlacklistService.java (修改接口)
│ └── impl/ │ └── impl/
│ └── DpcIntermediaryBlacklistServiceImpl.java (修改实现) │ └── CcdiIntermediaryBlacklistServiceImpl.java (修改实现)
└── src/main/resources/mapper/dpc/ └── src/main/resources/mapper/dpc/
└── DpcIntermediaryBlacklistMapper.xml └── CcdiIntermediaryBlacklistMapper.xml
``` ```
### Controller 层设计 ### Controller 层设计
@@ -197,7 +197,7 @@ ruoyi-dpc/
```java ```java
@RestController @RestController
@RequestMapping("/dpc/intermediary") @RequestMapping("/dpc/intermediary")
public class DpcIntermediaryBlacklistController extends BaseController { public class CcdiIntermediaryBlacklistController extends BaseController {
// ... 现有接口保持不变 ... // ... 现有接口保持不变 ...
@@ -209,7 +209,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
public void importPersonTemplate(HttpServletResponse response) { public void importPersonTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown( EasyExcelUtil.importTemplateWithDictDropdown(
response, response,
DpcIntermediaryPersonExcel.class, CcdiIntermediaryPersonExcel.class,
"个人中介黑名单" "个人中介黑名单"
); );
} }
@@ -222,7 +222,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
public void importEntityTemplate(HttpServletResponse response) { public void importEntityTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown( EasyExcelUtil.importTemplateWithDictDropdown(
response, response,
DpcIntermediaryEntityExcel.class, CcdiIntermediaryEntityExcel.class,
"机构中介黑名单" "机构中介黑名单"
); );
} }
@@ -235,8 +235,8 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT) @Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importPersonData") @PostMapping("/importPersonData")
public AjaxResult importPersonData(MultipartFile file, boolean updateSupport) throws Exception { public AjaxResult importPersonData(MultipartFile file, boolean updateSupport) throws Exception {
List<DpcIntermediaryPersonExcel> list = EasyExcelUtil.importExcel( List<CcdiIntermediaryPersonExcel> list = EasyExcelUtil.importExcel(
file.getInputStream(), DpcIntermediaryPersonExcel.class); file.getInputStream(), CcdiIntermediaryPersonExcel.class);
String message = intermediaryService.importPersonIntermediary(list, updateSupport); String message = intermediaryService.importPersonIntermediary(list, updateSupport);
return success(message); return success(message);
} }
@@ -249,8 +249,8 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT) @Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importEntityData") @PostMapping("/importEntityData")
public AjaxResult importEntityData(MultipartFile file, boolean updateSupport) throws Exception { public AjaxResult importEntityData(MultipartFile file, boolean updateSupport) throws Exception {
List<DpcIntermediaryEntityExcel> list = EasyExcelUtil.importExcel( List<CcdiIntermediaryEntityExcel> list = EasyExcelUtil.importExcel(
file.getInputStream(), DpcIntermediaryEntityExcel.class); file.getInputStream(), CcdiIntermediaryEntityExcel.class);
String message = intermediaryService.importEntityIntermediary(list, updateSupport); String message = intermediaryService.importEntityIntermediary(list, updateSupport);
return success(message); return success(message);
} }
@@ -262,7 +262,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
**接口扩展:** **接口扩展:**
```java ```java
public interface IDpcIntermediaryBlacklistService { public interface ICcdiIntermediaryBlacklistService {
// ... 现有方法保持不变 ... // ... 现有方法保持不变 ...
@@ -274,12 +274,12 @@ public interface IDpcIntermediaryBlacklistService {
/** /**
* 导入个人中介数据 * 导入个人中介数据
*/ */
String importPersonIntermediary(List<DpcIntermediaryPersonExcel> list, boolean isUpdateSupport); String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> list, boolean isUpdateSupport);
/** /**
* 导入机构中介数据 * 导入机构中介数据
*/ */
String importEntityIntermediary(List<DpcIntermediaryEntityExcel> list, boolean isUpdateSupport); String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> list, boolean isUpdateSupport);
} }
``` ```
@@ -293,7 +293,7 @@ public interface IDpcIntermediaryBlacklistService {
```java ```java
@Data @Data
public class DpcIntermediaryPersonExcel implements Serializable { public class CcdiIntermediaryPersonExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -312,12 +312,12 @@ public class DpcIntermediaryPersonExcel implements Serializable {
@ExcelProperty(value = "性别", index = 3) @ExcelProperty(value = "性别", index = 3)
@ColumnWidth(10) @ColumnWidth(10)
@DictDropdown(dictType = "dpc_indiv_gender") @DictDropdown(dictType = "ccdi_indiv_gender")
private String indivGender; // 对应 indiv_gender字典下拉框男/女/其他 private String indivGender; // 对应 indiv_gender字典下拉框男/女/其他
@ExcelProperty(value = "证件类型", index = 4) @ExcelProperty(value = "证件类型", index = 4)
@ColumnWidth(15) @ColumnWidth(15)
@DictDropdown(dictType = "dpc_certificate_type") @DictDropdown(dictType = "ccdi_certificate_type")
private String indivCertType; // 对应 indiv_cert_type字典下拉框身份证/护照/港澳通行证/台胞证/军官证 private String indivCertType; // 对应 indiv_cert_type字典下拉框身份证/护照/港澳通行证/台胞证/军官证
@ExcelProperty(value = "证件号码", index = 5) @ExcelProperty(value = "证件号码", index = 5)
@@ -366,7 +366,7 @@ public class DpcIntermediaryPersonExcel implements Serializable {
```java ```java
@Data @Data
public class DpcIntermediaryEntityExcel implements Serializable { public class CcdiIntermediaryEntityExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -381,12 +381,12 @@ public class DpcIntermediaryEntityExcel implements Serializable {
@ExcelProperty(value = "主体类型", index = 2) @ExcelProperty(value = "主体类型", index = 2)
@ColumnWidth(20) @ColumnWidth(20)
@DictDropdown(dictType = "dpc_entity_type") @DictDropdown(dictType = "ccdi_entity_type")
private String corpType; // 对应 corp_type字典下拉框有限责任公司/股份有限公司/合伙企业/个体工商户/外资企业 private String corpType; // 对应 corp_type字典下拉框有限责任公司/股份有限公司/合伙企业/个体工商户/外资企业
@ExcelProperty(value = "企业性质", index = 3) @ExcelProperty(value = "企业性质", index = 3)
@ColumnWidth(15) @ColumnWidth(15)
@DictDropdown(dictType = "dpc_enterprise_nature") @DictDropdown(dictType = "ccdi_enterprise_nature")
private String corpNature; // 对应 corp_nature字典下拉框国企/民企/外企/合资/其他 private String corpNature; // 对应 corp_nature字典下拉框国企/民企/外企/合资/其他
@ExcelProperty(value = "行业分类", index = 4) @ExcelProperty(value = "行业分类", index = 4)
@@ -453,7 +453,7 @@ public class DpcIntermediaryEntityExcel implements Serializable {
```java ```java
@Data @Data
public class DpcIntermediaryPersonDetailVO implements Serializable { public class CcdiIntermediaryPersonDetailVO implements Serializable {
// 核心字段 // 核心字段
private Long intermediaryId; private Long intermediaryId;
@@ -492,7 +492,7 @@ public class DpcIntermediaryPersonDetailVO implements Serializable {
```java ```java
@Data @Data
public class DpcIntermediaryEntityDetailVO implements Serializable { public class CcdiIntermediaryEntityDetailVO implements Serializable {
// 核心字段 // 核心字段
private Long intermediaryId; private Long intermediaryId;
@@ -541,14 +541,14 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 列名 | 下拉框选项 | 说明 | | 列名 | 下拉框选项 | 说明 |
|------|-----------|------| |------|-----------|------|
| 性别 | 男, 女, 其他 | 对应值M, F, O | | 性别 | 男, 女, 其他 | 对应值M, F, O |
| 证件类型 | 身份证, 护照, 港澳通行证, 台胞证, 军官证 | 从字典 dpc_certificate_type 加载 | | 证件类型 | 身份证, 护照, 港澳通行证, 台胞证, 军官证 | 从字典 ccdi_certificate_type 加载 |
#### 机构中介模板下拉框 #### 机构中介模板下拉框
| 列名 | 下拉框选项 | 说明 | | 列名 | 下拉框选项 | 说明 |
|------|-----------|------| |------|-----------|------|
| 主体类型 | 有限责任公司, 股份有限公司, 合伙企业, 个体工商户, 外资企业 | 从字典 dpc_entity_type 加载 | | 主体类型 | 有限责任公司, 股份有限公司, 合伙企业, 个体工商户, 外资企业 | 从字典 ccdi_entity_type 加载 |
| 企业性质 | 国企, 民企, 外企, 合资, 其他 | 从字典 dpc_enterprise_nature 加载 | | 企业性质 | 国企, 民企, 外企, 合资, 其他 | 从字典 ccdi_enterprise_nature 加载 |
**注意** **注意**
- **状态字段**:不在 Excel 模板中显示,导入时默认设置为"正常"0 - **状态字段**:不在 Excel 模板中显示,导入时默认设置为"正常"0
@@ -610,7 +610,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
## 字典数据设计 ## 字典数据设计
### 人员类型(dpc_person_type ### 人员类型(ccdi_person_type
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -618,7 +618,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 职业背债人 | 职业背债人 | 2 | 正常 | | 职业背债人 | 职业背债人 | 2 | 正常 |
| 房产中介 | 房产中介 | 3 | 正常 | | 房产中介 | 房产中介 | 3 | 正常 |
### 人员子类型(dpc_person_sub_type ### 人员子类型(ccdi_person_sub_type
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -627,7 +627,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 子女 | 子女 | 3 | 正常 | | 子女 | 子女 | 3 | 正常 |
| 其他 | 其他 | 9 | 正常 | | 其他 | 其他 | 9 | 正常 |
### 证件类型(dpc_certificate_type ### 证件类型(ccdi_certificate_type
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -637,7 +637,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 台胞证 | 台胞证 | 4 | 正常 | | 台胞证 | 台胞证 | 4 | 正常 |
| 军官证 | 军官证 | 5 | 正常 | | 军官证 | 军官证 | 5 | 正常 |
### 主体类型(dpc_entity_type ### 主体类型(ccdi_entity_type
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -647,7 +647,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 个体工商户 | 个体工商户 | 4 | 正常 | | 个体工商户 | 个体工商户 | 4 | 正常 |
| 外资企业 | 外资企业 | 5 | 正常 | | 外资企业 | 外资企业 | 5 | 正常 |
### 企业性质(dpc_enterprise_nature ### 企业性质(ccdi_enterprise_nature
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -657,7 +657,7 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
| 合资 | 合资 | 4 | 正常 | | 合资 | 合资 | 4 | 正常 |
| 其他 | 其他 | 9 | 正常 | | 其他 | 其他 | 9 | 正常 |
### 数据来源(dpc_data_source ### 数据来源(ccdi_data_source
| 字典值 | 字典标签 | 排序 | 状态 | | 字典值 | 字典标签 | 排序 | 状态 |
|-------|---------|-----|------| |-------|---------|-----|------|
@@ -685,14 +685,14 @@ public class DpcIntermediaryEntityDetailVO implements Serializable {
// 生成个人中介模板(带字典下拉框) // 生成个人中介模板(带字典下拉框)
EasyExcelUtil.importTemplateWithDictDropdown( EasyExcelUtil.importTemplateWithDictDropdown(
response, response,
DpcIntermediaryPersonExcel.class, CcdiIntermediaryPersonExcel.class,
"个人中介黑名单" "个人中介黑名单"
); );
// 生成机构中介模板(带字典下拉框) // 生成机构中介模板(带字典下拉框)
EasyExcelUtil.importTemplateWithDictDropdown( EasyExcelUtil.importTemplateWithDictDropdown(
response, response,
DpcIntermediaryEntityExcel.class, CcdiIntermediaryEntityExcel.class,
"机构中介黑名单" "机构中介黑名单"
); );
``` ```

View File

@@ -94,11 +94,11 @@
## Impact ## Impact
### 后端影响 ### 后端影响
- **数据库**:扩展 `dpc_intermediary_blacklist`添加约30个新字段 - **数据库**:扩展 `ccdi_intermediary_blacklist`添加约30个新字段
- **实体类**`DpcIntermediaryBlacklist` 添加新字段属性 - **实体类**`CcdiIntermediaryBlacklist` 添加新字段属性
- **DTO**:创建 `DpcIntermediaryPersonAddDTO``DpcIntermediaryEntityAddDTO` - **DTO**:创建 `CcdiIntermediaryPersonAddDTO``CcdiIntermediaryEntityAddDTO`
- **VO**:创建 `DpcIntermediaryPersonDetailVO``DpcIntermediaryEntityDetailVO` - **VO**:创建 `CcdiIntermediaryPersonDetailVO``CcdiIntermediaryEntityDetailVO`
- **Excel**:创建 `DpcIntermediaryPersonExcel``DpcIntermediaryEntityExcel` - **Excel**:创建 `CcdiIntermediaryPersonExcel``CcdiIntermediaryEntityExcel`
- **Controller**:添加两个模板下载接口,修改详情接口 - **Controller**:添加两个模板下载接口,修改详情接口
- **Service**:扩展导入逻辑,支持不同类型的模板 - **Service**:扩展导入逻辑,支持不同类型的模板
@@ -110,7 +110,7 @@
- 扩展现有表,添加新字段(默认允许 NULL保持向后兼容 - 扩展现有表,添加新字段(默认允许 NULL保持向后兼容
## Dependencies ## Dependencies
- 依赖现有 `dpc_intermediary_blacklist` 表和基础功能 - 依赖现有 `ccdi_intermediary_blacklist` 表和基础功能
- 依赖 EasyExcel 进行 Excel 导入导出 - 依赖 EasyExcel 进行 Excel 导入导出
## Related Changes ## Related Changes

View File

@@ -97,8 +97,8 @@
**Given** 用户调用详情接口只提供中介ID **Given** 用户调用详情接口只提供中介ID
**When** 系统查询到该中介记录 **When** 系统查询到该中介记录
**Then** 系统应根据中介类型自动返回对应类型的 VO **Then** 系统应根据中介类型自动返回对应类型的 VO
**And** 个人类型返回 DpcIntermediaryPersonDetailVO **And** 个人类型返回 CcdiIntermediaryPersonDetailVO
**And** 机构类型返回 DpcIntermediaryEntityDetailVO **And** 机构类型返回 CcdiIntermediaryEntityDetailVO
### Requirement: 保持现有功能兼容性 ### Requirement: 保持现有功能兼容性
所有新增功能必须保持现有接口和功能的正常运行。 所有新增功能必须保持现有接口和功能的正常运行。
@@ -170,7 +170,7 @@
- `excel-import-export` (Excel 导入导出基础功能) - `excel-import-export` (Excel 导入导出基础功能)
### Dependencies ### Dependencies
- 依赖现有 `dpc_intermediary_blacklist` 表结构 - 依赖现有 `ccdi_intermediary_blacklist` 表结构
- 依赖 EasyExcel 工具类 - 依赖 EasyExcel 工具类
- 依赖现有权限控制体系 - 依赖现有权限控制体系

View File

@@ -13,7 +13,7 @@
- [ ] 编写 ALTER TABLE 语句添加机构类型字段15个字段 - [ ] 编写 ALTER TABLE 语句添加机构类型字段15个字段
- [ ] 编写 ALTER TABLE 语句添加通用字段1个字段data_source - [ ] 编写 ALTER TABLE 语句添加通用字段1个字段data_source
- [ ] 添加必要的索引idx_credit_code, idx_phone_number - [ ] 添加必要的索引idx_credit_code, idx_phone_number
- [ ] 将 SQL 脚本保存到 `sql/` 目录,命名格式:`dpc_intermediary_enhance_YYYYMMDD.sql` - [ ] 将 SQL 脚本保存到 `sql/` 目录,命名格式:`ccdi_intermediary_enhance_YYYYMMDD.sql`
**验证方式**SQL 语法检查,确保所有字段正确添加 **验证方式**SQL 语法检查,确保所有字段正确添加
@@ -27,7 +27,7 @@
- [ ] 确认所有字段添加成功且类型正确 - [ ] 确认所有字段添加成功且类型正确
- [ ] 确认索引创建成功 - [ ] 确认索引创建成功
**验证方式**DESCRIBE dpc_intermediary_blacklist; SHOW INDEX FROM dpc_intermediary_blacklist; **验证方式**DESCRIBE ccdi_intermediary_blacklist; SHOW INDEX FROM ccdi_intermediary_blacklist;
**依赖**:任务 1.1 **依赖**:任务 1.1
@@ -35,7 +35,7 @@
### 阶段二:后端实体类和 DTO/VO 更新 ### 阶段二:后端实体类和 DTO/VO 更新
#### 任务 2.1:更新实体类 DpcIntermediaryBlacklist #### 任务 2.1:更新实体类 CcdiIntermediaryBlacklist
- [ ] 添加个人类型字段属性11个 - [ ] 添加个人类型字段属性11个
- [ ] 添加机构类型字段属性15个 - [ ] 添加机构类型字段属性15个
- [ ] 添加通用字段属性1个dataSource - [ ] 添加通用字段属性1个dataSource
@@ -49,7 +49,7 @@
--- ---
#### 任务 2.2:创建个人中介 DTO #### 任务 2.2:创建个人中介 DTO
- [ ] 创建 `DpcIntermediaryPersonAddDTO.java` - [ ] 创建 `CcdiIntermediaryPersonAddDTO.java`
- [ ] 添加个人专属字段 - [ ] 添加个人专属字段
- [ ] 添加适当的验证注解(@NotBlank, @Size 等) - [ ] 添加适当的验证注解(@NotBlank, @Size 等)
- [ ] 实现 Serializable 接口 - [ ] 实现 Serializable 接口
@@ -61,7 +61,7 @@
--- ---
#### 任务 2.3:创建机构中介 DTO #### 任务 2.3:创建机构中介 DTO
- [ ] 创建 `DpcIntermediaryEntityAddDTO.java` - [ ] 创建 `CcdiIntermediaryEntityAddDTO.java`
- [ ] 添加机构专属字段 - [ ] 添加机构专属字段
- [ ] 添加适当的验证注解 - [ ] 添加适当的验证注解
- [ ] 实现 Serializable 接口 - [ ] 实现 Serializable 接口
@@ -73,7 +73,7 @@
--- ---
#### 任务 2.4:创建个人详情 VO #### 任务 2.4:创建个人详情 VO
- [ ] 创建 `DpcIntermediaryPersonDetailVO.java` - [ ] 创建 `CcdiIntermediaryPersonDetailVO.java`
- [ ] 包含核心字段 + 个人专属字段 - [ ] 包含核心字段 + 个人专属字段
- [ ] 添加关联字段名称(如 genderName, certificateTypeName - [ ] 添加关联字段名称(如 genderName, certificateTypeName
- [ ] 添加审计字段 - [ ] 添加审计字段
@@ -86,7 +86,7 @@
--- ---
#### 任务 2.5:创建机构详情 VO #### 任务 2.5:创建机构详情 VO
- [ ] 创建 `DpcIntermediaryEntityDetailVO.java` - [ ] 创建 `CcdiIntermediaryEntityDetailVO.java`
- [ ] 包含核心字段 + 机构专属字段 - [ ] 包含核心字段 + 机构专属字段
- [ ] 添加关联字段名称 - [ ] 添加关联字段名称
- [ ] 添加审计字段 - [ ] 添加审计字段
@@ -101,14 +101,14 @@
### 阶段三Excel 类创建 ### 阶段三Excel 类创建
#### 任务 3.1:创建个人中介 Excel 类 #### 任务 3.1:创建个人中介 Excel 类
- [ ] 创建 `DpcIntermediaryPersonExcel.java` - [ ] 创建 `CcdiIntermediaryPersonExcel.java`
- [ ] 使用 @ExcelProperty 注解定义 Excel 列 - [ ] 使用 @ExcelProperty 注解定义 Excel 列
- [ ] 使用 @ColumnWidth 注解设置列宽 - [ ] 使用 @ColumnWidth 注解设置列宽
- [ ] 字段顺序:姓名 -> 人员类型 -> ... -> 备注共14列 - [ ] 字段顺序:姓名 -> 人员类型 -> ... -> 备注共14列
- [ ] **不在模板中显示**:状态、数据来源字段(由系统自动设置) - [ ] **不在模板中显示**:状态、数据来源字段(由系统自动设置)
- [ ] **添加字典下拉框注解** - [ ] **添加字典下拉框注解**
- `@DictDropdown(dictType = "dpc_indiv_gender")` - 性别字段 - `@DictDropdown(dictType = "ccdi_indiv_gender")` - 性别字段
- `@DictDropdown(dictType = "dpc_certificate_type")` - 证件类型字段 - `@DictDropdown(dictType = "ccdi_certificate_type")` - 证件类型字段
**验证方式**编译通过Excel 注解正确 **验证方式**编译通过Excel 注解正确
@@ -117,14 +117,14 @@
--- ---
#### 任务 3.2:创建机构中介 Excel 类 #### 任务 3.2:创建机构中介 Excel 类
- [ ] 创建 `DpcIntermediaryEntityExcel.java` - [ ] 创建 `CcdiIntermediaryEntityExcel.java`
- [ ] 使用 @ExcelProperty 注解定义 Excel 列 - [ ] 使用 @ExcelProperty 注解定义 Excel 列
- [ ] 使用 @ColumnWidth 注解设置列宽 - [ ] 使用 @ColumnWidth 注解设置列宽
- [ ] 字段顺序:机构名称 -> 统一社会信用代码 -> ... -> 备注共17列 - [ ] 字段顺序:机构名称 -> 统一社会信用代码 -> ... -> 备注共17列
- [ ] **不在模板中显示**:状态、数据来源字段(由系统自动设置) - [ ] **不在模板中显示**:状态、数据来源字段(由系统自动设置)
- [ ] **添加字典下拉框注解** - [ ] **添加字典下拉框注解**
- `@DictDropdown(dictType = "dpc_entity_type")` - 主体类型字段 - `@DictDropdown(dictType = "ccdi_entity_type")` - 主体类型字段
- `@DictDropdown(dictType = "dpc_enterprise_nature")` - 企业性质字段 - `@DictDropdown(dictType = "ccdi_enterprise_nature")` - 企业性质字段
**验证方式**编译通过Excel 注解正确 **验证方式**编译通过Excel 注解正确
@@ -135,10 +135,10 @@
### 阶段四Service 层实现 ### 阶段四Service 层实现
#### 任务 4.1:扩展 Service 接口 #### 任务 4.1:扩展 Service 接口
- [ ]`IDpcIntermediaryBlacklistService` 中添加新方法: - [ ]`ICcdiIntermediaryBlacklistService` 中添加新方法:
- `Object selectIntermediaryDetailById(Long intermediaryId)` - `Object selectIntermediaryDetailById(Long intermediaryId)`
- `String importPersonIntermediary(List<DpcIntermediaryPersonExcel> list, boolean isUpdateSupport)` - `String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> list, boolean isUpdateSupport)`
- `String importEntityIntermediary(List<DpcIntermediaryEntityExcel> list, boolean isUpdateSupport)` - `String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> list, boolean isUpdateSupport)`
**验证方式**:编译通过,接口方法签名正确 **验证方式**:编译通过,接口方法签名正确
@@ -147,10 +147,10 @@
--- ---
#### 任务 4.2:实现详情查询方法 #### 任务 4.2:实现详情查询方法
- [ ]`DpcIntermediaryBlacklistServiceImpl` 中实现 `selectIntermediaryDetailById` - [ ]`CcdiIntermediaryBlacklistServiceImpl` 中实现 `selectIntermediaryDetailById`
- [ ] 根据中介类型返回不同的 VO - [ ] 根据中介类型返回不同的 VO
- [ ] 个人类型返回 `DpcIntermediaryPersonDetailVO` - [ ] 个人类型返回 `CcdiIntermediaryPersonDetailVO`
- [ ] 机构类型返回 `DpcIntermediaryEntityDetailVO` - [ ] 机构类型返回 `CcdiIntermediaryEntityDetailVO`
- [ ] 填充关联字段名称(字典转换) - [ ] 填充关联字段名称(字典转换)
**验证方式**:单元测试验证不同类型返回正确的 VO **验证方式**:单元测试验证不同类型返回正确的 VO
@@ -234,13 +234,13 @@
### 阶段六:字典数据配置 ### 阶段六:字典数据配置
#### 任务 6.1:创建字典数据 SQL 脚本 #### 任务 6.1:创建字典数据 SQL 脚本
- [ ] 添加人员类型字典(dpc_person_type - [ ] 添加人员类型字典(ccdi_person_type
- [ ] 添加人员子类型字典(dpc_person_sub_type - [ ] 添加人员子类型字典(ccdi_person_sub_type
- [ ] **添加性别字典(dpc_indiv_gender** - 用于个人中介下拉框 - [ ] **添加性别字典(ccdi_indiv_gender** - 用于个人中介下拉框
- [ ] **添加证件类型字典(dpc_certificate_type** - 用于个人中介下拉框 - [ ] **添加证件类型字典(ccdi_certificate_type** - 用于个人中介下拉框
- [ ] **添加主体类型字典(dpc_entity_type** - 用于机构中介下拉框 - [ ] **添加主体类型字典(ccdi_entity_type** - 用于机构中介下拉框
- [ ] **添加企业性质字典(dpc_enterprise_nature** - 用于机构中介下拉框 - [ ] **添加企业性质字典(ccdi_enterprise_nature** - 用于机构中介下拉框
- [ ] 添加数据来源字典(dpc_data_source - [ ] 添加数据来源字典(ccdi_data_source
- [ ] 将 SQL 脚本保存到 `sql/` 目录 - [ ] 将 SQL 脚本保存到 `sql/` 目录
**验证方式**SQL 语法检查 **验证方式**SQL 语法检查

View File

@@ -204,7 +204,7 @@
<!-- 纪检初核系统模块--> <!-- 纪检初核系统模块-->
<dependency> <dependency>
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-dpc</artifactId> <artifactId>ruoyi-ccdi</artifactId>
<version>${ruoyi.version}</version> <version>${ruoyi.version}</version>
</dependency> </dependency>
@@ -218,7 +218,7 @@
<module>ruoyi-quartz</module> <module>ruoyi-quartz</module>
<module>ruoyi-generator</module> <module>ruoyi-generator</module>
<module>ruoyi-common</module> <module>ruoyi-common</module>
<module>ruoyi-dpc</module> <module>ruoyi-ccdi</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>

View File

@@ -57,7 +57,7 @@
<!-- 纪检初核系统模块--> <!-- 纪检初核系统模块-->
<dependency> <dependency>
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-dpc</artifactId> <artifactId>ruoyi-ccdi</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -9,7 +9,7 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-dpc</artifactId> <artifactId>ruoyi-ccdi</artifactId>
<description> <description>
纪检初核系统模块 纪检初核系统模块
@@ -41,4 +41,22 @@
</dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View File

@@ -1,6 +1,13 @@
package com.ruoyi.dpc.controller; package com.ruoyi.ccdi.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiEmployeeExcel;
import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO;
import com.ruoyi.ccdi.service.ICcdiEmployeeService;
import com.ruoyi.ccdi.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -8,13 +15,6 @@ import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.dpc.domain.dto.DpcEmployeeAddDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeEditDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO;
import com.ruoyi.dpc.domain.excel.DpcEmployeeExcel;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO;
import com.ruoyi.dpc.service.IDpcEmployeeService;
import com.ruoyi.dpc.utils.EasyExcelUtil;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@@ -34,23 +34,23 @@ import java.util.List;
*/ */
@Tag(name = "员工信息管理") @Tag(name = "员工信息管理")
@RestController @RestController
@RequestMapping("/dpc/employee") @RequestMapping("/ccdi/employee")
public class DpcEmployeeController extends BaseController { public class CcdiEmployeeController extends BaseController {
@Resource @Resource
private IDpcEmployeeService employeeService; private ICcdiEmployeeService employeeService;
/** /**
* 查询员工列表 * 查询员工列表
*/ */
@Operation(summary = "查询员工列表") @Operation(summary = "查询员工列表")
@PreAuthorize("@ss.hasPermi('dpc:employee:list')") @PreAuthorize("@ss.hasPermi('ccdi:employee:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(DpcEmployeeQueryDTO queryDTO) { public TableDataInfo list(CcdiEmployeeQueryDTO queryDTO) {
// 使用MyBatis Plus分页 // 使用MyBatis Plus分页
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Page<DpcEmployeeVO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); Page<CcdiEmployeeVO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<DpcEmployeeVO> result = employeeService.selectEmployeePage(page, queryDTO); Page<CcdiEmployeeVO> result = employeeService.selectEmployeePage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal()); return getDataTable(result.getRecords(), result.getTotal());
} }
@@ -58,19 +58,19 @@ public class DpcEmployeeController extends BaseController {
* 导出员工列表 * 导出员工列表
*/ */
@Operation(summary = "导出员工列表") @Operation(summary = "导出员工列表")
@PreAuthorize("@ss.hasPermi('dpc:employee:export')") @PreAuthorize("@ss.hasPermi('ccdi:employee:export')")
@Log(title = "员工信息", businessType = BusinessType.EXPORT) @Log(title = "员工信息", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, DpcEmployeeQueryDTO queryDTO) { public void export(HttpServletResponse response, CcdiEmployeeQueryDTO queryDTO) {
List<DpcEmployeeExcel> list = employeeService.selectEmployeeListForExport(queryDTO); List<CcdiEmployeeExcel> list = employeeService.selectEmployeeListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, DpcEmployeeExcel.class, "员工信息"); EasyExcelUtil.exportExcel(response, list, CcdiEmployeeExcel.class, "员工信息");
} }
/** /**
* 获取员工详细信息 * 获取员工详细信息
*/ */
@Operation(summary = "获取员工详细信息") @Operation(summary = "获取员工详细信息")
@PreAuthorize("@ss.hasPermi('dpc:employee:query')") @PreAuthorize("@ss.hasPermi('ccdi:employee:query')")
@GetMapping(value = "/{employeeId}") @GetMapping(value = "/{employeeId}")
public AjaxResult getInfo(@PathVariable Long employeeId) { public AjaxResult getInfo(@PathVariable Long employeeId) {
return success(employeeService.selectEmployeeById(employeeId)); return success(employeeService.selectEmployeeById(employeeId));
@@ -80,10 +80,10 @@ public class DpcEmployeeController extends BaseController {
* 新增员工 * 新增员工
*/ */
@Operation(summary = "新增员工") @Operation(summary = "新增员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:add')") @PreAuthorize("@ss.hasPermi('ccdi:employee:add')")
@Log(title = "员工信息", businessType = BusinessType.INSERT) @Log(title = "员工信息", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody DpcEmployeeAddDTO addDTO) { public AjaxResult add(@Validated @RequestBody CcdiEmployeeAddDTO addDTO) {
return toAjax(employeeService.insertEmployee(addDTO)); return toAjax(employeeService.insertEmployee(addDTO));
} }
@@ -91,10 +91,10 @@ public class DpcEmployeeController extends BaseController {
* 修改员工 * 修改员工
*/ */
@Operation(summary = "修改员工") @Operation(summary = "修改员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:edit')") @PreAuthorize("@ss.hasPermi('ccdi:employee:edit')")
@Log(title = "员工信息", businessType = BusinessType.UPDATE) @Log(title = "员工信息", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody DpcEmployeeEditDTO editDTO) { public AjaxResult edit(@Validated @RequestBody CcdiEmployeeEditDTO editDTO) {
return toAjax(employeeService.updateEmployee(editDTO)); return toAjax(employeeService.updateEmployee(editDTO));
} }
@@ -102,7 +102,7 @@ public class DpcEmployeeController extends BaseController {
* 删除员工 * 删除员工
*/ */
@Operation(summary = "删除员工") @Operation(summary = "删除员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:remove')") @PreAuthorize("@ss.hasPermi('ccdi:employee:remove')")
@Log(title = "员工信息", businessType = BusinessType.DELETE) @Log(title = "员工信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{employeeIds}") @DeleteMapping("/{employeeIds}")
public AjaxResult remove(@PathVariable Long[] employeeIds) { public AjaxResult remove(@PathVariable Long[] employeeIds) {
@@ -116,18 +116,18 @@ public class DpcEmployeeController extends BaseController {
@Operation(summary = "下载导入模板") @Operation(summary = "下载导入模板")
@PostMapping("/importTemplate") @PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) { public void importTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(response, DpcEmployeeExcel.class, "员工信息"); EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiEmployeeExcel.class, "员工信息");
} }
/** /**
* 导入员工信息 * 导入员工信息
*/ */
@Operation(summary = "导入员工信息") @Operation(summary = "导入员工信息")
@PreAuthorize("@ss.hasPermi('dpc:employee:import')") @PreAuthorize("@ss.hasPermi('ccdi:employee:import')")
@Log(title = "员工信息", businessType = BusinessType.IMPORT) @Log(title = "员工信息", businessType = BusinessType.IMPORT)
@PostMapping("/importData") @PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
List<DpcEmployeeExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), DpcEmployeeExcel.class); List<CcdiEmployeeExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), CcdiEmployeeExcel.class);
String message = employeeService.importEmployee(list, updateSupport); String message = employeeService.importEmployee(list, updateSupport);
return success(message); return success(message);
} }

View File

@@ -1,8 +1,8 @@
package com.ruoyi.dpc.controller; package com.ruoyi.ccdi.controller;
import com.ruoyi.ccdi.domain.vo.EnumOptionVO;
import com.ruoyi.ccdi.enums.*;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dpc.domain.vo.EnumOptionVO;
import com.ruoyi.dpc.enums.*;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -19,8 +19,8 @@ import java.util.List;
*/ */
@Tag(name = "DPC枚举接口", description = "中介黑名单相关枚举选项接口") @Tag(name = "DPC枚举接口", description = "中介黑名单相关枚举选项接口")
@RestController @RestController
@RequestMapping("/dpc/enum") @RequestMapping("/ccdi/enum")
public class DpcEnumController { public class CcdiEnumController {
/** /**
* 获取人员类型选项 * 获取人员类型选项

View File

@@ -1,6 +1,14 @@
package com.ruoyi.dpc.controller; package com.ruoyi.ccdi.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.CcdiIntermediaryBlacklist;
import com.ruoyi.ccdi.domain.dto.*;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryBlacklistExcel;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel;
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryBlacklistVO;
import com.ruoyi.ccdi.service.ICcdiIntermediaryBlacklistService;
import com.ruoyi.ccdi.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -8,14 +16,6 @@ import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.dpc.domain.DpcIntermediaryBlacklist;
import com.ruoyi.dpc.domain.dto.*;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryBlacklistExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryEntityExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryPersonExcel;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryBlacklistVO;
import com.ruoyi.dpc.service.IDpcIntermediaryBlacklistService;
import com.ruoyi.dpc.utils.EasyExcelUtil;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@@ -35,23 +35,23 @@ import java.util.List;
*/ */
@Tag(name = "中介黑名单管理") @Tag(name = "中介黑名单管理")
@RestController @RestController
@RequestMapping("/dpc/intermediary") @RequestMapping("/ccdi/intermediary")
public class DpcIntermediaryBlacklistController extends BaseController { public class CcdiIntermediaryBlacklistController extends BaseController {
@Resource @Resource
private IDpcIntermediaryBlacklistService intermediaryService; private ICcdiIntermediaryBlacklistService intermediaryService;
/** /**
* 查询中介黑名单列表 * 查询中介黑名单列表
*/ */
@Operation(summary = "查询中介黑名单列表") @Operation(summary = "查询中介黑名单列表")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:list')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(DpcIntermediaryBlacklistQueryDTO queryDTO) { public TableDataInfo list(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
// 使用MyBatis Plus分页 // 使用MyBatis Plus分页
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Page<DpcIntermediaryBlacklist> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); Page<CcdiIntermediaryBlacklist> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<DpcIntermediaryBlacklistVO> result = intermediaryService.selectIntermediaryPage(page, queryDTO); Page<CcdiIntermediaryBlacklistVO> result = intermediaryService.selectIntermediaryPage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal()); return getDataTable(result.getRecords(), result.getTotal());
} }
@@ -59,19 +59,19 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 导出中介黑名单列表 * 导出中介黑名单列表
*/ */
@Operation(summary = "导出中介黑名单列表") @Operation(summary = "导出中介黑名单列表")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:export')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:export')")
@Log(title = "中介黑名单", businessType = BusinessType.EXPORT) @Log(title = "中介黑名单", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, DpcIntermediaryBlacklistQueryDTO queryDTO) { public void export(HttpServletResponse response, CcdiIntermediaryBlacklistQueryDTO queryDTO) {
List<DpcIntermediaryBlacklistExcel> list = intermediaryService.selectIntermediaryListForExport(queryDTO); List<CcdiIntermediaryBlacklistExcel> list = intermediaryService.selectIntermediaryListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, DpcIntermediaryBlacklistExcel.class, "中介黑名单"); EasyExcelUtil.exportExcel(response, list, CcdiIntermediaryBlacklistExcel.class, "中介黑名单");
} }
/** /**
* 获取中介黑名单详细信息根据类型返回不同结构 * 获取中介黑名单详细信息根据类型返回不同结构
*/ */
@Operation(summary = "获取中介黑名单详细信息") @Operation(summary = "获取中介黑名单详细信息")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:query')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:query')")
@GetMapping(value = "/{intermediaryId}") @GetMapping(value = "/{intermediaryId}")
public AjaxResult getInfo(@PathVariable Long intermediaryId) { public AjaxResult getInfo(@PathVariable Long intermediaryId) {
return success(intermediaryService.selectIntermediaryDetailById(intermediaryId)); return success(intermediaryService.selectIntermediaryDetailById(intermediaryId));
@@ -81,11 +81,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增中介黑名单已废弃请使用类型专用接口 * 新增中介黑名单已废弃请使用类型专用接口
*/ */
@Operation(summary = "新增中介黑名单(已废弃,请使用类型专用接口)") @Operation(summary = "新增中介黑名单(已废弃,请使用类型专用接口)")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "中介黑名单", businessType = BusinessType.INSERT) @Log(title = "中介黑名单", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
@Deprecated @Deprecated
public AjaxResult add(@Validated @RequestBody DpcIntermediaryBlacklistAddDTO addDTO) { public AjaxResult add(@Validated @RequestBody CcdiIntermediaryBlacklistAddDTO addDTO) {
return toAjax(intermediaryService.insertIntermediary(addDTO)); return toAjax(intermediaryService.insertIntermediary(addDTO));
} }
@@ -93,10 +93,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增个人中介黑名单 * 新增个人中介黑名单
*/ */
@Operation(summary = "新增个人中介黑名单") @Operation(summary = "新增个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "个人中介黑名单", businessType = BusinessType.INSERT) @Log(title = "个人中介黑名单", businessType = BusinessType.INSERT)
@PostMapping("/person") @PostMapping("/person")
public AjaxResult addPerson(@Validated @RequestBody DpcIntermediaryPersonAddDTO addDTO) { public AjaxResult addPerson(@Validated @RequestBody CcdiIntermediaryPersonAddDTO addDTO) {
return toAjax(intermediaryService.insertPersonIntermediary(addDTO)); return toAjax(intermediaryService.insertPersonIntermediary(addDTO));
} }
@@ -104,10 +104,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增机构中介黑名单 * 新增机构中介黑名单
*/ */
@Operation(summary = "新增机构中介黑名单") @Operation(summary = "新增机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "机构中介黑名单", businessType = BusinessType.INSERT) @Log(title = "机构中介黑名单", businessType = BusinessType.INSERT)
@PostMapping("/entity") @PostMapping("/entity")
public AjaxResult addEntity(@Validated @RequestBody DpcIntermediaryEntityAddDTO addDTO) { public AjaxResult addEntity(@Validated @RequestBody CcdiIntermediaryEntityAddDTO addDTO) {
return toAjax(intermediaryService.insertEntityIntermediary(addDTO)); return toAjax(intermediaryService.insertEntityIntermediary(addDTO));
} }
@@ -115,11 +115,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改中介黑名单 * 修改中介黑名单
*/ */
@Operation(summary = "修改中介黑名单(已废弃,请使用类型专用接口)") @Operation(summary = "修改中介黑名单(已废弃,请使用类型专用接口)")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "中介黑名单", businessType = BusinessType.UPDATE) @Log(title = "中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
@Deprecated @Deprecated
public AjaxResult edit(@Validated @RequestBody DpcIntermediaryBlacklistEditDTO editDTO) { public AjaxResult edit(@Validated @RequestBody CcdiIntermediaryBlacklistEditDTO editDTO) {
return toAjax(intermediaryService.updateIntermediary(editDTO)); return toAjax(intermediaryService.updateIntermediary(editDTO));
} }
@@ -127,10 +127,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改个人中介黑名单 * 修改个人中介黑名单
*/ */
@Operation(summary = "修改个人中介黑名单") @Operation(summary = "修改个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "个人中介黑名单", businessType = BusinessType.UPDATE) @Log(title = "个人中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping("/person") @PutMapping("/person")
public AjaxResult editPerson(@Validated @RequestBody DpcIntermediaryPersonEditDTO editDTO) { public AjaxResult editPerson(@Validated @RequestBody CcdiIntermediaryPersonEditDTO editDTO) {
return toAjax(intermediaryService.updatePersonIntermediary(editDTO)); return toAjax(intermediaryService.updatePersonIntermediary(editDTO));
} }
@@ -138,10 +138,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改机构中介黑名单 * 修改机构中介黑名单
*/ */
@Operation(summary = "修改机构中介黑名单") @Operation(summary = "修改机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "机构中介黑名单", businessType = BusinessType.UPDATE) @Log(title = "机构中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping("/entity") @PutMapping("/entity")
public AjaxResult editEntity(@Validated @RequestBody DpcIntermediaryEntityEditDTO editDTO) { public AjaxResult editEntity(@Validated @RequestBody CcdiIntermediaryEntityEditDTO editDTO) {
return toAjax(intermediaryService.updateEntityIntermediary(editDTO)); return toAjax(intermediaryService.updateEntityIntermediary(editDTO));
} }
@@ -149,7 +149,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 删除中介黑名单 * 删除中介黑名单
*/ */
@Operation(summary = "删除中介黑名单") @Operation(summary = "删除中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:remove')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:remove')")
@Log(title = "中介黑名单", businessType = BusinessType.DELETE) @Log(title = "中介黑名单", businessType = BusinessType.DELETE)
@DeleteMapping("/{intermediaryIds}") @DeleteMapping("/{intermediaryIds}")
public AjaxResult remove(@PathVariable Long[] intermediaryIds) { public AjaxResult remove(@PathVariable Long[] intermediaryIds) {
@@ -162,7 +162,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@Operation(summary = "下载个人中介导入模板") @Operation(summary = "下载个人中介导入模板")
@PostMapping("/importPersonTemplate") @PostMapping("/importPersonTemplate")
public void importPersonTemplate(HttpServletResponse response) { public void importPersonTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(response, DpcIntermediaryPersonExcel.class, "个人中介黑名单"); EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiIntermediaryPersonExcel.class, "个人中介黑名单");
} }
/** /**
@@ -171,18 +171,18 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@Operation(summary = "下载机构中介导入模板") @Operation(summary = "下载机构中介导入模板")
@PostMapping("/importEntityTemplate") @PostMapping("/importEntityTemplate")
public void importEntityTemplate(HttpServletResponse response) { public void importEntityTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(response, DpcIntermediaryEntityExcel.class, "机构中介黑名单"); EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiIntermediaryEntityExcel.class, "机构中介黑名单");
} }
/** /**
* 导入个人中介黑名单 * 导入个人中介黑名单
*/ */
@Operation(summary = "导入个人中介黑名单") @Operation(summary = "导入个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')")
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT) @Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importPersonData") @PostMapping("/importPersonData")
public AjaxResult importPersonData(@RequestParam("file") MultipartFile file, @RequestParam(value = "updateSupport", defaultValue = "false") boolean updateSupport) throws Exception { public AjaxResult importPersonData(@RequestParam("file") MultipartFile file, @RequestParam(value = "updateSupport", defaultValue = "false") boolean updateSupport) throws Exception {
List<DpcIntermediaryPersonExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), DpcIntermediaryPersonExcel.class); List<CcdiIntermediaryPersonExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), CcdiIntermediaryPersonExcel.class);
String message = intermediaryService.importPersonIntermediary(list, updateSupport); String message = intermediaryService.importPersonIntermediary(list, updateSupport);
return success(message); return success(message);
} }
@@ -191,11 +191,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 导入机构中介黑名单 * 导入机构中介黑名单
*/ */
@Operation(summary = "导入机构中介黑名单") @Operation(summary = "导入机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')") @PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')")
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT) @Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importEntityData") @PostMapping("/importEntityData")
public AjaxResult importEntityData(@RequestParam("file") MultipartFile file, @RequestParam(value = "updateSupport", defaultValue = "false") boolean updateSupport) throws Exception { public AjaxResult importEntityData(@RequestParam("file") MultipartFile file, @RequestParam(value = "updateSupport", defaultValue = "false") boolean updateSupport) throws Exception {
List<DpcIntermediaryEntityExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), DpcIntermediaryEntityExcel.class); List<CcdiIntermediaryEntityExcel> list = EasyExcelUtil.importExcel(file.getInputStream(), CcdiIntermediaryEntityExcel.class);
String message = intermediaryService.importEntityIntermediary(list, updateSupport); String message = intermediaryService.importEntityIntermediary(list, updateSupport);
return success(message); return success(message);
} }

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain; package com.ruoyi.ccdi.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployee implements Serializable { public class CcdiEmployee implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain; package com.ruoyi.ccdi.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeRelative implements Serializable { public class CcdiEmployeeRelative implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain; package com.ruoyi.ccdi.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-27 * @date 2026-01-27
*/ */
@Data @Data
public class DpcIntermediaryBlacklist implements Serializable { public class CcdiIntermediaryBlacklist implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
@@ -17,7 +17,7 @@ import java.util.List;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeAddDTO implements Serializable { public class CcdiEmployeeAddDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -52,5 +52,5 @@ public class DpcEmployeeAddDTO implements Serializable {
private String status; private String status;
/** 亲属列表 */ /** 亲属列表 */
private List<DpcEmployeeRelativeAddDTO> relatives; private List<CcdiEmployeeRelativeAddDTO> relatives;
} }

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
@@ -17,7 +17,7 @@ import java.util.List;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeEditDTO implements Serializable { public class CcdiEmployeeEditDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -52,5 +52,5 @@ public class DpcEmployeeEditDTO implements Serializable {
private String status; private String status;
/** 亲属列表 */ /** 亲属列表 */
private List<DpcEmployeeRelativeAddDTO> relatives; private List<CcdiEmployeeRelativeAddDTO> relatives;
} }

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import lombok.Data; import lombok.Data;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeQueryDTO implements Serializable { public class CcdiEmployeeQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeRelativeAddDTO implements Serializable { public class CcdiEmployeeRelativeAddDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public class DpcIntermediaryBlacklistAddDTO implements Serializable { public class CcdiIntermediaryBlacklistAddDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -14,7 +14,7 @@ import java.util.Date;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public class DpcIntermediaryBlacklistEditDTO implements Serializable { public class CcdiIntermediaryBlacklistEditDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@@ -9,7 +9,7 @@ import java.io.Serializable;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public class DpcIntermediaryBlacklistQueryDTO implements Serializable { public class CcdiIntermediaryBlacklistQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@@ -15,7 +15,7 @@ import java.util.Date;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryEntityAddDTO implements Serializable { public class CcdiIntermediaryEntityAddDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -16,7 +16,7 @@ import java.util.Date;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryEntityEditDTO implements Serializable { public class CcdiIntermediaryEntityEditDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@@ -14,7 +14,7 @@ import java.io.Serializable;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryPersonAddDTO implements Serializable { public class CcdiIntermediaryPersonAddDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.dto; package com.ruoyi.ccdi.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryPersonEditDTO implements Serializable { public class CcdiIntermediaryPersonEditDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.excel; package com.ruoyi.ccdi.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
@@ -16,7 +16,7 @@ import java.util.Date;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeExcel implements Serializable { public class CcdiEmployeeExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.excel; package com.ruoyi.ccdi.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
@@ -14,7 +14,7 @@ import java.io.Serializable;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeRelativeExcel implements Serializable { public class CcdiEmployeeRelativeExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,9 +1,9 @@
package com.ruoyi.dpc.domain.excel; package com.ruoyi.ccdi.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.ruoyi.dpc.utils.converter.IntermediaryStatusConverter; import com.ruoyi.ccdi.utils.converter.IntermediaryStatusConverter;
import com.ruoyi.dpc.utils.converter.IntermediaryTypeConverter; import com.ruoyi.ccdi.utils.converter.IntermediaryTypeConverter;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -16,7 +16,7 @@ import java.io.Serializable;
* @date 2026-01-27 * @date 2026-01-27
*/ */
@Data @Data
public class DpcIntermediaryBlacklistExcel implements Serializable { public class CcdiIntermediaryBlacklistExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.excel; package com.ruoyi.ccdi.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryEntityExcel implements Serializable { public class CcdiIntermediaryEntityExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.excel; package com.ruoyi.ccdi.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryPersonExcel implements Serializable { public class CcdiIntermediaryPersonExcel implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import lombok.Data; import lombok.Data;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeRelativeVO implements Serializable { public class CcdiEmployeeRelativeVO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import lombok.Data; import lombok.Data;
@@ -14,7 +14,7 @@ import java.util.List;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Data @Data
public class DpcEmployeeVO implements Serializable { public class CcdiEmployeeVO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -62,5 +62,5 @@ public class DpcEmployeeVO implements Serializable {
private String updateBy; private String updateBy;
/** 亲属列表 */ /** 亲属列表 */
private List<DpcEmployeeRelativeVO> relatives; private List<CcdiEmployeeRelativeVO> relatives;
} }

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-27 * @date 2026-01-27
*/ */
@Data @Data
public class DpcIntermediaryBlacklistVO implements Serializable { public class CcdiIntermediaryBlacklistVO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryEntityDetailVO implements Serializable { public class CcdiIntermediaryEntityDetailVO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-29 * @date 2026-01-29
*/ */
@Data @Data
public class DpcIntermediaryPersonDetailVO implements Serializable { public class CcdiIntermediaryPersonDetailVO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.domain.vo; package com.ruoyi.ccdi.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 证件类型枚举 * 证件类型枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum CertType { public enum CertType {
/** 身份证 */ /** 身份证 */
@@ -27,6 +23,19 @@ public enum CertType {
private final String code; private final String code;
private final String desc; private final String desc;
CertType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 企业性质枚举 * 企业性质枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum CorpNature { public enum CorpNature {
/** 国有企业 */ /** 国有企业 */
@@ -39,6 +35,19 @@ public enum CorpNature {
private final String code; private final String code;
private final String desc; private final String desc;
CorpNature(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 主体类型枚举 * 主体类型枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum CorpType { public enum CorpType {
/** 有限责任公司 */ /** 有限责任公司 */
@@ -42,6 +38,19 @@ public enum CorpType {
private final String code; private final String code;
private final String desc; private final String desc;
CorpType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,10 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 数据来源枚举 * 数据来源枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum DataSource { public enum DataSource {
/** 手动录入 */ /** 手动录入 */
@@ -27,6 +22,19 @@ public enum DataSource {
private final String code; private final String code;
private final String desc; private final String desc;
DataSource(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 员工状态枚举 * 员工状态枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum EmployeeStatus { public enum EmployeeStatus {
/** 在职 */ /** 在职 */
@@ -21,6 +17,19 @@ public enum EmployeeStatus {
private final String code; private final String code;
private final String desc; private final String desc;
EmployeeStatus(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 性别枚举 * 性别枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum Gender { public enum Gender {
/** 男 */ /** 男 */
@@ -24,6 +20,19 @@ public enum Gender {
private final String code; private final String code;
private final String desc; private final String desc;
Gender(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 人员子类型枚举 * 人员子类型枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum IndivSubType { public enum IndivSubType {
/** 本人 */ /** 本人 */
@@ -36,6 +32,19 @@ public enum IndivSubType {
private final String code; private final String code;
private final String desc; private final String desc;
IndivSubType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 人员类型枚举 * 人员类型枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum IndivType { public enum IndivType {
/** 房产中介 */ /** 房产中介 */
@@ -30,6 +26,19 @@ public enum IndivType {
private final String code; private final String code;
private final String desc; private final String desc;
IndivType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 中介状态枚举 * 中介状态枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum IntermediaryStatus { public enum IntermediaryStatus {
/** 正常 */ /** 正常 */
@@ -21,6 +17,19 @@ public enum IntermediaryStatus {
private final String code; private final String code;
private final String desc; private final String desc;
IntermediaryStatus(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 中介类型枚举 * 中介类型枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum IntermediaryType { public enum IntermediaryType {
/** 个人 */ /** 个人 */
@@ -21,6 +17,19 @@ public enum IntermediaryType {
private final String code; private final String code;
private final String desc; private final String desc;
IntermediaryType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,15 +1,11 @@
package com.ruoyi.dpc.enums; package com.ruoyi.ccdi.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* 关联关系枚举 * 关联关系枚举
* *
* @author ruoyi * @author ruoyi
*/ */
@Getter
@AllArgsConstructor
public enum RelationType { public enum RelationType {
/** 配偶 */ /** 配偶 */
@@ -39,6 +35,19 @@ public enum RelationType {
private final String code; private final String code;
private final String desc; private final String desc;
RelationType(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
/** /**
* 根据编码获取描述 * 根据编码获取描述
*/ */

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.handler; package com.ruoyi.ccdi.handler;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.handler.SheetWriteHandler;

View File

@@ -1,10 +1,10 @@
package com.ruoyi.dpc.mapper; package com.ruoyi.ccdi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.dpc.domain.DpcEmployee; import com.ruoyi.ccdi.domain.CcdiEmployee;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO; import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO; import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi * @author ruoyi
* @date 2026-01-28 * @date 2026-01-28
*/ */
public interface DpcEmployeeMapper extends BaseMapper<DpcEmployee> { public interface CcdiEmployeeMapper extends BaseMapper<CcdiEmployee> {
/** /**
* 分页查询员工列表包含部门名称 * 分页查询员工列表包含部门名称
@@ -22,8 +22,8 @@ public interface DpcEmployeeMapper extends BaseMapper<DpcEmployee> {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 员工VO分页结果 * @return 员工VO分页结果
*/ */
Page<DpcEmployeeVO> selectEmployeePageWithDept(@Param("page") Page<DpcEmployeeVO> page, Page<CcdiEmployeeVO> selectEmployeePageWithDept(@Param("page") Page<CcdiEmployeeVO> page,
@Param("query") DpcEmployeeQueryDTO queryDTO); @Param("query") CcdiEmployeeQueryDTO queryDTO);
/** /**
* 查询员工详情包含亲属列表 * 查询员工详情包含亲属列表
@@ -31,5 +31,5 @@ public interface DpcEmployeeMapper extends BaseMapper<DpcEmployee> {
* @param employeeId 员工ID * @param employeeId 员工ID
* @return 员工VO * @return 员工VO
*/ */
DpcEmployeeVO selectEmployeeWithRelatives(@Param("employeeId") Long employeeId); CcdiEmployeeVO selectEmployeeWithRelatives(@Param("employeeId") Long employeeId);
} }

View File

@@ -0,0 +1,13 @@
package com.ruoyi.ccdi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.ccdi.domain.CcdiEmployeeRelative;
/**
* 员工亲属 数据层
*
* @author ruoyi
* @date 2026-01-28
*/
public interface CcdiEmployeeRelativeMapper extends BaseMapper<CcdiEmployeeRelative> {
}

View File

@@ -1,7 +1,7 @@
package com.ruoyi.dpc.mapper; package com.ruoyi.ccdi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.dpc.domain.DpcIntermediaryBlacklist; import com.ruoyi.ccdi.domain.CcdiIntermediaryBlacklist;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -12,7 +12,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public interface DpcIntermediaryBlacklistMapper extends BaseMapper<DpcIntermediaryBlacklist> { public interface CcdiIntermediaryBlacklistMapper extends BaseMapper<CcdiIntermediaryBlacklist> {
/** /**
* 批量插入中介黑名单数据 * 批量插入中介黑名单数据
@@ -20,7 +20,7 @@ public interface DpcIntermediaryBlacklistMapper extends BaseMapper<DpcIntermedia
* @param list 中介黑名单列表 * @param list 中介黑名单列表
* @return 插入行数 * @return 插入行数
*/ */
int batchInsert(@Param("list") List<DpcIntermediaryBlacklist> list); int batchInsert(@Param("list") List<CcdiIntermediaryBlacklist> list);
/** /**
* 批量更新中介黑名单数据 * 批量更新中介黑名单数据
@@ -28,5 +28,5 @@ public interface DpcIntermediaryBlacklistMapper extends BaseMapper<DpcIntermedia
* @param list 中介黑名单列表 * @param list 中介黑名单列表
* @return 更新行数 * @return 更新行数
*/ */
int batchUpdate(@Param("list") List<DpcIntermediaryBlacklist> list); int batchUpdate(@Param("list") List<CcdiIntermediaryBlacklist> list);
} }

View File

@@ -1,11 +1,11 @@
package com.ruoyi.dpc.service; package com.ruoyi.ccdi.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.dpc.domain.dto.DpcEmployeeAddDTO; import com.ruoyi.ccdi.domain.dto.CcdiEmployeeAddDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeEditDTO; import com.ruoyi.ccdi.domain.dto.CcdiEmployeeEditDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO; import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO;
import com.ruoyi.dpc.domain.excel.DpcEmployeeExcel; import com.ruoyi.ccdi.domain.excel.CcdiEmployeeExcel;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO; import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO;
import java.util.List; import java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2026-01-28 * @date 2026-01-28
*/ */
public interface IDpcEmployeeService { public interface ICcdiEmployeeService {
/** /**
* 查询员工列表 * 查询员工列表
@@ -23,7 +23,7 @@ public interface IDpcEmployeeService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 员工VO集合 * @return 员工VO集合
*/ */
List<DpcEmployeeVO> selectEmployeeList(DpcEmployeeQueryDTO queryDTO); List<CcdiEmployeeVO> selectEmployeeList(CcdiEmployeeQueryDTO queryDTO);
/** /**
* 分页查询员工列表 * 分页查询员工列表
@@ -32,7 +32,7 @@ public interface IDpcEmployeeService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 员工VO分页结果 * @return 员工VO分页结果
*/ */
Page<DpcEmployeeVO> selectEmployeePage(Page<DpcEmployeeVO> page, DpcEmployeeQueryDTO queryDTO); Page<CcdiEmployeeVO> selectEmployeePage(Page<CcdiEmployeeVO> page, CcdiEmployeeQueryDTO queryDTO);
/** /**
* 查询员工列表用于导出 * 查询员工列表用于导出
@@ -40,7 +40,7 @@ public interface IDpcEmployeeService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 员工Excel实体集合 * @return 员工Excel实体集合
*/ */
List<DpcEmployeeExcel> selectEmployeeListForExport(DpcEmployeeQueryDTO queryDTO); List<CcdiEmployeeExcel> selectEmployeeListForExport(CcdiEmployeeQueryDTO queryDTO);
/** /**
* 查询员工详情 * 查询员工详情
@@ -48,7 +48,7 @@ public interface IDpcEmployeeService {
* @param employeeId 员工ID * @param employeeId 员工ID
* @return 员工VO * @return 员工VO
*/ */
DpcEmployeeVO selectEmployeeById(Long employeeId); CcdiEmployeeVO selectEmployeeById(Long employeeId);
/** /**
* 新增员工 * 新增员工
@@ -56,7 +56,7 @@ public interface IDpcEmployeeService {
* @param addDTO 新增DTO * @param addDTO 新增DTO
* @return 结果 * @return 结果
*/ */
int insertEmployee(DpcEmployeeAddDTO addDTO); int insertEmployee(CcdiEmployeeAddDTO addDTO);
/** /**
* 修改员工 * 修改员工
@@ -64,7 +64,7 @@ public interface IDpcEmployeeService {
* @param editDTO 编辑DTO * @param editDTO 编辑DTO
* @return 结果 * @return 结果
*/ */
int updateEmployee(DpcEmployeeEditDTO editDTO); int updateEmployee(CcdiEmployeeEditDTO editDTO);
/** /**
* 批量删除员工 * 批量删除员工
@@ -81,5 +81,5 @@ public interface IDpcEmployeeService {
* @param isUpdateSupport 是否更新支持 * @param isUpdateSupport 是否更新支持
* @return 结果 * @return 结果
*/ */
String importEmployee(List<DpcEmployeeExcel> excelList, Boolean isUpdateSupport); String importEmployee(List<CcdiEmployeeExcel> excelList, Boolean isUpdateSupport);
} }

View File

@@ -1,12 +1,12 @@
package com.ruoyi.dpc.service; package com.ruoyi.ccdi.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.dpc.domain.DpcIntermediaryBlacklist; import com.ruoyi.ccdi.domain.CcdiIntermediaryBlacklist;
import com.ruoyi.dpc.domain.dto.*; import com.ruoyi.ccdi.domain.dto.*;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryBlacklistExcel; import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryBlacklistExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryEntityExcel; import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryPersonExcel; import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryBlacklistVO; import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryBlacklistVO;
import java.util.List; import java.util.List;
@@ -16,7 +16,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public interface IDpcIntermediaryBlacklistService { public interface ICcdiIntermediaryBlacklistService {
/** /**
* 查询中介黑名单列表 * 查询中介黑名单列表
@@ -24,7 +24,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 中介黑名单集合 * @return 中介黑名单集合
*/ */
List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO); List<CcdiIntermediaryBlacklistVO> selectIntermediaryList(CcdiIntermediaryBlacklistQueryDTO queryDTO);
/** /**
* 分页查询中介黑名单列表 * 分页查询中介黑名单列表
@@ -33,7 +33,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 中介黑名单VO分页结果 * @return 中介黑名单VO分页结果
*/ */
Page<DpcIntermediaryBlacklistVO> selectIntermediaryPage(Page<DpcIntermediaryBlacklist> page, DpcIntermediaryBlacklistQueryDTO queryDTO); Page<CcdiIntermediaryBlacklistVO> selectIntermediaryPage(Page<CcdiIntermediaryBlacklist> page, CcdiIntermediaryBlacklistQueryDTO queryDTO);
/** /**
* 查询中介黑名单列表用于导出 * 查询中介黑名单列表用于导出
@@ -41,7 +41,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param queryDTO 查询条件 * @param queryDTO 查询条件
* @return 中介黑名单Excel实体集合 * @return 中介黑名单Excel实体集合
*/ */
List<DpcIntermediaryBlacklistExcel> selectIntermediaryListForExport(DpcIntermediaryBlacklistQueryDTO queryDTO); List<CcdiIntermediaryBlacklistExcel> selectIntermediaryListForExport(CcdiIntermediaryBlacklistQueryDTO queryDTO);
/** /**
* 查询中介黑名单详细 * 查询中介黑名单详细
@@ -49,7 +49,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param intermediaryId 中介ID * @param intermediaryId 中介ID
* @return 中介黑名单VO * @return 中介黑名单VO
*/ */
DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId); CcdiIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId);
/** /**
* 新增中介黑名单通用接口不推荐使用 * 新增中介黑名单通用接口不推荐使用
@@ -59,7 +59,7 @@ public interface IDpcIntermediaryBlacklistService {
* @deprecated 请使用 insertPersonIntermediary insertEntityIntermediary 代替 * @deprecated 请使用 insertPersonIntermediary insertEntityIntermediary 代替
*/ */
@Deprecated @Deprecated
int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO); int insertIntermediary(CcdiIntermediaryBlacklistAddDTO addDTO);
/** /**
* 新增个人中介黑名单 * 新增个人中介黑名单
@@ -67,7 +67,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param addDTO 个人中介新增DTO * @param addDTO 个人中介新增DTO
* @return 结果 * @return 结果
*/ */
int insertPersonIntermediary(DpcIntermediaryPersonAddDTO addDTO); int insertPersonIntermediary(CcdiIntermediaryPersonAddDTO addDTO);
/** /**
* 新增机构中介黑名单 * 新增机构中介黑名单
@@ -75,7 +75,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param addDTO 机构中介新增DTO * @param addDTO 机构中介新增DTO
* @return 结果 * @return 结果
*/ */
int insertEntityIntermediary(DpcIntermediaryEntityAddDTO addDTO); int insertEntityIntermediary(CcdiIntermediaryEntityAddDTO addDTO);
/** /**
* 修改中介黑名单通用接口不推荐使用 * 修改中介黑名单通用接口不推荐使用
@@ -85,7 +85,7 @@ public interface IDpcIntermediaryBlacklistService {
* @deprecated 请使用 updatePersonIntermediary updateEntityIntermediary 代替 * @deprecated 请使用 updatePersonIntermediary updateEntityIntermediary 代替
*/ */
@Deprecated @Deprecated
int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO); int updateIntermediary(CcdiIntermediaryBlacklistEditDTO editDTO);
/** /**
* 修改个人中介黑名单 * 修改个人中介黑名单
@@ -93,7 +93,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param editDTO 个人中介编辑DTO * @param editDTO 个人中介编辑DTO
* @return 结果 * @return 结果
*/ */
int updatePersonIntermediary(DpcIntermediaryPersonEditDTO editDTO); int updatePersonIntermediary(CcdiIntermediaryPersonEditDTO editDTO);
/** /**
* 修改机构中介黑名单 * 修改机构中介黑名单
@@ -101,7 +101,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param editDTO 机构中介编辑DTO * @param editDTO 机构中介编辑DTO
* @return 结果 * @return 结果
*/ */
int updateEntityIntermediary(DpcIntermediaryEntityEditDTO editDTO); int updateEntityIntermediary(CcdiIntermediaryEntityEditDTO editDTO);
/** /**
* 批量删除中介黑名单 * 批量删除中介黑名单
@@ -118,13 +118,13 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持 * @param isUpdateSupport 是否更新支持
* @return 结果 * @return 结果
*/ */
String importIntermediary(List<DpcIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport); String importIntermediary(List<CcdiIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport);
/** /**
* 根据中介类型获取详情返回不同类型 * 根据中介类型获取详情返回不同类型
* *
* @param intermediaryId 中介ID * @param intermediaryId 中介ID
* @return 个人返回 DpcIntermediaryPersonDetailVO机构返回 DpcIntermediaryEntityDetailVO * @return 个人返回 CcdiIntermediaryPersonDetailVO机构返回 CcdiIntermediaryEntityDetailVO
*/ */
Object selectIntermediaryDetailById(Long intermediaryId); Object selectIntermediaryDetailById(Long intermediaryId);
@@ -135,7 +135,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持 * @param isUpdateSupport 是否更新支持
* @return 结果 * @return 结果
*/ */
String importPersonIntermediary(List<DpcIntermediaryPersonExcel> excelList, Boolean isUpdateSupport); String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> excelList, Boolean isUpdateSupport);
/** /**
* 导入机构中介数据 * 导入机构中介数据
@@ -144,5 +144,5 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持 * @param isUpdateSupport 是否更新支持
* @return 结果 * @return 结果
*/ */
String importEntityIntermediary(List<DpcIntermediaryEntityExcel> excelList, Boolean isUpdateSupport); String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> excelList, Boolean isUpdateSupport);
} }

View File

@@ -1,21 +1,21 @@
package com.ruoyi.dpc.service.impl; package com.ruoyi.ccdi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.CcdiEmployee;
import com.ruoyi.ccdi.domain.CcdiEmployeeRelative;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeRelativeAddDTO;
import com.ruoyi.ccdi.domain.excel.CcdiEmployeeExcel;
import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO;
import com.ruoyi.ccdi.enums.EmployeeStatus;
import com.ruoyi.ccdi.mapper.CcdiEmployeeMapper;
import com.ruoyi.ccdi.mapper.CcdiEmployeeRelativeMapper;
import com.ruoyi.ccdi.service.ICcdiEmployeeService;
import com.ruoyi.common.utils.IdCardUtil; import com.ruoyi.common.utils.IdCardUtil;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.dpc.domain.DpcEmployee;
import com.ruoyi.dpc.domain.DpcEmployeeRelative;
import com.ruoyi.dpc.domain.dto.DpcEmployeeAddDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeEditDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeRelativeAddDTO;
import com.ruoyi.dpc.domain.excel.DpcEmployeeExcel;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO;
import com.ruoyi.dpc.enums.EmployeeStatus;
import com.ruoyi.dpc.mapper.DpcEmployeeMapper;
import com.ruoyi.dpc.mapper.DpcEmployeeRelativeMapper;
import com.ruoyi.dpc.service.IDpcEmployeeService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -31,13 +31,13 @@ import java.util.List;
* @date 2026-01-28 * @date 2026-01-28
*/ */
@Service @Service
public class DpcEmployeeServiceImpl implements IDpcEmployeeService { public class CcdiEmployeeServiceImpl implements ICcdiEmployeeService {
@Resource @Resource
private DpcEmployeeMapper employeeMapper; private CcdiEmployeeMapper employeeMapper;
@Resource @Resource
private DpcEmployeeRelativeMapper relativeMapper; private CcdiEmployeeRelativeMapper relativeMapper;
/** /**
* 查询员工列表 * 查询员工列表
@@ -46,11 +46,11 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO集合 * @return 员工VO集合
*/ */
@Override @Override
public List<DpcEmployeeVO> selectEmployeeList(DpcEmployeeQueryDTO queryDTO) { public List<CcdiEmployeeVO> selectEmployeeList(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = buildQueryWrapper(queryDTO); LambdaQueryWrapper<CcdiEmployee> wrapper = buildQueryWrapper(queryDTO);
List<DpcEmployee> list = employeeMapper.selectList(wrapper); List<CcdiEmployee> list = employeeMapper.selectList(wrapper);
List<DpcEmployeeVO> voList = new ArrayList<>(); List<CcdiEmployeeVO> voList = new ArrayList<>();
for (DpcEmployee employee : list) { for (CcdiEmployee employee : list) {
voList.add(convertToVO(employee)); voList.add(convertToVO(employee));
} }
return voList; return voList;
@@ -64,10 +64,10 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO分页结果 * @return 员工VO分页结果
*/ */
@Override @Override
public Page<DpcEmployeeVO> selectEmployeePage(Page<DpcEmployeeVO> page, DpcEmployeeQueryDTO queryDTO) { public Page<CcdiEmployeeVO> selectEmployeePage(Page<CcdiEmployeeVO> page, CcdiEmployeeQueryDTO queryDTO) {
// 使用关联查询获取部门名称 // 使用关联查询获取部门名称
Page<DpcEmployeeVO> voPage = new Page<>(page.getCurrent(), page.getSize()); Page<CcdiEmployeeVO> voPage = new Page<>(page.getCurrent(), page.getSize());
Page<DpcEmployeeVO> resultPage = employeeMapper.selectEmployeePageWithDept(voPage, queryDTO); Page<CcdiEmployeeVO> resultPage = employeeMapper.selectEmployeePageWithDept(voPage, queryDTO);
// 设置状态描述 // 设置状态描述
resultPage.getRecords().forEach(vo -> resultPage.getRecords().forEach(vo ->
@@ -84,11 +84,11 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工Excel实体集合 * @return 员工Excel实体集合
*/ */
@Override @Override
public List<DpcEmployeeExcel> selectEmployeeListForExport(DpcEmployeeQueryDTO queryDTO) { public List<CcdiEmployeeExcel> selectEmployeeListForExport(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = buildQueryWrapper(queryDTO); LambdaQueryWrapper<CcdiEmployee> wrapper = buildQueryWrapper(queryDTO);
List<DpcEmployee> list = employeeMapper.selectList(wrapper); List<CcdiEmployee> list = employeeMapper.selectList(wrapper);
return list.stream().map(employee -> { return list.stream().map(employee -> {
DpcEmployeeExcel excel = new DpcEmployeeExcel(); CcdiEmployeeExcel excel = new CcdiEmployeeExcel();
BeanUtils.copyProperties(employee, excel); BeanUtils.copyProperties(employee, excel);
return excel; return excel;
}).toList(); }).toList();
@@ -101,7 +101,7 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO * @return 员工VO
*/ */
@Override @Override
public DpcEmployeeVO selectEmployeeById(Long employeeId) { public CcdiEmployeeVO selectEmployeeById(Long employeeId) {
return employeeMapper.selectEmployeeWithRelatives(employeeId); return employeeMapper.selectEmployeeWithRelatives(employeeId);
} }
@@ -113,29 +113,29 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/ */
@Override @Override
@Transactional @Transactional
public int insertEmployee(DpcEmployeeAddDTO addDTO) { public int insertEmployee(CcdiEmployeeAddDTO addDTO) {
// 检查柜员号唯一性 // 检查柜员号唯一性
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, addDTO.getTellerNo()); wrapper.eq(CcdiEmployee::getTellerNo, addDTO.getTellerNo());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在"); throw new RuntimeException("该柜员号已存在");
} }
// 检查身份证号唯一性 // 检查身份证号唯一性
wrapper = new LambdaQueryWrapper<>(); wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, addDTO.getIdCard()); wrapper.eq(CcdiEmployee::getIdCard, addDTO.getIdCard());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在"); throw new RuntimeException("该身份证号已存在");
} }
DpcEmployee employee = new DpcEmployee(); CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(addDTO, employee); BeanUtils.copyProperties(addDTO, employee);
int result = employeeMapper.insert(employee); int result = employeeMapper.insert(employee);
// 插入亲属信息 // 插入亲属信息
if (addDTO.getRelatives() != null && !addDTO.getRelatives().isEmpty()) { if (addDTO.getRelatives() != null && !addDTO.getRelatives().isEmpty()) {
for (DpcEmployeeRelativeAddDTO relativeAddDTO : addDTO.getRelatives()) { for (CcdiEmployeeRelativeAddDTO relativeAddDTO : addDTO.getRelatives()) {
DpcEmployeeRelative relative = new DpcEmployeeRelative(); CcdiEmployeeRelative relative = new CcdiEmployeeRelative();
BeanUtils.copyProperties(relativeAddDTO, relative); BeanUtils.copyProperties(relativeAddDTO, relative);
relative.setEmployeeId(employee.getEmployeeId()); relative.setEmployeeId(employee.getEmployeeId());
relativeMapper.insert(relative); relativeMapper.insert(relative);
@@ -153,12 +153,12 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/ */
@Override @Override
@Transactional @Transactional
public int updateEmployee(DpcEmployeeEditDTO editDTO) { public int updateEmployee(CcdiEmployeeEditDTO editDTO) {
// 检查柜员号唯一性排除自己 // 检查柜员号唯一性排除自己
if (StringUtils.isNotEmpty(editDTO.getTellerNo())) { if (StringUtils.isNotEmpty(editDTO.getTellerNo())) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, editDTO.getTellerNo()) wrapper.eq(CcdiEmployee::getTellerNo, editDTO.getTellerNo())
.ne(DpcEmployee::getEmployeeId, editDTO.getEmployeeId()); .ne(CcdiEmployee::getEmployeeId, editDTO.getEmployeeId());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在"); throw new RuntimeException("该柜员号已存在");
} }
@@ -166,27 +166,27 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
// 检查身份证号唯一性排除自己 // 检查身份证号唯一性排除自己
if (StringUtils.isNotEmpty(editDTO.getIdCard())) { if (StringUtils.isNotEmpty(editDTO.getIdCard())) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, editDTO.getIdCard()) wrapper.eq(CcdiEmployee::getIdCard, editDTO.getIdCard())
.ne(DpcEmployee::getEmployeeId, editDTO.getEmployeeId()); .ne(CcdiEmployee::getEmployeeId, editDTO.getEmployeeId());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在"); throw new RuntimeException("该身份证号已存在");
} }
} }
DpcEmployee employee = new DpcEmployee(); CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(editDTO, employee); BeanUtils.copyProperties(editDTO, employee);
int result = employeeMapper.updateById(employee); int result = employeeMapper.updateById(employee);
// 删除原有亲属信息 // 删除原有亲属信息
LambdaQueryWrapper<DpcEmployeeRelative> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployeeRelative::getEmployeeId, editDTO.getEmployeeId()); wrapper.eq(CcdiEmployeeRelative::getEmployeeId, editDTO.getEmployeeId());
relativeMapper.delete(wrapper); relativeMapper.delete(wrapper);
// 插入新的亲属信息 // 插入新的亲属信息
if (editDTO.getRelatives() != null && !editDTO.getRelatives().isEmpty()) { if (editDTO.getRelatives() != null && !editDTO.getRelatives().isEmpty()) {
for (DpcEmployeeRelativeAddDTO relativeAddDTO : editDTO.getRelatives()) { for (CcdiEmployeeRelativeAddDTO relativeAddDTO : editDTO.getRelatives()) {
DpcEmployeeRelative relative = new DpcEmployeeRelative(); CcdiEmployeeRelative relative = new CcdiEmployeeRelative();
BeanUtils.copyProperties(relativeAddDTO, relative); BeanUtils.copyProperties(relativeAddDTO, relative);
relative.setEmployeeId(editDTO.getEmployeeId()); relative.setEmployeeId(editDTO.getEmployeeId());
relativeMapper.insert(relative); relativeMapper.insert(relative);
@@ -207,8 +207,8 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
public int deleteEmployeeByIds(Long[] employeeIds) { public int deleteEmployeeByIds(Long[] employeeIds) {
// 级联删除亲属信息 // 级联删除亲属信息
for (Long employeeId : employeeIds) { for (Long employeeId : employeeIds) {
LambdaQueryWrapper<DpcEmployeeRelative> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployeeRelative::getEmployeeId, employeeId); wrapper.eq(CcdiEmployeeRelative::getEmployeeId, employeeId);
relativeMapper.delete(wrapper); relativeMapper.delete(wrapper);
} }
return employeeMapper.deleteBatchIds(List.of(employeeIds)); return employeeMapper.deleteBatchIds(List.of(employeeIds));
@@ -223,7 +223,7 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/ */
@Override @Override
@Transactional @Transactional
public String importEmployee(List<DpcEmployeeExcel> excelList, Boolean isUpdateSupport) { public String importEmployee(List<CcdiEmployeeExcel> excelList, Boolean isUpdateSupport) {
if (StringUtils.isNull(excelList) || excelList.isEmpty()) { if (StringUtils.isNull(excelList) || excelList.isEmpty()) {
return "至少需要一条数据"; return "至少需要一条数据";
} }
@@ -233,16 +233,16 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
StringBuilder successMsg = new StringBuilder(); StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder();
for (DpcEmployeeExcel excel : excelList) { for (CcdiEmployeeExcel excel : excelList) {
try { try {
// 转换为AddDTO // 转换为AddDTO
DpcEmployeeAddDTO addDTO = new DpcEmployeeAddDTO(); CcdiEmployeeAddDTO addDTO = new CcdiEmployeeAddDTO();
BeanUtils.copyProperties(excel, addDTO); BeanUtils.copyProperties(excel, addDTO);
// 验证数据 // 验证数据
validateEmployeeData(addDTO, isUpdateSupport); validateEmployeeData(addDTO, isUpdateSupport);
DpcEmployee employee = new DpcEmployee(); CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(addDTO, employee); BeanUtils.copyProperties(addDTO, employee);
employeeMapper.insert(employee); employeeMapper.insert(employee);
@@ -267,21 +267,21 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
/** /**
* 构建查询条件 * 构建查询条件
*/ */
private LambdaQueryWrapper<DpcEmployee> buildQueryWrapper(DpcEmployeeQueryDTO queryDTO) { private LambdaQueryWrapper<CcdiEmployee> buildQueryWrapper(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), DpcEmployee::getName, queryDTO.getName()) wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiEmployee::getName, queryDTO.getName())
.eq(StringUtils.isNotEmpty(queryDTO.getTellerNo()), DpcEmployee::getTellerNo, queryDTO.getTellerNo()) .eq(StringUtils.isNotEmpty(queryDTO.getTellerNo()), CcdiEmployee::getTellerNo, queryDTO.getTellerNo())
.eq(queryDTO.getDeptId() != null, DpcEmployee::getDeptId, queryDTO.getDeptId()) .eq(queryDTO.getDeptId() != null, CcdiEmployee::getDeptId, queryDTO.getDeptId())
.like(StringUtils.isNotEmpty(queryDTO.getIdCard()), DpcEmployee::getIdCard, queryDTO.getIdCard()) .like(StringUtils.isNotEmpty(queryDTO.getIdCard()), CcdiEmployee::getIdCard, queryDTO.getIdCard())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), DpcEmployee::getStatus, queryDTO.getStatus()) .eq(StringUtils.isNotEmpty(queryDTO.getStatus()), CcdiEmployee::getStatus, queryDTO.getStatus())
.orderByDesc(DpcEmployee::getCreateTime); .orderByDesc(CcdiEmployee::getCreateTime);
return wrapper; return wrapper;
} }
/** /**
* 验证员工数据 * 验证员工数据
*/ */
private void validateEmployeeData(DpcEmployeeAddDTO addDTO, Boolean isUpdateSupport) { private void validateEmployeeData(CcdiEmployeeAddDTO addDTO, Boolean isUpdateSupport) {
// 验证必填字段 // 验证必填字段
if (StringUtils.isEmpty(addDTO.getName())) { if (StringUtils.isEmpty(addDTO.getName())) {
throw new RuntimeException("姓名不能为空"); throw new RuntimeException("姓名不能为空");
@@ -303,15 +303,15 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
} }
// 检查柜员号唯一性 // 检查柜员号唯一性
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, addDTO.getTellerNo()); wrapper.eq(CcdiEmployee::getTellerNo, addDTO.getTellerNo());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在"); throw new RuntimeException("该柜员号已存在");
} }
// 检查身份证号唯一性 // 检查身份证号唯一性
wrapper = new LambdaQueryWrapper<>(); wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, addDTO.getIdCard()); wrapper.eq(CcdiEmployee::getIdCard, addDTO.getIdCard());
if (employeeMapper.selectCount(wrapper) > 0) { if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在"); throw new RuntimeException("该身份证号已存在");
} }
@@ -325,12 +325,12 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
/** /**
* 转换为VO对象 * 转换为VO对象
*/ */
private DpcEmployeeVO convertToVO(DpcEmployee employee) { private CcdiEmployeeVO convertToVO(CcdiEmployee employee) {
if (employee == null) { if (employee == null) {
return null; return null;
} }
DpcEmployeeVO vo = new DpcEmployeeVO(); CcdiEmployeeVO vo = new CcdiEmployeeVO();
BeanUtils.copyProperties(employee, vo); BeanUtils.copyProperties(employee, vo);
vo.setStatusDesc(EmployeeStatus.getDescByCode(employee.getStatus())); vo.setStatusDesc(EmployeeStatus.getDescByCode(employee.getStatus()));
return vo; return vo;

View File

@@ -1,22 +1,22 @@
package com.ruoyi.dpc.service.impl; package com.ruoyi.ccdi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.CcdiIntermediaryBlacklist;
import com.ruoyi.ccdi.domain.dto.*;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryBlacklistExcel;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel;
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryBlacklistVO;
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryEntityDetailVO;
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryPersonDetailVO;
import com.ruoyi.ccdi.enums.DataSource;
import com.ruoyi.ccdi.enums.Gender;
import com.ruoyi.ccdi.enums.IntermediaryStatus;
import com.ruoyi.ccdi.enums.IntermediaryType;
import com.ruoyi.ccdi.mapper.CcdiIntermediaryBlacklistMapper;
import com.ruoyi.ccdi.service.ICcdiIntermediaryBlacklistService;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.dpc.domain.DpcIntermediaryBlacklist;
import com.ruoyi.dpc.domain.dto.*;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryBlacklistExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryEntityExcel;
import com.ruoyi.dpc.domain.excel.DpcIntermediaryPersonExcel;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryBlacklistVO;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryEntityDetailVO;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryPersonDetailVO;
import com.ruoyi.dpc.enums.DataSource;
import com.ruoyi.dpc.enums.Gender;
import com.ruoyi.dpc.enums.IntermediaryStatus;
import com.ruoyi.dpc.enums.IntermediaryType;
import com.ruoyi.dpc.mapper.DpcIntermediaryBlacklistMapper;
import com.ruoyi.dpc.service.IDpcIntermediaryBlacklistService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -32,10 +32,10 @@ import java.util.stream.Collectors;
* @date 2026-01-27 * @date 2026-01-27
*/ */
@Service @Service
public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlacklistService { public class CcdiIntermediaryBlacklistServiceImpl implements ICcdiIntermediaryBlacklistService {
@Resource @Resource
private DpcIntermediaryBlacklistMapper intermediaryMapper; private CcdiIntermediaryBlacklistMapper intermediaryMapper;
/** /**
* 查询中介黑名单列表 * 查询中介黑名单列表
@@ -44,9 +44,9 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单集合 * @return 中介黑名单集合
*/ */
@Override @Override
public List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO) { public List<CcdiIntermediaryBlacklistVO> selectIntermediaryList(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<DpcIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper); List<CcdiIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
return list.stream().map(this::convertToVO).collect(Collectors.toList()); return list.stream().map(this::convertToVO).collect(Collectors.toList());
} }
@@ -58,12 +58,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单VO分页结果 * @return 中介黑名单VO分页结果
*/ */
@Override @Override
public Page<DpcIntermediaryBlacklistVO> selectIntermediaryPage(Page<DpcIntermediaryBlacklist> page, DpcIntermediaryBlacklistQueryDTO queryDTO) { public Page<CcdiIntermediaryBlacklistVO> selectIntermediaryPage(Page<CcdiIntermediaryBlacklist> page, CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
Page<DpcIntermediaryBlacklist> resultPage = intermediaryMapper.selectPage(page, wrapper); Page<CcdiIntermediaryBlacklist> resultPage = intermediaryMapper.selectPage(page, wrapper);
// 转换为VO // 转换为VO
Page<DpcIntermediaryBlacklistVO> voPage = new Page<>(resultPage.getCurrent(), resultPage.getSize(), resultPage.getTotal()); Page<CcdiIntermediaryBlacklistVO> voPage = new Page<>(resultPage.getCurrent(), resultPage.getSize(), resultPage.getTotal());
voPage.setRecords(resultPage.getRecords().stream().map(this::convertToVO).collect(Collectors.toList())); voPage.setRecords(resultPage.getRecords().stream().map(this::convertToVO).collect(Collectors.toList()));
voPage.setPages(resultPage.getPages()); voPage.setPages(resultPage.getPages());
@@ -77,11 +77,11 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单Excel实体集合 * @return 中介黑名单Excel实体集合
*/ */
@Override @Override
public List<DpcIntermediaryBlacklistExcel> selectIntermediaryListForExport(DpcIntermediaryBlacklistQueryDTO queryDTO) { public List<CcdiIntermediaryBlacklistExcel> selectIntermediaryListForExport(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<DpcIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper); List<CcdiIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
return list.stream().map(entity -> { return list.stream().map(entity -> {
DpcIntermediaryBlacklistExcel excel = new DpcIntermediaryBlacklistExcel(); CcdiIntermediaryBlacklistExcel excel = new CcdiIntermediaryBlacklistExcel();
BeanUtils.copyProperties(entity, excel); BeanUtils.copyProperties(entity, excel);
return excel; return excel;
}).toList(); }).toList();
@@ -94,8 +94,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单VO * @return 中介黑名单VO
*/ */
@Override @Override
public DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId) { public CcdiIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId) {
DpcIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId); CcdiIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
return convertToVO(intermediary); return convertToVO(intermediary);
} }
@@ -107,8 +107,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
*/ */
@Override @Override
@Deprecated @Deprecated
public int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO) { public int insertIntermediary(CcdiIntermediaryBlacklistAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary); BeanUtils.copyProperties(addDTO, intermediary);
// 手动新增时数据来源设置为 MANUAL // 手动新增时数据来源设置为 MANUAL
intermediary.setDataSource("MANUAL"); intermediary.setDataSource("MANUAL");
@@ -124,8 +124,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertPersonIntermediary(DpcIntermediaryPersonAddDTO addDTO) { public int insertPersonIntermediary(CcdiIntermediaryPersonAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary); BeanUtils.copyProperties(addDTO, intermediary);
// 设置中介类型为个人 // 设置中介类型为个人
intermediary.setIntermediaryType("1"); intermediary.setIntermediaryType("1");
@@ -141,8 +141,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertEntityIntermediary(DpcIntermediaryEntityAddDTO addDTO) { public int insertEntityIntermediary(CcdiIntermediaryEntityAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary); BeanUtils.copyProperties(addDTO, intermediary);
// 设置中介类型为机构 // 设置中介类型为机构
intermediary.setIntermediaryType("2"); intermediary.setIntermediaryType("2");
@@ -161,8 +161,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
*/ */
@Override @Override
@Deprecated @Deprecated
public int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO) { public int updateIntermediary(CcdiIntermediaryBlacklistEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary); BeanUtils.copyProperties(editDTO, intermediary);
return intermediaryMapper.updateById(intermediary); return intermediaryMapper.updateById(intermediary);
} }
@@ -174,8 +174,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updatePersonIntermediary(DpcIntermediaryPersonEditDTO editDTO) { public int updatePersonIntermediary(CcdiIntermediaryPersonEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary); BeanUtils.copyProperties(editDTO, intermediary);
// 设置中介类型为个人 // 设置中介类型为个人
intermediary.setIntermediaryType("1"); intermediary.setIntermediaryType("1");
@@ -191,8 +191,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateEntityIntermediary(DpcIntermediaryEntityEditDTO editDTO) { public int updateEntityIntermediary(CcdiIntermediaryEntityEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary); BeanUtils.copyProperties(editDTO, intermediary);
// 设置中介类型为机构 // 设置中介类型为机构
intermediary.setIntermediaryType("2"); intermediary.setIntermediaryType("2");
@@ -204,7 +204,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 清空个人专属字段 * 清空个人专属字段
*/ */
private void clearPersonFields(DpcIntermediaryBlacklist intermediary) { private void clearPersonFields(CcdiIntermediaryBlacklist intermediary) {
intermediary.setIndivType(null); intermediary.setIndivType(null);
intermediary.setIndivSubType(null); intermediary.setIndivSubType(null);
intermediary.setIndivGender(null); intermediary.setIndivGender(null);
@@ -221,7 +221,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 清空机构专属字段 * 清空机构专属字段
*/ */
private void clearEntityFields(DpcIntermediaryBlacklist intermediary) { private void clearEntityFields(CcdiIntermediaryBlacklist intermediary) {
intermediary.setCorpCreditCode(null); intermediary.setCorpCreditCode(null);
intermediary.setCorpType(null); intermediary.setCorpType(null);
intermediary.setCorpNature(null); intermediary.setCorpNature(null);
@@ -258,7 +258,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public String importIntermediary(List<DpcIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport) { public String importIntermediary(List<CcdiIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) { if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据"; return "至少需要一条数据";
} }
@@ -268,16 +268,16 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
StringBuilder successMsg = new StringBuilder(); StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder();
for (DpcIntermediaryBlacklistExcel excel : excelList) { for (CcdiIntermediaryBlacklistExcel excel : excelList) {
try { try {
// 转换为AddDTO // 转换为AddDTO
DpcIntermediaryBlacklistAddDTO addDTO = new DpcIntermediaryBlacklistAddDTO(); CcdiIntermediaryBlacklistAddDTO addDTO = new CcdiIntermediaryBlacklistAddDTO();
BeanUtils.copyProperties(excel, addDTO); BeanUtils.copyProperties(excel, addDTO);
// 验证数据 // 验证数据
validateIntermediaryData(addDTO); validateIntermediaryData(addDTO);
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary); BeanUtils.copyProperties(addDTO, intermediary);
intermediaryMapper.insert(intermediary); intermediaryMapper.insert(intermediary);
@@ -303,11 +303,11 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* 根据中介类型获取详情返回不同类型 * 根据中介类型获取详情返回不同类型
* *
* @param intermediaryId 中介ID * @param intermediaryId 中介ID
* @return 个人返回 DpcIntermediaryPersonDetailVO机构返回 DpcIntermediaryEntityDetailVO * @return 个人返回 CcdiIntermediaryPersonDetailVO机构返回 CcdiIntermediaryEntityDetailVO
*/ */
@Override @Override
public Object selectIntermediaryDetailById(Long intermediaryId) { public Object selectIntermediaryDetailById(Long intermediaryId) {
DpcIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId); CcdiIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
if (intermediary == null) { if (intermediary == null) {
return null; return null;
} }
@@ -330,38 +330,38 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public String importPersonIntermediary(List<DpcIntermediaryPersonExcel> excelList, Boolean isUpdateSupport) { public String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) { if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据"; return "至少需要一条数据";
} }
// 批量处理先验证所有数据 // 批量处理先验证所有数据
List<DpcIntermediaryBlacklist> toInsertList = new ArrayList<>(); List<CcdiIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<DpcIntermediaryBlacklist> toUpdateList = new ArrayList<>(); List<CcdiIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<String> errorMessages = new ArrayList<>(); List<String> errorMessages = new ArrayList<>();
// 批量查询已存在的记录用于唯一性校验或更新支持 // 批量查询已存在的记录用于唯一性校验或更新支持
Set<String> existingCertNos = new HashSet<>(); Set<String> existingCertNos = new HashSet<>();
Map<String, Long> certNoToIdMap = new HashMap<>(); Map<String, Long> certNoToIdMap = new HashMap<>();
for (DpcIntermediaryPersonExcel excel : excelList) { for (CcdiIntermediaryPersonExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCertificateNo())) { if (StringUtils.isNotEmpty(excel.getCertificateNo())) {
existingCertNos.add(excel.getCertificateNo()); existingCertNos.add(excel.getCertificateNo());
} }
} }
if (!existingCertNos.isEmpty()) { if (!existingCertNos.isEmpty()) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcIntermediaryBlacklist::getIntermediaryType, "1") wrapper.eq(CcdiIntermediaryBlacklist::getIntermediaryType, "1")
.in(DpcIntermediaryBlacklist::getCertificateNo, existingCertNos) .in(CcdiIntermediaryBlacklist::getCertificateNo, existingCertNos)
.select(DpcIntermediaryBlacklist::getIntermediaryId, DpcIntermediaryBlacklist::getCertificateNo); .select(CcdiIntermediaryBlacklist::getIntermediaryId, CcdiIntermediaryBlacklist::getCertificateNo);
List<DpcIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper); List<CcdiIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (DpcIntermediaryBlacklist existing : existingList) { for (CcdiIntermediaryBlacklist existing : existingList) {
certNoToIdMap.put(existing.getCertificateNo(), existing.getIntermediaryId()); certNoToIdMap.put(existing.getCertificateNo(), existing.getIntermediaryId());
} }
} }
// 如果不是更新模式先进行唯一性校验 // 如果不是更新模式先进行唯一性校验
if (!isUpdateSupport) { if (!isUpdateSupport) {
for (DpcIntermediaryPersonExcel excel : excelList) { for (CcdiIntermediaryPersonExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCertificateNo()) && certNoToIdMap.containsKey(excel.getCertificateNo())) { if (StringUtils.isNotEmpty(excel.getCertificateNo()) && certNoToIdMap.containsKey(excel.getCertificateNo())) {
throw new RuntimeException("证件号 " + excel.getCertificateNo() + " 已存在,请勿重复导入"); throw new RuntimeException("证件号 " + excel.getCertificateNo() + " 已存在,请勿重复导入");
} }
@@ -370,13 +370,13 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
// 处理每条数据 // 处理每条数据
for (int i = 0; i < excelList.size(); i++) { for (int i = 0; i < excelList.size(); i++) {
DpcIntermediaryPersonExcel excel = excelList.get(i); CcdiIntermediaryPersonExcel excel = excelList.get(i);
try { try {
// 验证数据 // 验证数据
validatePersonIntermediaryData(excel); validatePersonIntermediaryData(excel);
// 转换为实体 // 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName()); intermediary.setName(excel.getName());
intermediary.setCertificateNo(excel.getCertificateNo()); intermediary.setCertificateNo(excel.getCertificateNo());
intermediary.setIntermediaryType("1"); intermediary.setIntermediaryType("1");
@@ -448,38 +448,38 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果 * @return 结果
*/ */
@Override @Override
public String importEntityIntermediary(List<DpcIntermediaryEntityExcel> excelList, Boolean isUpdateSupport) { public String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) { if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据"; return "至少需要一条数据";
} }
// 批量处理先验证所有数据 // 批量处理先验证所有数据
List<DpcIntermediaryBlacklist> toInsertList = new ArrayList<>(); List<CcdiIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<DpcIntermediaryBlacklist> toUpdateList = new ArrayList<>(); List<CcdiIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<String> errorMessages = new ArrayList<>(); List<String> errorMessages = new ArrayList<>();
// 批量查询已存在的记录用于唯一性校验或更新支持 // 批量查询已存在的记录用于唯一性校验或更新支持
Set<String> existingCreditCodes = new HashSet<>(); Set<String> existingCreditCodes = new HashSet<>();
Map<String, Long> creditCodeToIdMap = new HashMap<>(); Map<String, Long> creditCodeToIdMap = new HashMap<>();
for (DpcIntermediaryEntityExcel excel : excelList) { for (CcdiIntermediaryEntityExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCorpCreditCode())) { if (StringUtils.isNotEmpty(excel.getCorpCreditCode())) {
existingCreditCodes.add(excel.getCorpCreditCode()); existingCreditCodes.add(excel.getCorpCreditCode());
} }
} }
if (!existingCreditCodes.isEmpty()) { if (!existingCreditCodes.isEmpty()) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcIntermediaryBlacklist::getIntermediaryType, "2") wrapper.eq(CcdiIntermediaryBlacklist::getIntermediaryType, "2")
.in(DpcIntermediaryBlacklist::getCorpCreditCode, existingCreditCodes) .in(CcdiIntermediaryBlacklist::getCorpCreditCode, existingCreditCodes)
.select(DpcIntermediaryBlacklist::getIntermediaryId, DpcIntermediaryBlacklist::getCorpCreditCode); .select(CcdiIntermediaryBlacklist::getIntermediaryId, CcdiIntermediaryBlacklist::getCorpCreditCode);
List<DpcIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper); List<CcdiIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (DpcIntermediaryBlacklist existing : existingList) { for (CcdiIntermediaryBlacklist existing : existingList) {
creditCodeToIdMap.put(existing.getCorpCreditCode(), existing.getIntermediaryId()); creditCodeToIdMap.put(existing.getCorpCreditCode(), existing.getIntermediaryId());
} }
} }
// 如果不是更新模式先进行唯一性校验 // 如果不是更新模式先进行唯一性校验
if (!isUpdateSupport) { if (!isUpdateSupport) {
for (DpcIntermediaryEntityExcel excel : excelList) { for (CcdiIntermediaryEntityExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCorpCreditCode()) && creditCodeToIdMap.containsKey(excel.getCorpCreditCode())) { if (StringUtils.isNotEmpty(excel.getCorpCreditCode()) && creditCodeToIdMap.containsKey(excel.getCorpCreditCode())) {
throw new RuntimeException("统一社会信用代码 " + excel.getCorpCreditCode() + " 已存在,请勿重复导入"); throw new RuntimeException("统一社会信用代码 " + excel.getCorpCreditCode() + " 已存在,请勿重复导入");
} }
@@ -490,13 +490,13 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
// 处理每条数据 // 处理每条数据
for (int i = 0; i < excelList.size(); i++) { for (int i = 0; i < excelList.size(); i++) {
DpcIntermediaryEntityExcel excel = excelList.get(i); CcdiIntermediaryEntityExcel excel = excelList.get(i);
try { try {
// 验证数据 // 验证数据
validateEntityIntermediaryData(excel); validateEntityIntermediaryData(excel);
// 转换为实体 // 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist(); CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName()); intermediary.setName(excel.getName());
// 对于机构中介使用统一社会信用代码作为证件号 // 对于机构中介使用统一社会信用代码作为证件号
intermediary.setCertificateNo(excel.getCorpCreditCode()); intermediary.setCertificateNo(excel.getCorpCreditCode());
@@ -577,7 +577,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 验证个人中介数据 * 验证个人中介数据
*/ */
private void validatePersonIntermediaryData(DpcIntermediaryPersonExcel excel) { private void validatePersonIntermediaryData(CcdiIntermediaryPersonExcel excel) {
if (StringUtils.isEmpty(excel.getName())) { if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("姓名不能为空"); throw new RuntimeException("姓名不能为空");
} }
@@ -589,7 +589,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 验证机构中介数据 * 验证机构中介数据
*/ */
private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) { private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
if (StringUtils.isEmpty(excel.getName())) { if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("机构名称不能为空"); throw new RuntimeException("机构名称不能为空");
} }
@@ -602,12 +602,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 转换为个人详情 VO * 转换为个人详情 VO
*/ */
private DpcIntermediaryPersonDetailVO convertToPersonDetailVO(DpcIntermediaryBlacklist intermediary) { private CcdiIntermediaryPersonDetailVO convertToPersonDetailVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) { if (intermediary == null) {
return null; return null;
} }
DpcIntermediaryPersonDetailVO vo = new DpcIntermediaryPersonDetailVO(); CcdiIntermediaryPersonDetailVO vo = new CcdiIntermediaryPersonDetailVO();
// 复制基础字段 // 复制基础字段
vo.setIntermediaryId(intermediary.getIntermediaryId()); vo.setIntermediaryId(intermediary.getIntermediaryId());
vo.setName(intermediary.getName()); vo.setName(intermediary.getName());
@@ -646,12 +646,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 转换为机构详情 VO * 转换为机构详情 VO
*/ */
private DpcIntermediaryEntityDetailVO convertToEntityDetailVO(DpcIntermediaryBlacklist intermediary) { private CcdiIntermediaryEntityDetailVO convertToEntityDetailVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) { if (intermediary == null) {
return null; return null;
} }
DpcIntermediaryEntityDetailVO vo = new DpcIntermediaryEntityDetailVO(); CcdiIntermediaryEntityDetailVO vo = new CcdiIntermediaryEntityDetailVO();
// 复制基础字段 // 复制基础字段
vo.setIntermediaryId(intermediary.getIntermediaryId()); vo.setIntermediaryId(intermediary.getIntermediaryId());
vo.setName(intermediary.getName()); vo.setName(intermediary.getName());
@@ -693,20 +693,20 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 构建查询条件 * 构建查询条件
*/ */
private LambdaQueryWrapper<DpcIntermediaryBlacklist> buildQueryWrapper(DpcIntermediaryBlacklistQueryDTO queryDTO) { private LambdaQueryWrapper<CcdiIntermediaryBlacklist> buildQueryWrapper(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), DpcIntermediaryBlacklist::getName, queryDTO.getName()) wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiIntermediaryBlacklist::getName, queryDTO.getName())
.like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), DpcIntermediaryBlacklist::getCertificateNo, queryDTO.getCertificateNo()) .like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), CcdiIntermediaryBlacklist::getCertificateNo, queryDTO.getCertificateNo())
.eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), DpcIntermediaryBlacklist::getIntermediaryType, queryDTO.getIntermediaryType()) .eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), CcdiIntermediaryBlacklist::getIntermediaryType, queryDTO.getIntermediaryType())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), DpcIntermediaryBlacklist::getStatus, queryDTO.getStatus()) .eq(StringUtils.isNotEmpty(queryDTO.getStatus()), CcdiIntermediaryBlacklist::getStatus, queryDTO.getStatus())
.orderByDesc(DpcIntermediaryBlacklist::getCreateTime); .orderByDesc(CcdiIntermediaryBlacklist::getCreateTime);
return wrapper; return wrapper;
} }
/** /**
* 验证中介数据 * 验证中介数据
*/ */
private void validateIntermediaryData(DpcIntermediaryBlacklistAddDTO addDTO) { private void validateIntermediaryData(CcdiIntermediaryBlacklistAddDTO addDTO) {
// 验证必填字段 // 验证必填字段
if (StringUtils.isEmpty(addDTO.getName())) { if (StringUtils.isEmpty(addDTO.getName())) {
throw new RuntimeException("姓名/机构名称不能为空"); throw new RuntimeException("姓名/机构名称不能为空");
@@ -725,12 +725,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/** /**
* 转换为VO对象 * 转换为VO对象
*/ */
private DpcIntermediaryBlacklistVO convertToVO(DpcIntermediaryBlacklist intermediary) { private CcdiIntermediaryBlacklistVO convertToVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) { if (intermediary == null) {
return null; return null;
} }
DpcIntermediaryBlacklistVO vo = new DpcIntermediaryBlacklistVO(); CcdiIntermediaryBlacklistVO vo = new CcdiIntermediaryBlacklistVO();
BeanUtils.copyProperties(intermediary, vo); BeanUtils.copyProperties(intermediary, vo);
vo.setIntermediaryTypeName(IntermediaryType.getDescByCode(intermediary.getIntermediaryType())); vo.setIntermediaryTypeName(IntermediaryType.getDescByCode(intermediary.getIntermediaryType()));

View File

@@ -1,9 +1,9 @@
package com.ruoyi.dpc.utils; package com.ruoyi.ccdi.utils;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.handler.WriteHandler; import com.alibaba.excel.write.handler.WriteHandler;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.ruoyi.dpc.handler.DictDropdownWriteHandler; import com.ruoyi.ccdi.handler.DictDropdownWriteHandler;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.utils.converter; package com.ruoyi.ccdi.utils.converter;
import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.enums.CellDataTypeEnum;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.utils.converter; package com.ruoyi.ccdi.utils.converter;
import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.enums.CellDataTypeEnum;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.utils.converter; package com.ruoyi.ccdi.utils.converter;
import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.enums.CellDataTypeEnum;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.dpc.utils.handler; package com.ruoyi.ccdi.utils.handler;
import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;

View File

@@ -2,10 +2,10 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.dpc.mapper.DpcEmployeeMapper"> <mapper namespace="com.ruoyi.ccdi.mapper.CcdiEmployeeMapper">
<!-- 员工基本信息ResultMap用于列表查询不包含亲属 --> <!-- 员工基本信息ResultMap用于列表查询不包含亲属 -->
<resultMap type="com.ruoyi.dpc.domain.vo.DpcEmployeeVO" id="DpcEmployeeVOResult"> <resultMap type="com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO" id="CcdiEmployeeVOResult">
<id property="employeeId" column="employee_id"/> <id property="employeeId" column="employee_id"/>
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="tellerNo" column="teller_no"/> <result property="tellerNo" column="teller_no"/>
@@ -19,8 +19,8 @@
</resultMap> </resultMap>
<!-- 员工详情ResultMap包含亲属信息 --> <!-- 员工详情ResultMap包含亲属信息 -->
<resultMap type="com.ruoyi.dpc.domain.vo.DpcEmployeeVO" id="DpcEmployeeWithRelativesResult" extends="DpcEmployeeVOResult"> <resultMap type="com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO" id="CcdiEmployeeWithRelativesResult" extends="CcdiEmployeeVOResult">
<collection property="relatives" ofType="DpcEmployeeRelativeVO" notNullColumn="relative_id"> <collection property="relatives" ofType="CcdiEmployeeRelativeVO" notNullColumn="relative_id">
<id property="relativeId" column="relative_id"/> <id property="relativeId" column="relative_id"/>
<result property="employeeId" column="employee_id"/> <result property="employeeId" column="employee_id"/>
<result property="relativeName" column="relative_name"/> <result property="relativeName" column="relative_name"/>
@@ -30,11 +30,11 @@
</collection> </collection>
</resultMap> </resultMap>
<select id="selectEmployeePageWithDept" resultMap="DpcEmployeeVOResult"> <select id="selectEmployeePageWithDept" resultMap="CcdiEmployeeVOResult">
SELECT SELECT
e.employee_id, e.name, e.teller_no, e.dept_id, e.id_card, e.phone, e.hire_date, e.status, e.create_time, e.employee_id, e.name, e.teller_no, e.dept_id, e.id_card, e.phone, e.hire_date, e.status, e.create_time,
d.dept_name d.dept_name
FROM dpc_employee e FROM ccdi_employee e
LEFT JOIN sys_dept d ON e.dept_id = d.dept_id LEFT JOIN sys_dept d ON e.dept_id = d.dept_id
<where> <where>
<if test="query.name != null and query.name != ''"> <if test="query.name != null and query.name != ''">
@@ -56,14 +56,14 @@
ORDER BY e.create_time DESC ORDER BY e.create_time DESC
</select> </select>
<select id="selectEmployeeWithRelatives" parameterType="Long" resultMap="DpcEmployeeWithRelativesResult"> <select id="selectEmployeeWithRelatives" parameterType="Long" resultMap="CcdiEmployeeWithRelativesResult">
SELECT SELECT
e.employee_id, e.name, e.teller_no, e.dept_id, e.id_card, e.phone, e.hire_date, e.status, e.create_time, e.employee_id, e.name, e.teller_no, e.dept_id, e.id_card, e.phone, e.hire_date, e.status, e.create_time,
d.dept_name, d.dept_name,
r.relative_id, r.employee_id, r.relative_name, r.relative_id_card, r.relative_phone, r.relationship r.relative_id, r.employee_id, r.relative_name, r.relative_id_card, r.relative_phone, r.relationship
FROM dpc_employee e FROM ccdi_employee e
LEFT JOIN sys_dept d ON e.dept_id = d.dept_id LEFT JOIN sys_dept d ON e.dept_id = d.dept_id
LEFT JOIN dpc_employee_relative r ON e.employee_id = r.employee_id LEFT JOIN ccdi_employee_relative r ON e.employee_id = r.employee_id
WHERE e.employee_id = #{employeeId} WHERE e.employee_id = #{employeeId}
</select> </select>

View File

@@ -2,11 +2,11 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.dpc.mapper.DpcIntermediaryBlacklistMapper"> <mapper namespace="com.ruoyi.ccdi.mapper.CcdiIntermediaryBlacklistMapper">
<!-- 批量插入中介黑名单数据 --> <!-- 批量插入中介黑名单数据 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO dpc_intermediary_blacklist ( INSERT INTO ccdi_intermediary_blacklist (
name, name,
certificate_no, certificate_no,
intermediary_type, intermediary_type,
@@ -89,7 +89,7 @@
<!-- 批量更新中介黑名单数据 --> <!-- 批量更新中介黑名单数据 -->
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";"> <foreach collection="list" item="item" separator=";">
UPDATE dpc_intermediary_blacklist UPDATE ccdi_intermediary_blacklist
<set> <set>
<if test="item.name != null">name = #{item.name},</if> <if test="item.name != null">name = #{item.name},</if>
<if test="item.certificateNo != null">certificate_no = #{item.certificateNo},</if> <if test="item.certificateNo != null">certificate_no = #{item.certificateNo},</if>

View File

@@ -1,13 +0,0 @@
package com.ruoyi.dpc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.dpc.domain.DpcEmployeeRelative;
/**
* 员工亲属 数据层
*
* @author ruoyi
* @date 2026-01-28
*/
public interface DpcEmployeeRelativeMapper extends BaseMapper<DpcEmployeeRelative> {
}

View File

@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询员工列表 // 查询员工列表
export function listEmployee(query) { export function listEmployee(query) {
return request({ return request({
url: '/dpc/employee/list', url: '/ccdi/employee/list',
method: 'get', method: 'get',
params: query params: query
}) })
@@ -12,7 +12,7 @@ export function listEmployee(query) {
// 查询员工详细 // 查询员工详细
export function getEmployee(employeeId) { export function getEmployee(employeeId) {
return request({ return request({
url: '/dpc/employee/' + employeeId, url: '/ccdi/employee/' + employeeId,
method: 'get' method: 'get'
}) })
} }
@@ -20,7 +20,7 @@ export function getEmployee(employeeId) {
// 新增员工 // 新增员工
export function addEmployee(data) { export function addEmployee(data) {
return request({ return request({
url: '/dpc/employee', url: '/ccdi/employee',
method: 'post', method: 'post',
data: data data: data
}) })
@@ -29,7 +29,7 @@ export function addEmployee(data) {
// 修改员工 // 修改员工
export function updateEmployee(data) { export function updateEmployee(data) {
return request({ return request({
url: '/dpc/employee', url: '/ccdi/employee',
method: 'put', method: 'put',
data: data data: data
}) })
@@ -38,7 +38,7 @@ export function updateEmployee(data) {
// 删除员工 // 删除员工
export function delEmployee(employeeIds) { export function delEmployee(employeeIds) {
return request({ return request({
url: '/dpc/employee/' + employeeIds, url: '/ccdi/employee/' + employeeIds,
method: 'delete' method: 'delete'
}) })
} }
@@ -46,7 +46,7 @@ export function delEmployee(employeeIds) {
// 下载导入模板 // 下载导入模板
export function importTemplate() { export function importTemplate() {
return request({ return request({
url: '/dpc/employee/importTemplate', url: '/ccdi/employee/importTemplate',
method: 'post' method: 'post'
}) })
} }
@@ -54,7 +54,7 @@ export function importTemplate() {
// 导入员工 // 导入员工
export function importData(data, updateSupport) { export function importData(data, updateSupport) {
return request({ return request({
url: '/dpc/employee/importData?updateSupport=' + updateSupport, url: '/ccdi/employee/importData?updateSupport=' + updateSupport,
method: 'post', method: 'post',
data: data data: data
}) })

View File

@@ -5,7 +5,7 @@ import request from '@/utils/request'
*/ */
export function getIndivTypeOptions() { export function getIndivTypeOptions() {
return request({ return request({
url: '/dpc/enum/indivType', url: '/ccdi/enum/indivType',
method: 'get' method: 'get'
}) })
} }
@@ -15,7 +15,7 @@ export function getIndivTypeOptions() {
*/ */
export function getIndivSubTypeOptions() { export function getIndivSubTypeOptions() {
return request({ return request({
url: '/dpc/enum/indivSubType', url: '/ccdi/enum/indivSubType',
method: 'get' method: 'get'
}) })
} }
@@ -25,7 +25,7 @@ export function getIndivSubTypeOptions() {
*/ */
export function getGenderOptions() { export function getGenderOptions() {
return request({ return request({
url: '/dpc/enum/gender', url: '/ccdi/enum/gender',
method: 'get' method: 'get'
}) })
} }
@@ -35,7 +35,7 @@ export function getGenderOptions() {
*/ */
export function getCertTypeOptions() { export function getCertTypeOptions() {
return request({ return request({
url: '/dpc/enum/certType', url: '/ccdi/enum/certType',
method: 'get' method: 'get'
}) })
} }
@@ -45,7 +45,7 @@ export function getCertTypeOptions() {
*/ */
export function getRelationTypeOptions() { export function getRelationTypeOptions() {
return request({ return request({
url: '/dpc/enum/relationType', url: '/ccdi/enum/relationType',
method: 'get' method: 'get'
}) })
} }
@@ -55,7 +55,7 @@ export function getRelationTypeOptions() {
*/ */
export function getCorpTypeOptions() { export function getCorpTypeOptions() {
return request({ return request({
url: '/dpc/enum/corpType', url: '/ccdi/enum/corpType',
method: 'get' method: 'get'
}) })
} }
@@ -65,7 +65,7 @@ export function getCorpTypeOptions() {
*/ */
export function getCorpNatureOptions() { export function getCorpNatureOptions() {
return request({ return request({
url: '/dpc/enum/corpNature', url: '/ccdi/enum/corpNature',
method: 'get' method: 'get'
}) })
} }
@@ -75,7 +75,7 @@ export function getCorpNatureOptions() {
*/ */
export function getIntermediaryTypeOptions() { export function getIntermediaryTypeOptions() {
return request({ return request({
url: '/dpc/enum/intermediaryType', url: '/ccdi/enum/intermediaryType',
method: 'get' method: 'get'
}) })
} }
@@ -85,7 +85,7 @@ export function getIntermediaryTypeOptions() {
*/ */
export function getIntermediaryStatusOptions() { export function getIntermediaryStatusOptions() {
return request({ return request({
url: '/dpc/enum/intermediaryStatus', url: '/ccdi/enum/intermediaryStatus',
method: 'get' method: 'get'
}) })
} }
@@ -95,7 +95,7 @@ export function getIntermediaryStatusOptions() {
*/ */
export function getDataSourceOptions() { export function getDataSourceOptions() {
return request({ return request({
url: '/dpc/enum/dataSource', url: '/ccdi/enum/dataSource',
method: 'get' method: 'get'
}) })
} }

View File

@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询中介黑名单列表 // 查询中介黑名单列表
export function listIntermediary(query) { export function listIntermediary(query) {
return request({ return request({
url: '/dpc/intermediary/list', url: '/ccdi/intermediary/list',
method: 'get', method: 'get',
params: query params: query
}) })
@@ -12,7 +12,7 @@ export function listIntermediary(query) {
// 查询中介黑名单详细 // 查询中介黑名单详细
export function getIntermediary(intermediaryId) { export function getIntermediary(intermediaryId) {
return request({ return request({
url: '/dpc/intermediary/' + intermediaryId, url: '/ccdi/intermediary/' + intermediaryId,
method: 'get' method: 'get'
}) })
} }
@@ -20,7 +20,7 @@ export function getIntermediary(intermediaryId) {
// 新增中介黑名单 // 新增中介黑名单
export function addIntermediary(data) { export function addIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary', url: '/ccdi/intermediary',
method: 'post', method: 'post',
data: data data: data
}) })
@@ -29,7 +29,7 @@ export function addIntermediary(data) {
// 新增个人中介黑名单 // 新增个人中介黑名单
export function addPersonIntermediary(data) { export function addPersonIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary/person', url: '/ccdi/intermediary/person',
method: 'post', method: 'post',
data: data data: data
}) })
@@ -38,7 +38,7 @@ export function addPersonIntermediary(data) {
// 新增机构中介黑名单 // 新增机构中介黑名单
export function addEntityIntermediary(data) { export function addEntityIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary/entity', url: '/ccdi/intermediary/entity',
method: 'post', method: 'post',
data: data data: data
}) })
@@ -47,7 +47,7 @@ export function addEntityIntermediary(data) {
// 修改中介黑名单 // 修改中介黑名单
export function updateIntermediary(data) { export function updateIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary', url: '/ccdi/intermediary',
method: 'put', method: 'put',
data: data data: data
}) })
@@ -56,7 +56,7 @@ export function updateIntermediary(data) {
// 修改个人中介黑名单 // 修改个人中介黑名单
export function updatePersonIntermediary(data) { export function updatePersonIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary/person', url: '/ccdi/intermediary/person',
method: 'put', method: 'put',
data: data data: data
}) })
@@ -65,7 +65,7 @@ export function updatePersonIntermediary(data) {
// 修改机构中介黑名单 // 修改机构中介黑名单
export function updateEntityIntermediary(data) { export function updateEntityIntermediary(data) {
return request({ return request({
url: '/dpc/intermediary/entity', url: '/ccdi/intermediary/entity',
method: 'put', method: 'put',
data: data data: data
}) })
@@ -74,7 +74,7 @@ export function updateEntityIntermediary(data) {
// 删除中介黑名单 // 删除中介黑名单
export function delIntermediary(intermediaryIds) { export function delIntermediary(intermediaryIds) {
return request({ return request({
url: '/dpc/intermediary/' + intermediaryIds, url: '/ccdi/intermediary/' + intermediaryIds,
method: 'delete' method: 'delete'
}) })
} }
@@ -82,7 +82,7 @@ export function delIntermediary(intermediaryIds) {
// 下载导入模板(已废弃,保留以兼容旧代码) // 下载导入模板(已废弃,保留以兼容旧代码)
export function importTemplate() { export function importTemplate() {
return request({ return request({
url: '/dpc/intermediary/importTemplate', url: '/ccdi/intermediary/importTemplate',
method: 'post' method: 'post'
}) })
} }
@@ -90,7 +90,7 @@ export function importTemplate() {
// 导入中介黑名单 // 导入中介黑名单
export function importData(data, updateSupport) { export function importData(data, updateSupport) {
return request({ return request({
url: '/dpc/intermediary/importData?updateSupport=' + updateSupport, url: '/ccdi/intermediary/importData?updateSupport=' + updateSupport,
method: 'post', method: 'post',
data: data data: data
}) })
@@ -99,7 +99,7 @@ export function importData(data, updateSupport) {
// 下载个人中介导入模板 // 下载个人中介导入模板
export function importPersonTemplate() { export function importPersonTemplate() {
return request({ return request({
url: '/dpc/intermediary/importPersonTemplate', url: '/ccdi/intermediary/importPersonTemplate',
method: 'post' method: 'post'
}) })
} }
@@ -107,7 +107,7 @@ export function importPersonTemplate() {
// 下载机构中介导入模板 // 下载机构中介导入模板
export function importEntityTemplate() { export function importEntityTemplate() {
return request({ return request({
url: '/dpc/intermediary/importEntityTemplate', url: '/ccdi/intermediary/importEntityTemplate',
method: 'post' method: 'post'
}) })
} }
@@ -115,7 +115,7 @@ export function importEntityTemplate() {
// 导入个人中介黑名单 // 导入个人中介黑名单
export function importPersonData(data, updateSupport) { export function importPersonData(data, updateSupport) {
return request({ return request({
url: '/dpc/intermediary/importPersonData?updateSupport=' + updateSupport, url: '/ccdi/intermediary/importPersonData?updateSupport=' + updateSupport,
method: 'post', method: 'post',
data: data data: data
}) })
@@ -124,7 +124,7 @@ export function importPersonData(data, updateSupport) {
// 导入机构中介黑名单 // 导入机构中介黑名单
export function importEntityData(data, updateSupport) { export function importEntityData(data, updateSupport) {
return request({ return request({
url: '/dpc/intermediary/importEntityData?updateSupport=' + updateSupport, url: '/ccdi/intermediary/importEntityData?updateSupport=' + updateSupport,
method: 'post', method: 'post',
data: data data: data
}) })

View File

@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询初核项目列表 // 查询初核项目列表
export function listProject(query) { export function listProject(query) {
return request({ return request({
url: '/dpc/project/list', url: '/ccdi/project/list',
method: 'get', method: 'get',
params: query params: query
}) })
@@ -12,7 +12,7 @@ export function listProject(query) {
// 查询初核项目详细 // 查询初核项目详细
export function getProject(projectId) { export function getProject(projectId) {
return request({ return request({
url: '/dpc/project/' + projectId, url: '/ccdi/project/' + projectId,
method: 'get' method: 'get'
}) })
} }
@@ -20,7 +20,7 @@ export function getProject(projectId) {
// 新增初核项目 // 新增初核项目
export function addProject(data) { export function addProject(data) {
return request({ return request({
url: '/dpc/project', url: '/ccdi/project',
method: 'post', method: 'post',
data: data data: data
}) })
@@ -29,7 +29,7 @@ export function addProject(data) {
// 修改初核项目 // 修改初核项目
export function updateProject(data) { export function updateProject(data) {
return request({ return request({
url: '/dpc/project', url: '/ccdi/project',
method: 'put', method: 'put',
data: data data: data
}) })
@@ -38,7 +38,7 @@ export function updateProject(data) {
// 删除初核项目 // 删除初核项目
export function delProject(projectIds) { export function delProject(projectIds) {
return request({ return request({
url: '/dpc/project/' + projectIds, url: '/ccdi/project/' + projectIds,
method: 'delete' method: 'delete'
}) })
} }
@@ -46,7 +46,7 @@ export function delProject(projectIds) {
// 导出初核项目 // 导出初核项目
export function exportProject(query) { export function exportProject(query) {
return request({ return request({
url: '/dpc/project/export', url: '/ccdi/project/export',
method: 'get', method: 'get',
params: query params: query
}) })
@@ -55,7 +55,7 @@ export function exportProject(query) {
// 刷新项目预警人数 // 刷新项目预警人数
export function refreshWarningCount(projectId) { export function refreshWarningCount(projectId) {
return request({ return request({
url: '/dpc/project/' + projectId + '/warning', url: '/ccdi/project/' + projectId + '/warning',
method: 'post' method: 'post'
}) })
} }
@@ -63,7 +63,7 @@ export function refreshWarningCount(projectId) {
// 归档项目 // 归档项目
export function archiveProject(projectId) { export function archiveProject(projectId) {
return request({ return request({
url: '/dpc/project/' + projectId + '/archive', url: '/ccdi/project/' + projectId + '/archive',
method: 'post' method: 'post'
}) })
} }
@@ -71,7 +71,7 @@ export function archiveProject(projectId) {
// 获取历史项目列表(用于导入) // 获取历史项目列表(用于导入)
export function listHistoryProjects(query) { export function listHistoryProjects(query) {
return request({ return request({
url: '/dpc/project/history', url: '/ccdi/project/history',
method: 'get', method: 'get',
params: query params: query
}) })
@@ -80,7 +80,7 @@ export function listHistoryProjects(query) {
// 从历史项目导入 // 从历史项目导入
export function importFromHistory(data) { export function importFromHistory(data) {
return request({ return request({
url: '/dpc/project/import', url: '/ccdi/project/import',
method: 'post', method: 'post',
data: data data: data
}) })

View File

@@ -63,12 +63,12 @@ export const constantRoutes = [
{ {
path: '', path: '',
component: Layout, component: Layout,
redirect: 'dpcProject', redirect: 'ccdiProject',
children: [ children: [
{ {
path: 'dpcProject', path: 'ccdiProject',
component: () => import('@/views/dpcProject/index'), component: () => import('@/views/ccdiProject/index'),
name: 'DpcProject', name: 'CcdiProject',
meta: { title: '初核项目管理', icon: 'dashboard', affix: true } meta: { title: '初核项目管理', icon: 'dashboard', affix: true }
} }
] ]

View File

@@ -52,7 +52,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['dpc:employee:add']" v-hasPermi="['ccdi:employee:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@@ -62,7 +62,7 @@
icon="el-icon-upload2" icon="el-icon-upload2"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
v-hasPermi="['dpc:employee:import']" v-hasPermi="['ccdi:employee:import']"
>导入</el-button> >导入</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -93,21 +93,21 @@
type="text" type="text"
icon="el-icon-view" icon="el-icon-view"
@click="handleDetail(scope.row)" @click="handleDetail(scope.row)"
v-hasPermi="['dpc:employee:query']" v-hasPermi="['ccdi:employee:query']"
>详情</el-button> >详情</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['dpc:employee:edit']" v-hasPermi="['ccdi:employee:edit']"
>编辑</el-button> >编辑</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['dpc:employee:remove']" v-hasPermi="['ccdi:employee:remove']"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@@ -315,7 +315,7 @@
</template> </template>
<script> <script>
import {addEmployee, delEmployee, getEmployee, listEmployee, updateEmployee} from "@/api/dpcEmployee"; import {addEmployee, delEmployee, getEmployee, listEmployee, updateEmployee} from "@/api/ccdiEmployee";
import {deptTreeSelect} from "@/api/system/user"; import {deptTreeSelect} from "@/api/system/user";
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
@@ -403,7 +403,7 @@ export default {
// //
headers: { Authorization: "Bearer " + getToken() }, headers: { Authorization: "Bearer " + getToken() },
// //
url: process.env.VUE_APP_BASE_API + "/dpc/employee/importData" url: process.env.VUE_APP_BASE_API + "/ccdi/employee/importData"
} }
}; };
}, },

View File

@@ -29,14 +29,14 @@
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="$emit('update', scope.row)" @click="$emit('update', scope.row)"
v-hasPermi="['dpc:intermediary:edit']" v-hasPermi="['ccdi:intermediary:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="$emit('delete', scope.row)" @click="$emit('delete', scope.row)"
v-hasPermi="['dpc:intermediary:remove']" v-hasPermi="['ccdi:intermediary:remove']"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>

View File

@@ -118,9 +118,9 @@ export default {
const baseUrl = process.env.VUE_APP_BASE_API; const baseUrl = process.env.VUE_APP_BASE_API;
const updateSupport = this.formData.updateSupport ? 1 : 0; const updateSupport = this.formData.updateSupport ? 1 : 0;
if (this.formData.importType === 'person') { if (this.formData.importType === 'person') {
return `${baseUrl}/dpc/intermediary/importPersonData?updateSupport=${updateSupport}`; return `${baseUrl}/ccdi/intermediary/importPersonData?updateSupport=${updateSupport}`;
} else { } else {
return `${baseUrl}/dpc/intermediary/importEntityData?updateSupport=${updateSupport}`; return `${baseUrl}/ccdi/intermediary/importEntityData?updateSupport=${updateSupport}`;
} }
} }
}, },

View File

@@ -16,7 +16,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['dpc:intermediary:add']" v-hasPermi="['ccdi:intermediary:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@@ -26,7 +26,7 @@
icon="el-icon-upload2" icon="el-icon-upload2"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
v-hasPermi="['dpc:intermediary:import']" v-hasPermi="['ccdi:intermediary:import']"
>导入</el-button> >导入</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -86,7 +86,7 @@ import {
listIntermediary, listIntermediary,
updateEntityIntermediary, updateEntityIntermediary,
updatePersonIntermediary updatePersonIntermediary
} from "@/api/dpcIntermediary"; } from "@/api/ccdiIntermediary";
import { import {
getCertTypeOptions, getCertTypeOptions,
getCorpNatureOptions, getCorpNatureOptions,
@@ -95,7 +95,7 @@ import {
getIndivSubTypeOptions, getIndivSubTypeOptions,
getIndivTypeOptions, getIndivTypeOptions,
getRelationTypeOptions getRelationTypeOptions
} from "@/api/dpcEnum"; } from "@/api/ccdiEnum";
import SearchForm from "./components/SearchForm"; import SearchForm from "./components/SearchForm";
import DataTable from "./components/DataTable"; import DataTable from "./components/DataTable";
import EditDialog from "./components/EditDialog"; import EditDialog from "./components/EditDialog";

View File

@@ -135,7 +135,7 @@
</template> </template>
<script> <script>
import {getMockHistoryProjects} from '@/api/dpcProject' import {getMockHistoryProjects} from '@/api/ccdiProject'
export default { export default {
name: 'ImportHistoryDialog', name: 'ImportHistoryDialog',

View File

@@ -63,7 +63,7 @@
</template> </template>
<script> <script>
import {getMockProjectList} from '@/api/dpcProject' import {getMockProjectList} from '@/api/ccdiProject'
import SearchBar from './components/SearchBar' import SearchBar from './components/SearchBar'
import ProjectTable from './components/ProjectTable' import ProjectTable from './components/ProjectTable'
import QuickEntry from './components/QuickEntry' import QuickEntry from './components/QuickEntry'

View File

@@ -8,10 +8,10 @@
-- ---------------------------- -- ----------------------------
-- 1. 创建员工信息表 -- 1. 创建员工信息表
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `dpc_employee_relative`; DROP TABLE IF EXISTS `ccdi_employee_relative`;
DROP TABLE IF EXISTS `dpc_employee`; DROP TABLE IF EXISTS `ccdi_employee`;
CREATE TABLE `dpc_employee` ( CREATE TABLE `ccdi_employee` (
`employee_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '员工ID', `employee_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '员工ID',
`name` VARCHAR(100) NOT NULL COMMENT '姓名', `name` VARCHAR(100) NOT NULL COMMENT '姓名',
`teller_no` VARCHAR(50) NOT NULL COMMENT '柜员号', `teller_no` VARCHAR(50) NOT NULL COMMENT '柜员号',
@@ -34,7 +34,7 @@ CREATE TABLE `dpc_employee` (
-- ---------------------------- -- ----------------------------
-- 2. 创建员工亲属表 -- 2. 创建员工亲属表
-- ---------------------------- -- ----------------------------
CREATE TABLE `dpc_employee_relative` ( CREATE TABLE `ccdi_employee_relative` (
`relative_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '亲属ID', `relative_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '亲属ID',
`employee_id` BIGINT NOT NULL COMMENT '员工ID', `employee_id` BIGINT NOT NULL COMMENT '员工ID',
`relative_name` VARCHAR(100) NOT NULL COMMENT '亲属姓名', `relative_name` VARCHAR(100) NOT NULL COMMENT '亲属姓名',
@@ -55,17 +55,17 @@ CREATE TABLE `dpc_employee_relative` (
-- ---------------------------- -- ----------------------------
-- 员工状态字典 -- 员工状态字典
INSERT INTO `sys_dict_type` VALUES (101, '员工状态', 'dpc_employee_status', '0', 'admin', sysdate(), '', NULL, '员工状态列表'); INSERT INTO `sys_dict_type` VALUES (101, '员工状态', 'ccdi_employee_status', '0', 'admin', sysdate(), '', NULL, '员工状态列表');
INSERT INTO `sys_dict_data` VALUES (102, 1, '在职', '0', 'dpc_employee_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', NULL, '在职状态'); INSERT INTO `sys_dict_data` VALUES (102, 1, '在职', '0', 'ccdi_employee_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', NULL, '在职状态');
INSERT INTO `sys_dict_data` VALUES (103, 2, '离职', '1', 'dpc_employee_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', NULL, '离职状态'); INSERT INTO `sys_dict_data` VALUES (103, 2, '离职', '1', 'ccdi_employee_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', NULL, '离职状态');
-- 亲属关系字典 -- 亲属关系字典
INSERT INTO `sys_dict_type` VALUES (102, '亲属关系', 'dpc_relative_relationship', '0', 'admin', sysdate(), '', NULL, '亲属关系列表'); INSERT INTO `sys_dict_type` VALUES (102, '亲属关系', 'ccdi_relative_relationship', '0', 'admin', sysdate(), '', NULL, '亲属关系列表');
INSERT INTO `sys_dict_data` VALUES (104, 1, '配偶', '配偶', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '配偶关系'); INSERT INTO `sys_dict_data` VALUES (104, 1, '配偶', '配偶', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '配偶关系');
INSERT INTO `sys_dict_data` VALUES (105, 2, '父亲', '父亲', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '父亲关系'); INSERT INTO `sys_dict_data` VALUES (105, 2, '父亲', '父亲', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '父亲关系');
INSERT INTO `sys_dict_data` VALUES (106, 3, '母亲', '母亲', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '母亲关系'); INSERT INTO `sys_dict_data` VALUES (106, 3, '母亲', '母亲', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '母亲关系');
INSERT INTO `sys_dict_data` VALUES (107, 4, '子女', '子女', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '子女关系'); INSERT INTO `sys_dict_data` VALUES (107, 4, '子女', '子女', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '子女关系');
INSERT INTO `sys_dict_data` VALUES (108, 5, '兄弟姐妹', '兄弟姐妹', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '兄弟姐妹关系'); INSERT INTO `sys_dict_data` VALUES (108, 5, '兄弟姐妹', '兄弟姐妹', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '兄弟姐妹关系');
INSERT INTO `sys_dict_data` VALUES (109, 6, '其他', '其他', 'dpc_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '其他关系'); INSERT INTO `sys_dict_data` VALUES (109, 6, '其他', '其他', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '其他关系');

Some files were not shown because too many files have changed in this diff Show More