变更项目缩写

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)",
"mcp__web-reader__webReader",
"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": [

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

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -143,7 +143,7 @@ project_status项目状态:
```sql
-- 项目信息表
CREATE TABLE dpc_project (
CREATE TABLE ccdi_project (
project_id bigint(20) not null auto_increment comment '项目ID',
project_name varchar(100) not 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 时违反数据库约束。
@@ -20,14 +20,14 @@ Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationExceptio
### 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 行
**修改前**
```java
// 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName());
intermediary.setIntermediaryType("2");
```
@@ -35,7 +35,7 @@ intermediary.setIntermediaryType("2");
**修改后**
```java
// 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName());
// 对于机构中介,使用统一社会信用代码作为证件号
intermediary.setCertificateNo(excel.getCorpCreditCode());
@@ -44,13 +44,13 @@ intermediary.setIntermediaryType("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 行
**修改前**
```java
private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("机构名称不能为空");
}
@@ -59,7 +59,7 @@ private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
**修改后**
```java
private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
if (StringUtils.isEmpty(excel.getName())) {
throw new RuntimeException("机构名称不能为空");
}
@@ -72,7 +72,7 @@ private void validateEntityIntermediaryData(DpcIntermediaryEntityExcel excel) {
### 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 行
@@ -140,7 +140,7 @@ python doc/test-data/test_import_fix.py
1. **数据迁移**:如果数据库中已存在机构中介数据且 `certificate_no` 为 null需要执行以下 SQL 进行数据修复:
```sql
UPDATE dpc_intermediary_blacklist
UPDATE ccdi_intermediary_blacklist
SET certificate_no = corp_credit_code
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) - 服务层实现
2. [DpcIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-dpc\src\main\resources\mapper\dpc\DpcIntermediaryBlacklistMapper.xml) - MyBatis 映射文件
1. [CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java) - 服务层实现
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) - 测试脚本
## 版本历史

View File

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

View File

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

View File

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

View File

@@ -2,12 +2,12 @@
## 数据库设计
### 表:dpc_intermediary_blacklist
### 表:ccdi_intermediary_blacklist
中介人员/机构黑名单主表。
```sql
CREATE TABLE `dpc_intermediary_blacklist` (
CREATE TABLE `ccdi_intermediary_blacklist` (
`intermediary_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '中介ID',
`name` VARCHAR(100) NOT NULL COMMENT '姓名/机构名称',
`certificate_no` VARCHAR(50) DEFAULT NULL COMMENT '证件号',
@@ -55,40 +55,40 @@ CREATE TABLE `dpc_intermediary_blacklist` (
ruoyi-dpc/
├── src/main/java/com/ruoyi/dpc/
│ ├── controller/
│ │ └── DpcIntermediaryBlacklistController.java
│ │ └── CcdiIntermediaryBlacklistController.java
│ ├── domain/
│ │ ├── DpcIntermediaryBlacklist.java
│ │ ├── CcdiIntermediaryBlacklist.java
│ │ ├── dto/
│ │ │ ├── DpcIntermediaryBlacklistAddDTO.java
│ │ │ ├── DpcIntermediaryBlacklistEditDTO.java
│ │ │ └── DpcIntermediaryBlacklistQueryDTO.java
│ │ │ ├── CcdiIntermediaryBlacklistAddDTO.java
│ │ │ ├── CcdiIntermediaryBlacklistEditDTO.java
│ │ │ └── CcdiIntermediaryBlacklistQueryDTO.java
│ │ └── vo/
│ │ └── DpcIntermediaryBlacklistVO.java
│ │ └── CcdiIntermediaryBlacklistVO.java
│ ├── mapper/
│ │ └── DpcIntermediaryBlacklistMapper.java
│ │ └── CcdiIntermediaryBlacklistMapper.java
│ └── service/
│ ├── IDpcIntermediaryBlacklistService.java
│ ├── ICcdiIntermediaryBlacklistService.java
│ └── impl/
│ └── DpcIntermediaryBlacklistServiceImpl.java
│ └── CcdiIntermediaryBlacklistServiceImpl.java
└── src/main/resources/mapper/dpc/
└── DpcIntermediaryBlacklistMapper.xml
└── CcdiIntermediaryBlacklistMapper.xml
```
### Controller 层设计
**DpcIntermediaryBlacklistController**
**CcdiIntermediaryBlacklistController**
```java
@RestController
@RequestMapping("/dpc/intermediary")
public class DpcIntermediaryBlacklistController extends BaseController {
public class CcdiIntermediaryBlacklistController extends BaseController {
/**
* 查询中介黑名单列表
*/
@PreAuthorize("@ss.hasPermi('dpc:intermediary: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')")
@Log(title = "中介黑名单", businessType = BusinessType.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')")
@Log(title = "中介黑名单", businessType = BusinessType.INSERT)
@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')")
@Log(title = "中介黑名单", businessType = BusinessType.UPDATE)
@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 层设计
**IDpcIntermediaryBlacklistService**
**ICcdiIntermediaryBlacklistService**
```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
public class DpcIntermediaryBlacklist {
public class CcdiIntermediaryBlacklist {
/** 中介ID */
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` 模块(如果不存在),与若依框架代码分离
- 新增表:`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`
- 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/`
@@ -86,7 +86,7 @@
- 新增菜单:信息维护 > 中介库管理(注意与数据库中菜单表进行联动修改)
### 数据库影响
- 新增表:`dpc_intermediary_blacklist`
- 新增表:`ccdi_intermediary_blacklist`
## Dependencies
- 依赖 EasyExcel 进行 Excel 导入导出(参考 `replace-poi-with-easyexcel` change

View File

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

View File

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

View File

@@ -67,9 +67,9 @@
### 后端影响
- 新建 `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`
- 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/`
@@ -77,8 +77,8 @@
- 新增菜单:项目管理(在系统菜单中添加,注意与数据库中菜单表进行联动修改)
### 数据库影响
- 新增表:`dpc_project`(项目主表)
- 新增表:`dpc_project_person`(项目人员关联表)
- 新增表:`ccdi_project`(项目主表)
- 新增表:`ccdi_project_person`(项目人员关联表)
## Dependencies
- 依赖现有用户系统(`SysUser`)进行人员选择
@@ -90,7 +90,7 @@
## Open Questions
1. **项目人员关联方式**使用多对多关联表还是JSON字段存储人员列表
- 建议:使用 `dpc_project_person` 关联表,便于查询和扩展
- 建议:使用 `ccdi_project_person` 关联表,便于查询和扩展
2. **归档PDF生成**使用什么工具生成PDF
- 建议:使用 iText 或 Apache POI需要后续确认

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,7 +9,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-dpc</artifactId>
<artifactId>ruoyi-ccdi</artifactId>
<description>
纪检初核系统模块
@@ -41,4 +41,22 @@
</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>

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.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.core.controller.BaseController;
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.TableSupport;
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.tags.Tag;
import jakarta.annotation.Resource;
@@ -34,23 +34,23 @@ import java.util.List;
*/
@Tag(name = "员工信息管理")
@RestController
@RequestMapping("/dpc/employee")
public class DpcEmployeeController extends BaseController {
@RequestMapping("/ccdi/employee")
public class CcdiEmployeeController extends BaseController {
@Resource
private IDpcEmployeeService employeeService;
private ICcdiEmployeeService employeeService;
/**
* 查询员工列表
*/
@Operation(summary = "查询员工列表")
@PreAuthorize("@ss.hasPermi('dpc:employee:list')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:list')")
@GetMapping("/list")
public TableDataInfo list(DpcEmployeeQueryDTO queryDTO) {
public TableDataInfo list(CcdiEmployeeQueryDTO queryDTO) {
// 使用MyBatis Plus分页
PageDomain pageDomain = TableSupport.buildPageRequest();
Page<DpcEmployeeVO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<DpcEmployeeVO> result = employeeService.selectEmployeePage(page, queryDTO);
Page<CcdiEmployeeVO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<CcdiEmployeeVO> result = employeeService.selectEmployeePage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal());
}
@@ -58,19 +58,19 @@ public class DpcEmployeeController extends BaseController {
* 导出员工列表
*/
@Operation(summary = "导出员工列表")
@PreAuthorize("@ss.hasPermi('dpc:employee:export')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:export')")
@Log(title = "员工信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, DpcEmployeeQueryDTO queryDTO) {
List<DpcEmployeeExcel> list = employeeService.selectEmployeeListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, DpcEmployeeExcel.class, "员工信息");
public void export(HttpServletResponse response, CcdiEmployeeQueryDTO queryDTO) {
List<CcdiEmployeeExcel> list = employeeService.selectEmployeeListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, CcdiEmployeeExcel.class, "员工信息");
}
/**
* 获取员工详细信息
*/
@Operation(summary = "获取员工详细信息")
@PreAuthorize("@ss.hasPermi('dpc:employee:query')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:query')")
@GetMapping(value = "/{employeeId}")
public AjaxResult getInfo(@PathVariable Long employeeId) {
return success(employeeService.selectEmployeeById(employeeId));
@@ -80,10 +80,10 @@ public class DpcEmployeeController extends BaseController {
* 新增员工
*/
@Operation(summary = "新增员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:add')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:add')")
@Log(title = "员工信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody DpcEmployeeAddDTO addDTO) {
public AjaxResult add(@Validated @RequestBody CcdiEmployeeAddDTO addDTO) {
return toAjax(employeeService.insertEmployee(addDTO));
}
@@ -91,10 +91,10 @@ public class DpcEmployeeController extends BaseController {
* 修改员工
*/
@Operation(summary = "修改员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:edit')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:edit')")
@Log(title = "员工信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody DpcEmployeeEditDTO editDTO) {
public AjaxResult edit(@Validated @RequestBody CcdiEmployeeEditDTO editDTO) {
return toAjax(employeeService.updateEmployee(editDTO));
}
@@ -102,7 +102,7 @@ public class DpcEmployeeController extends BaseController {
* 删除员工
*/
@Operation(summary = "删除员工")
@PreAuthorize("@ss.hasPermi('dpc:employee:remove')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:remove')")
@Log(title = "员工信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{employeeIds}")
public AjaxResult remove(@PathVariable Long[] employeeIds) {
@@ -116,18 +116,18 @@ public class DpcEmployeeController extends BaseController {
@Operation(summary = "下载导入模板")
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(response, DpcEmployeeExcel.class, "员工信息");
EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiEmployeeExcel.class, "员工信息");
}
/**
* 导入员工信息
*/
@Operation(summary = "导入员工信息")
@PreAuthorize("@ss.hasPermi('dpc:employee:import')")
@PreAuthorize("@ss.hasPermi('ccdi:employee:import')")
@Log(title = "员工信息", businessType = BusinessType.IMPORT)
@PostMapping("/importData")
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);
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.dpc.domain.vo.EnumOptionVO;
import com.ruoyi.dpc.enums.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
@@ -19,8 +19,8 @@ import java.util.List;
*/
@Tag(name = "DPC枚举接口", description = "中介黑名单相关枚举选项接口")
@RestController
@RequestMapping("/dpc/enum")
public class DpcEnumController {
@RequestMapping("/ccdi/enum")
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.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.core.controller.BaseController;
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.TableSupport;
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.tags.Tag;
import jakarta.annotation.Resource;
@@ -35,23 +35,23 @@ import java.util.List;
*/
@Tag(name = "中介黑名单管理")
@RestController
@RequestMapping("/dpc/intermediary")
public class DpcIntermediaryBlacklistController extends BaseController {
@RequestMapping("/ccdi/intermediary")
public class CcdiIntermediaryBlacklistController extends BaseController {
@Resource
private IDpcIntermediaryBlacklistService intermediaryService;
private ICcdiIntermediaryBlacklistService intermediaryService;
/**
* 查询中介黑名单列表
*/
@Operation(summary = "查询中介黑名单列表")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:list')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:list')")
@GetMapping("/list")
public TableDataInfo list(DpcIntermediaryBlacklistQueryDTO queryDTO) {
public TableDataInfo list(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
// 使用MyBatis Plus分页
PageDomain pageDomain = TableSupport.buildPageRequest();
Page<DpcIntermediaryBlacklist> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<DpcIntermediaryBlacklistVO> result = intermediaryService.selectIntermediaryPage(page, queryDTO);
Page<CcdiIntermediaryBlacklist> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<CcdiIntermediaryBlacklistVO> result = intermediaryService.selectIntermediaryPage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal());
}
@@ -59,19 +59,19 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 导出中介黑名单列表
*/
@Operation(summary = "导出中介黑名单列表")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:export')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:export')")
@Log(title = "中介黑名单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, DpcIntermediaryBlacklistQueryDTO queryDTO) {
List<DpcIntermediaryBlacklistExcel> list = intermediaryService.selectIntermediaryListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, DpcIntermediaryBlacklistExcel.class, "中介黑名单");
public void export(HttpServletResponse response, CcdiIntermediaryBlacklistQueryDTO queryDTO) {
List<CcdiIntermediaryBlacklistExcel> list = intermediaryService.selectIntermediaryListForExport(queryDTO);
EasyExcelUtil.exportExcel(response, list, CcdiIntermediaryBlacklistExcel.class, "中介黑名单");
}
/**
* 获取中介黑名单详细信息根据类型返回不同结构
*/
@Operation(summary = "获取中介黑名单详细信息")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:query')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:query')")
@GetMapping(value = "/{intermediaryId}")
public AjaxResult getInfo(@PathVariable Long intermediaryId) {
return success(intermediaryService.selectIntermediaryDetailById(intermediaryId));
@@ -81,11 +81,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增中介黑名单已废弃请使用类型专用接口
*/
@Operation(summary = "新增中介黑名单(已废弃,请使用类型专用接口)")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "中介黑名单", businessType = BusinessType.INSERT)
@PostMapping
@Deprecated
public AjaxResult add(@Validated @RequestBody DpcIntermediaryBlacklistAddDTO addDTO) {
public AjaxResult add(@Validated @RequestBody CcdiIntermediaryBlacklistAddDTO addDTO) {
return toAjax(intermediaryService.insertIntermediary(addDTO));
}
@@ -93,10 +93,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增个人中介黑名单
*/
@Operation(summary = "新增个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "个人中介黑名单", businessType = BusinessType.INSERT)
@PostMapping("/person")
public AjaxResult addPerson(@Validated @RequestBody DpcIntermediaryPersonAddDTO addDTO) {
public AjaxResult addPerson(@Validated @RequestBody CcdiIntermediaryPersonAddDTO addDTO) {
return toAjax(intermediaryService.insertPersonIntermediary(addDTO));
}
@@ -104,10 +104,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 新增机构中介黑名单
*/
@Operation(summary = "新增机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:add')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')")
@Log(title = "机构中介黑名单", businessType = BusinessType.INSERT)
@PostMapping("/entity")
public AjaxResult addEntity(@Validated @RequestBody DpcIntermediaryEntityAddDTO addDTO) {
public AjaxResult addEntity(@Validated @RequestBody CcdiIntermediaryEntityAddDTO addDTO) {
return toAjax(intermediaryService.insertEntityIntermediary(addDTO));
}
@@ -115,11 +115,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改中介黑名单
*/
@Operation(summary = "修改中介黑名单(已废弃,请使用类型专用接口)")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping
@Deprecated
public AjaxResult edit(@Validated @RequestBody DpcIntermediaryBlacklistEditDTO editDTO) {
public AjaxResult edit(@Validated @RequestBody CcdiIntermediaryBlacklistEditDTO editDTO) {
return toAjax(intermediaryService.updateIntermediary(editDTO));
}
@@ -127,10 +127,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改个人中介黑名单
*/
@Operation(summary = "修改个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "个人中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping("/person")
public AjaxResult editPerson(@Validated @RequestBody DpcIntermediaryPersonEditDTO editDTO) {
public AjaxResult editPerson(@Validated @RequestBody CcdiIntermediaryPersonEditDTO editDTO) {
return toAjax(intermediaryService.updatePersonIntermediary(editDTO));
}
@@ -138,10 +138,10 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 修改机构中介黑名单
*/
@Operation(summary = "修改机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:edit')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')")
@Log(title = "机构中介黑名单", businessType = BusinessType.UPDATE)
@PutMapping("/entity")
public AjaxResult editEntity(@Validated @RequestBody DpcIntermediaryEntityEditDTO editDTO) {
public AjaxResult editEntity(@Validated @RequestBody CcdiIntermediaryEntityEditDTO editDTO) {
return toAjax(intermediaryService.updateEntityIntermediary(editDTO));
}
@@ -149,7 +149,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 删除中介黑名单
*/
@Operation(summary = "删除中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:remove')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:remove')")
@Log(title = "中介黑名单", businessType = BusinessType.DELETE)
@DeleteMapping("/{intermediaryIds}")
public AjaxResult remove(@PathVariable Long[] intermediaryIds) {
@@ -162,7 +162,7 @@ public class DpcIntermediaryBlacklistController extends BaseController {
@Operation(summary = "下载个人中介导入模板")
@PostMapping("/importPersonTemplate")
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 = "下载机构中介导入模板")
@PostMapping("/importEntityTemplate")
public void importEntityTemplate(HttpServletResponse response) {
EasyExcelUtil.importTemplateWithDictDropdown(response, DpcIntermediaryEntityExcel.class, "机构中介黑名单");
EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiIntermediaryEntityExcel.class, "机构中介黑名单");
}
/**
* 导入个人中介黑名单
*/
@Operation(summary = "导入个人中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')")
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importPersonData")
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);
return success(message);
}
@@ -191,11 +191,11 @@ public class DpcIntermediaryBlacklistController extends BaseController {
* 导入机构中介黑名单
*/
@Operation(summary = "导入机构中介黑名单")
@PreAuthorize("@ss.hasPermi('dpc:intermediary:import')")
@PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')")
@Log(title = "中介黑名单", businessType = BusinessType.IMPORT)
@PostMapping("/importEntityData")
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);
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.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-28
*/
@Data
public class DpcEmployee implements Serializable {
public class CcdiEmployee implements Serializable {
@Serial
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.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeRelative implements Serializable {
public class CcdiEmployeeRelative implements Serializable {
@Serial
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.IdType;
@@ -17,7 +17,7 @@ import java.util.Date;
* @date 2026-01-27
*/
@Data
public class DpcIntermediaryBlacklist implements Serializable {
public class CcdiIntermediaryBlacklist implements Serializable {
@Serial
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.Pattern;
@@ -17,7 +17,7 @@ import java.util.List;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeAddDTO implements Serializable {
public class CcdiEmployeeAddDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@@ -52,5 +52,5 @@ public class DpcEmployeeAddDTO implements Serializable {
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.Pattern;
@@ -17,7 +17,7 @@ import java.util.List;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeEditDTO implements Serializable {
public class CcdiEmployeeEditDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@@ -52,5 +52,5 @@ public class DpcEmployeeEditDTO implements Serializable {
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;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeQueryDTO implements Serializable {
public class CcdiEmployeeQueryDTO implements Serializable {
@Serial
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.Pattern;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeRelativeAddDTO implements Serializable {
public class CcdiEmployeeRelativeAddDTO implements Serializable {
@Serial
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.Size;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @author ruoyi
* @date 2026-01-27
*/
public class DpcIntermediaryBlacklistAddDTO implements Serializable {
public class CcdiIntermediaryBlacklistAddDTO implements Serializable {
@Serial
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.NotNull;
@@ -14,7 +14,7 @@ import java.util.Date;
* @author ruoyi
* @date 2026-01-27
*/
public class DpcIntermediaryBlacklistEditDTO implements Serializable {
public class CcdiIntermediaryBlacklistEditDTO implements Serializable {
@Serial
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.Serializable;
@@ -9,7 +9,7 @@ import java.io.Serializable;
* @author ruoyi
* @date 2026-01-27
*/
public class DpcIntermediaryBlacklistQueryDTO implements Serializable {
public class CcdiIntermediaryBlacklistQueryDTO implements Serializable {
@Serial
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.Size;
@@ -15,7 +15,7 @@ import java.util.Date;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryEntityAddDTO implements Serializable {
public class CcdiIntermediaryEntityAddDTO implements Serializable {
@Serial
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.NotNull;
@@ -16,7 +16,7 @@ import java.util.Date;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryEntityEditDTO implements Serializable {
public class CcdiIntermediaryEntityEditDTO implements Serializable {
@Serial
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.Size;
@@ -14,7 +14,7 @@ import java.io.Serializable;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryPersonAddDTO implements Serializable {
public class CcdiIntermediaryPersonAddDTO implements Serializable {
@Serial
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.NotNull;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryPersonEditDTO implements Serializable {
public class CcdiIntermediaryPersonEditDTO implements Serializable {
@Serial
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.write.style.ColumnWidth;
@@ -16,7 +16,7 @@ import java.util.Date;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeExcel implements Serializable {
public class CcdiEmployeeExcel implements Serializable {
@Serial
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.write.style.ColumnWidth;
@@ -14,7 +14,7 @@ import java.io.Serializable;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeRelativeExcel implements Serializable {
public class CcdiEmployeeRelativeExcel implements Serializable {
@Serial
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.write.style.ColumnWidth;
import com.ruoyi.dpc.utils.converter.IntermediaryStatusConverter;
import com.ruoyi.dpc.utils.converter.IntermediaryTypeConverter;
import com.ruoyi.ccdi.utils.converter.IntermediaryStatusConverter;
import com.ruoyi.ccdi.utils.converter.IntermediaryTypeConverter;
import lombok.Data;
import java.io.Serial;
@@ -16,7 +16,7 @@ import java.io.Serializable;
* @date 2026-01-27
*/
@Data
public class DpcIntermediaryBlacklistExcel implements Serializable {
public class CcdiIntermediaryBlacklistExcel implements Serializable {
@Serial
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.write.style.ColumnWidth;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryEntityExcel implements Serializable {
public class CcdiIntermediaryEntityExcel implements Serializable {
@Serial
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.write.style.ColumnWidth;
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryPersonExcel implements Serializable {
public class CcdiIntermediaryPersonExcel implements Serializable {
@Serial
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;
@@ -12,7 +12,7 @@ import java.io.Serializable;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeRelativeVO implements Serializable {
public class CcdiEmployeeRelativeVO implements Serializable {
@Serial
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;
@@ -14,7 +14,7 @@ import java.util.List;
* @date 2026-01-28
*/
@Data
public class DpcEmployeeVO implements Serializable {
public class CcdiEmployeeVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@@ -62,5 +62,5 @@ public class DpcEmployeeVO implements Serializable {
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 lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-27
*/
@Data
public class DpcIntermediaryBlacklistVO implements Serializable {
public class CcdiIntermediaryBlacklistVO implements Serializable {
@Serial
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 lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryEntityDetailVO implements Serializable {
public class CcdiIntermediaryEntityDetailVO implements Serializable {
@Serial
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 lombok.Data;
@@ -14,7 +14,7 @@ import java.util.Date;
* @date 2026-01-29
*/
@Data
public class DpcIntermediaryPersonDetailVO implements Serializable {
public class CcdiIntermediaryPersonDetailVO implements Serializable {
@Serial
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.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
*/
@Getter
@AllArgsConstructor
public enum CertType {
/** 身份证 */
@@ -27,6 +23,19 @@ public enum CertType {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum CorpNature {
/** 国有企业 */
@@ -39,6 +35,19 @@ public enum CorpNature {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum CorpType {
/** 有限责任公司 */
@@ -42,6 +38,19 @@ public enum CorpType {
private final String code;
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;
import lombok.AllArgsConstructor;
import lombok.Getter;
package com.ruoyi.ccdi.enums;
/**
* 数据来源枚举
*
* @author ruoyi
*/
@Getter
@AllArgsConstructor
public enum DataSource {
/** 手动录入 */
@@ -27,6 +22,19 @@ public enum DataSource {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum EmployeeStatus {
/** 在职 */
@@ -21,6 +17,19 @@ public enum EmployeeStatus {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum Gender {
/** 男 */
@@ -24,6 +20,19 @@ public enum Gender {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum IndivSubType {
/** 本人 */
@@ -36,6 +32,19 @@ public enum IndivSubType {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum IndivType {
/** 房产中介 */
@@ -30,6 +26,19 @@ public enum IndivType {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum IntermediaryStatus {
/** 正常 */
@@ -21,6 +17,19 @@ public enum IntermediaryStatus {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum IntermediaryType {
/** 个人 */
@@ -21,6 +17,19 @@ public enum IntermediaryType {
private final String code;
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
*/
@Getter
@AllArgsConstructor
public enum RelationType {
/** 配偶 */
@@ -39,6 +35,19 @@ public enum RelationType {
private final String code;
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.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.extension.plugins.pagination.Page;
import com.ruoyi.dpc.domain.DpcEmployee;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO;
import com.ruoyi.ccdi.domain.CcdiEmployee;
import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO;
import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO;
import org.apache.ibatis.annotations.Param;
/**
@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @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 查询条件
* @return 员工VO分页结果
*/
Page<DpcEmployeeVO> selectEmployeePageWithDept(@Param("page") Page<DpcEmployeeVO> page,
@Param("query") DpcEmployeeQueryDTO queryDTO);
Page<CcdiEmployeeVO> selectEmployeePageWithDept(@Param("page") Page<CcdiEmployeeVO> page,
@Param("query") CcdiEmployeeQueryDTO queryDTO);
/**
* 查询员工详情包含亲属列表
@@ -31,5 +31,5 @@ public interface DpcEmployeeMapper extends BaseMapper<DpcEmployee> {
* @param employeeId 员工ID
* @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.ruoyi.dpc.domain.DpcIntermediaryBlacklist;
import com.ruoyi.ccdi.domain.CcdiIntermediaryBlacklist;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -12,7 +12,7 @@ import java.util.List;
* @author ruoyi
* @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 中介黑名单列表
* @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 中介黑名单列表
* @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.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.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 java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
* @author ruoyi
* @date 2026-01-28
*/
public interface IDpcEmployeeService {
public interface ICcdiEmployeeService {
/**
* 查询员工列表
@@ -23,7 +23,7 @@ public interface IDpcEmployeeService {
* @param queryDTO 查询条件
* @return 员工VO集合
*/
List<DpcEmployeeVO> selectEmployeeList(DpcEmployeeQueryDTO queryDTO);
List<CcdiEmployeeVO> selectEmployeeList(CcdiEmployeeQueryDTO queryDTO);
/**
* 分页查询员工列表
@@ -32,7 +32,7 @@ public interface IDpcEmployeeService {
* @param queryDTO 查询条件
* @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 查询条件
* @return 员工Excel实体集合
*/
List<DpcEmployeeExcel> selectEmployeeListForExport(DpcEmployeeQueryDTO queryDTO);
List<CcdiEmployeeExcel> selectEmployeeListForExport(CcdiEmployeeQueryDTO queryDTO);
/**
* 查询员工详情
@@ -48,7 +48,7 @@ public interface IDpcEmployeeService {
* @param employeeId 员工ID
* @return 员工VO
*/
DpcEmployeeVO selectEmployeeById(Long employeeId);
CcdiEmployeeVO selectEmployeeById(Long employeeId);
/**
* 新增员工
@@ -56,7 +56,7 @@ public interface IDpcEmployeeService {
* @param addDTO 新增DTO
* @return 结果
*/
int insertEmployee(DpcEmployeeAddDTO addDTO);
int insertEmployee(CcdiEmployeeAddDTO addDTO);
/**
* 修改员工
@@ -64,7 +64,7 @@ public interface IDpcEmployeeService {
* @param editDTO 编辑DTO
* @return 结果
*/
int updateEmployee(DpcEmployeeEditDTO editDTO);
int updateEmployee(CcdiEmployeeEditDTO editDTO);
/**
* 批量删除员工
@@ -81,5 +81,5 @@ public interface IDpcEmployeeService {
* @param isUpdateSupport 是否更新支持
* @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.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.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 java.util.List;
@@ -16,7 +16,7 @@ import java.util.List;
* @author ruoyi
* @date 2026-01-27
*/
public interface IDpcIntermediaryBlacklistService {
public interface ICcdiIntermediaryBlacklistService {
/**
* 查询中介黑名单列表
@@ -24,7 +24,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param queryDTO 查询条件
* @return 中介黑名单集合
*/
List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO);
List<CcdiIntermediaryBlacklistVO> selectIntermediaryList(CcdiIntermediaryBlacklistQueryDTO queryDTO);
/**
* 分页查询中介黑名单列表
@@ -33,7 +33,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param queryDTO 查询条件
* @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 查询条件
* @return 中介黑名单Excel实体集合
*/
List<DpcIntermediaryBlacklistExcel> selectIntermediaryListForExport(DpcIntermediaryBlacklistQueryDTO queryDTO);
List<CcdiIntermediaryBlacklistExcel> selectIntermediaryListForExport(CcdiIntermediaryBlacklistQueryDTO queryDTO);
/**
* 查询中介黑名单详细
@@ -49,7 +49,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param intermediaryId 中介ID
* @return 中介黑名单VO
*/
DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId);
CcdiIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId);
/**
* 新增中介黑名单通用接口不推荐使用
@@ -59,7 +59,7 @@ public interface IDpcIntermediaryBlacklistService {
* @deprecated 请使用 insertPersonIntermediary insertEntityIntermediary 代替
*/
@Deprecated
int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO);
int insertIntermediary(CcdiIntermediaryBlacklistAddDTO addDTO);
/**
* 新增个人中介黑名单
@@ -67,7 +67,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param addDTO 个人中介新增DTO
* @return 结果
*/
int insertPersonIntermediary(DpcIntermediaryPersonAddDTO addDTO);
int insertPersonIntermediary(CcdiIntermediaryPersonAddDTO addDTO);
/**
* 新增机构中介黑名单
@@ -75,7 +75,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param addDTO 机构中介新增DTO
* @return 结果
*/
int insertEntityIntermediary(DpcIntermediaryEntityAddDTO addDTO);
int insertEntityIntermediary(CcdiIntermediaryEntityAddDTO addDTO);
/**
* 修改中介黑名单通用接口不推荐使用
@@ -85,7 +85,7 @@ public interface IDpcIntermediaryBlacklistService {
* @deprecated 请使用 updatePersonIntermediary updateEntityIntermediary 代替
*/
@Deprecated
int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO);
int updateIntermediary(CcdiIntermediaryBlacklistEditDTO editDTO);
/**
* 修改个人中介黑名单
@@ -93,7 +93,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param editDTO 个人中介编辑DTO
* @return 结果
*/
int updatePersonIntermediary(DpcIntermediaryPersonEditDTO editDTO);
int updatePersonIntermediary(CcdiIntermediaryPersonEditDTO editDTO);
/**
* 修改机构中介黑名单
@@ -101,7 +101,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param editDTO 机构中介编辑DTO
* @return 结果
*/
int updateEntityIntermediary(DpcIntermediaryEntityEditDTO editDTO);
int updateEntityIntermediary(CcdiIntermediaryEntityEditDTO editDTO);
/**
* 批量删除中介黑名单
@@ -118,13 +118,13 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持
* @return 结果
*/
String importIntermediary(List<DpcIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport);
String importIntermediary(List<CcdiIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport);
/**
* 根据中介类型获取详情返回不同类型
*
* @param intermediaryId 中介ID
* @return 个人返回 DpcIntermediaryPersonDetailVO机构返回 DpcIntermediaryEntityDetailVO
* @return 个人返回 CcdiIntermediaryPersonDetailVO机构返回 CcdiIntermediaryEntityDetailVO
*/
Object selectIntermediaryDetailById(Long intermediaryId);
@@ -135,7 +135,7 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持
* @return 结果
*/
String importPersonIntermediary(List<DpcIntermediaryPersonExcel> excelList, Boolean isUpdateSupport);
String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> excelList, Boolean isUpdateSupport);
/**
* 导入机构中介数据
@@ -144,5 +144,5 @@ public interface IDpcIntermediaryBlacklistService {
* @param isUpdateSupport 是否更新支持
* @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.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.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 org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -31,13 +31,13 @@ import java.util.List;
* @date 2026-01-28
*/
@Service
public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
public class CcdiEmployeeServiceImpl implements ICcdiEmployeeService {
@Resource
private DpcEmployeeMapper employeeMapper;
private CcdiEmployeeMapper employeeMapper;
@Resource
private DpcEmployeeRelativeMapper relativeMapper;
private CcdiEmployeeRelativeMapper relativeMapper;
/**
* 查询员工列表
@@ -46,11 +46,11 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO集合
*/
@Override
public List<DpcEmployeeVO> selectEmployeeList(DpcEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = buildQueryWrapper(queryDTO);
List<DpcEmployee> list = employeeMapper.selectList(wrapper);
List<DpcEmployeeVO> voList = new ArrayList<>();
for (DpcEmployee employee : list) {
public List<CcdiEmployeeVO> selectEmployeeList(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiEmployee> wrapper = buildQueryWrapper(queryDTO);
List<CcdiEmployee> list = employeeMapper.selectList(wrapper);
List<CcdiEmployeeVO> voList = new ArrayList<>();
for (CcdiEmployee employee : list) {
voList.add(convertToVO(employee));
}
return voList;
@@ -64,10 +64,10 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO分页结果
*/
@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<DpcEmployeeVO> resultPage = employeeMapper.selectEmployeePageWithDept(voPage, queryDTO);
Page<CcdiEmployeeVO> voPage = new Page<>(page.getCurrent(), page.getSize());
Page<CcdiEmployeeVO> resultPage = employeeMapper.selectEmployeePageWithDept(voPage, queryDTO);
// 设置状态描述
resultPage.getRecords().forEach(vo ->
@@ -84,11 +84,11 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工Excel实体集合
*/
@Override
public List<DpcEmployeeExcel> selectEmployeeListForExport(DpcEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = buildQueryWrapper(queryDTO);
List<DpcEmployee> list = employeeMapper.selectList(wrapper);
public List<CcdiEmployeeExcel> selectEmployeeListForExport(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiEmployee> wrapper = buildQueryWrapper(queryDTO);
List<CcdiEmployee> list = employeeMapper.selectList(wrapper);
return list.stream().map(employee -> {
DpcEmployeeExcel excel = new DpcEmployeeExcel();
CcdiEmployeeExcel excel = new CcdiEmployeeExcel();
BeanUtils.copyProperties(employee, excel);
return excel;
}).toList();
@@ -101,7 +101,7 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
* @return 员工VO
*/
@Override
public DpcEmployeeVO selectEmployeeById(Long employeeId) {
public CcdiEmployeeVO selectEmployeeById(Long employeeId) {
return employeeMapper.selectEmployeeWithRelatives(employeeId);
}
@@ -113,29 +113,29 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/
@Override
@Transactional
public int insertEmployee(DpcEmployeeAddDTO addDTO) {
public int insertEmployee(CcdiEmployeeAddDTO addDTO) {
// 检查柜员号唯一性
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, addDTO.getTellerNo());
LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployee::getTellerNo, addDTO.getTellerNo());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在");
}
// 检查身份证号唯一性
wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, addDTO.getIdCard());
wrapper.eq(CcdiEmployee::getIdCard, addDTO.getIdCard());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在");
}
DpcEmployee employee = new DpcEmployee();
CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(addDTO, employee);
int result = employeeMapper.insert(employee);
// 插入亲属信息
if (addDTO.getRelatives() != null && !addDTO.getRelatives().isEmpty()) {
for (DpcEmployeeRelativeAddDTO relativeAddDTO : addDTO.getRelatives()) {
DpcEmployeeRelative relative = new DpcEmployeeRelative();
for (CcdiEmployeeRelativeAddDTO relativeAddDTO : addDTO.getRelatives()) {
CcdiEmployeeRelative relative = new CcdiEmployeeRelative();
BeanUtils.copyProperties(relativeAddDTO, relative);
relative.setEmployeeId(employee.getEmployeeId());
relativeMapper.insert(relative);
@@ -153,12 +153,12 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/
@Override
@Transactional
public int updateEmployee(DpcEmployeeEditDTO editDTO) {
public int updateEmployee(CcdiEmployeeEditDTO editDTO) {
// 检查柜员号唯一性排除自己
if (StringUtils.isNotEmpty(editDTO.getTellerNo())) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, editDTO.getTellerNo())
.ne(DpcEmployee::getEmployeeId, editDTO.getEmployeeId());
LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployee::getTellerNo, editDTO.getTellerNo())
.ne(CcdiEmployee::getEmployeeId, editDTO.getEmployeeId());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在");
}
@@ -166,27 +166,27 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
// 检查身份证号唯一性排除自己
if (StringUtils.isNotEmpty(editDTO.getIdCard())) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, editDTO.getIdCard())
.ne(DpcEmployee::getEmployeeId, editDTO.getEmployeeId());
LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployee::getIdCard, editDTO.getIdCard())
.ne(CcdiEmployee::getEmployeeId, editDTO.getEmployeeId());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在");
}
}
DpcEmployee employee = new DpcEmployee();
CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(editDTO, employee);
int result = employeeMapper.updateById(employee);
// 删除原有亲属信息
LambdaQueryWrapper<DpcEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployeeRelative::getEmployeeId, editDTO.getEmployeeId());
LambdaQueryWrapper<CcdiEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployeeRelative::getEmployeeId, editDTO.getEmployeeId());
relativeMapper.delete(wrapper);
// 插入新的亲属信息
if (editDTO.getRelatives() != null && !editDTO.getRelatives().isEmpty()) {
for (DpcEmployeeRelativeAddDTO relativeAddDTO : editDTO.getRelatives()) {
DpcEmployeeRelative relative = new DpcEmployeeRelative();
for (CcdiEmployeeRelativeAddDTO relativeAddDTO : editDTO.getRelatives()) {
CcdiEmployeeRelative relative = new CcdiEmployeeRelative();
BeanUtils.copyProperties(relativeAddDTO, relative);
relative.setEmployeeId(editDTO.getEmployeeId());
relativeMapper.insert(relative);
@@ -207,8 +207,8 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
public int deleteEmployeeByIds(Long[] employeeIds) {
// 级联删除亲属信息
for (Long employeeId : employeeIds) {
LambdaQueryWrapper<DpcEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployeeRelative::getEmployeeId, employeeId);
LambdaQueryWrapper<CcdiEmployeeRelative> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployeeRelative::getEmployeeId, employeeId);
relativeMapper.delete(wrapper);
}
return employeeMapper.deleteBatchIds(List.of(employeeIds));
@@ -223,7 +223,7 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
*/
@Override
@Transactional
public String importEmployee(List<DpcEmployeeExcel> excelList, Boolean isUpdateSupport) {
public String importEmployee(List<CcdiEmployeeExcel> excelList, Boolean isUpdateSupport) {
if (StringUtils.isNull(excelList) || excelList.isEmpty()) {
return "至少需要一条数据";
}
@@ -233,16 +233,16 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (DpcEmployeeExcel excel : excelList) {
for (CcdiEmployeeExcel excel : excelList) {
try {
// 转换为AddDTO
DpcEmployeeAddDTO addDTO = new DpcEmployeeAddDTO();
CcdiEmployeeAddDTO addDTO = new CcdiEmployeeAddDTO();
BeanUtils.copyProperties(excel, addDTO);
// 验证数据
validateEmployeeData(addDTO, isUpdateSupport);
DpcEmployee employee = new DpcEmployee();
CcdiEmployee employee = new CcdiEmployee();
BeanUtils.copyProperties(addDTO, employee);
employeeMapper.insert(employee);
@@ -267,21 +267,21 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
/**
* 构建查询条件
*/
private LambdaQueryWrapper<DpcEmployee> buildQueryWrapper(DpcEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), DpcEmployee::getName, queryDTO.getName())
.eq(StringUtils.isNotEmpty(queryDTO.getTellerNo()), DpcEmployee::getTellerNo, queryDTO.getTellerNo())
.eq(queryDTO.getDeptId() != null, DpcEmployee::getDeptId, queryDTO.getDeptId())
.like(StringUtils.isNotEmpty(queryDTO.getIdCard()), DpcEmployee::getIdCard, queryDTO.getIdCard())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), DpcEmployee::getStatus, queryDTO.getStatus())
.orderByDesc(DpcEmployee::getCreateTime);
private LambdaQueryWrapper<CcdiEmployee> buildQueryWrapper(CcdiEmployeeQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiEmployee::getName, queryDTO.getName())
.eq(StringUtils.isNotEmpty(queryDTO.getTellerNo()), CcdiEmployee::getTellerNo, queryDTO.getTellerNo())
.eq(queryDTO.getDeptId() != null, CcdiEmployee::getDeptId, queryDTO.getDeptId())
.like(StringUtils.isNotEmpty(queryDTO.getIdCard()), CcdiEmployee::getIdCard, queryDTO.getIdCard())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), CcdiEmployee::getStatus, queryDTO.getStatus())
.orderByDesc(CcdiEmployee::getCreateTime);
return wrapper;
}
/**
* 验证员工数据
*/
private void validateEmployeeData(DpcEmployeeAddDTO addDTO, Boolean isUpdateSupport) {
private void validateEmployeeData(CcdiEmployeeAddDTO addDTO, Boolean isUpdateSupport) {
// 验证必填字段
if (StringUtils.isEmpty(addDTO.getName())) {
throw new RuntimeException("姓名不能为空");
@@ -303,15 +303,15 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
}
// 检查柜员号唯一性
LambdaQueryWrapper<DpcEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getTellerNo, addDTO.getTellerNo());
LambdaQueryWrapper<CcdiEmployee> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiEmployee::getTellerNo, addDTO.getTellerNo());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该柜员号已存在");
}
// 检查身份证号唯一性
wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcEmployee::getIdCard, addDTO.getIdCard());
wrapper.eq(CcdiEmployee::getIdCard, addDTO.getIdCard());
if (employeeMapper.selectCount(wrapper) > 0) {
throw new RuntimeException("该身份证号已存在");
}
@@ -325,12 +325,12 @@ public class DpcEmployeeServiceImpl implements IDpcEmployeeService {
/**
* 转换为VO对象
*/
private DpcEmployeeVO convertToVO(DpcEmployee employee) {
private CcdiEmployeeVO convertToVO(CcdiEmployee employee) {
if (employee == null) {
return null;
}
DpcEmployeeVO vo = new DpcEmployeeVO();
CcdiEmployeeVO vo = new CcdiEmployeeVO();
BeanUtils.copyProperties(employee, vo);
vo.setStatusDesc(EmployeeStatus.getDescByCode(employee.getStatus()));
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.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.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 org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -32,10 +32,10 @@ import java.util.stream.Collectors;
* @date 2026-01-27
*/
@Service
public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlacklistService {
public class CcdiIntermediaryBlacklistServiceImpl implements ICcdiIntermediaryBlacklistService {
@Resource
private DpcIntermediaryBlacklistMapper intermediaryMapper;
private CcdiIntermediaryBlacklistMapper intermediaryMapper;
/**
* 查询中介黑名单列表
@@ -44,9 +44,9 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单集合
*/
@Override
public List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<DpcIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
public List<CcdiIntermediaryBlacklistVO> selectIntermediaryList(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<CcdiIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
return list.stream().map(this::convertToVO).collect(Collectors.toList());
}
@@ -58,12 +58,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单VO分页结果
*/
@Override
public Page<DpcIntermediaryBlacklistVO> selectIntermediaryPage(Page<DpcIntermediaryBlacklist> page, DpcIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
Page<DpcIntermediaryBlacklist> resultPage = intermediaryMapper.selectPage(page, wrapper);
public Page<CcdiIntermediaryBlacklistVO> selectIntermediaryPage(Page<CcdiIntermediaryBlacklist> page, CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
Page<CcdiIntermediaryBlacklist> resultPage = intermediaryMapper.selectPage(page, wrapper);
// 转换为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.setPages(resultPage.getPages());
@@ -77,11 +77,11 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单Excel实体集合
*/
@Override
public List<DpcIntermediaryBlacklistExcel> selectIntermediaryListForExport(DpcIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<DpcIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
public List<CcdiIntermediaryBlacklistExcel> selectIntermediaryListForExport(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = buildQueryWrapper(queryDTO);
List<CcdiIntermediaryBlacklist> list = intermediaryMapper.selectList(wrapper);
return list.stream().map(entity -> {
DpcIntermediaryBlacklistExcel excel = new DpcIntermediaryBlacklistExcel();
CcdiIntermediaryBlacklistExcel excel = new CcdiIntermediaryBlacklistExcel();
BeanUtils.copyProperties(entity, excel);
return excel;
}).toList();
@@ -94,8 +94,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 中介黑名单VO
*/
@Override
public DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId) {
DpcIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
public CcdiIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId) {
CcdiIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
return convertToVO(intermediary);
}
@@ -107,8 +107,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
*/
@Override
@Deprecated
public int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int insertIntermediary(CcdiIntermediaryBlacklistAddDTO addDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary);
// 手动新增时数据来源设置为 MANUAL
intermediary.setDataSource("MANUAL");
@@ -124,8 +124,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public int insertPersonIntermediary(DpcIntermediaryPersonAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int insertPersonIntermediary(CcdiIntermediaryPersonAddDTO addDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary);
// 设置中介类型为个人
intermediary.setIntermediaryType("1");
@@ -141,8 +141,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public int insertEntityIntermediary(DpcIntermediaryEntityAddDTO addDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int insertEntityIntermediary(CcdiIntermediaryEntityAddDTO addDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary);
// 设置中介类型为机构
intermediary.setIntermediaryType("2");
@@ -161,8 +161,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
*/
@Override
@Deprecated
public int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int updateIntermediary(CcdiIntermediaryBlacklistEditDTO editDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary);
return intermediaryMapper.updateById(intermediary);
}
@@ -174,8 +174,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public int updatePersonIntermediary(DpcIntermediaryPersonEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int updatePersonIntermediary(CcdiIntermediaryPersonEditDTO editDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary);
// 设置中介类型为个人
intermediary.setIntermediaryType("1");
@@ -191,8 +191,8 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public int updateEntityIntermediary(DpcIntermediaryEntityEditDTO editDTO) {
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
public int updateEntityIntermediary(CcdiIntermediaryEntityEditDTO editDTO) {
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(editDTO, intermediary);
// 设置中介类型为机构
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.setIndivSubType(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.setCorpType(null);
intermediary.setCorpNature(null);
@@ -258,7 +258,7 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public String importIntermediary(List<DpcIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport) {
public String importIntermediary(List<CcdiIntermediaryBlacklistExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据";
}
@@ -268,16 +268,16 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (DpcIntermediaryBlacklistExcel excel : excelList) {
for (CcdiIntermediaryBlacklistExcel excel : excelList) {
try {
// 转换为AddDTO
DpcIntermediaryBlacklistAddDTO addDTO = new DpcIntermediaryBlacklistAddDTO();
CcdiIntermediaryBlacklistAddDTO addDTO = new CcdiIntermediaryBlacklistAddDTO();
BeanUtils.copyProperties(excel, addDTO);
// 验证数据
validateIntermediaryData(addDTO);
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
BeanUtils.copyProperties(addDTO, intermediary);
intermediaryMapper.insert(intermediary);
@@ -303,11 +303,11 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* 根据中介类型获取详情返回不同类型
*
* @param intermediaryId 中介ID
* @return 个人返回 DpcIntermediaryPersonDetailVO机构返回 DpcIntermediaryEntityDetailVO
* @return 个人返回 CcdiIntermediaryPersonDetailVO机构返回 CcdiIntermediaryEntityDetailVO
*/
@Override
public Object selectIntermediaryDetailById(Long intermediaryId) {
DpcIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
CcdiIntermediaryBlacklist intermediary = intermediaryMapper.selectById(intermediaryId);
if (intermediary == null) {
return null;
}
@@ -330,38 +330,38 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public String importPersonIntermediary(List<DpcIntermediaryPersonExcel> excelList, Boolean isUpdateSupport) {
public String importPersonIntermediary(List<CcdiIntermediaryPersonExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据";
}
// 批量处理先验证所有数据
List<DpcIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<DpcIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<CcdiIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<CcdiIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<String> errorMessages = new ArrayList<>();
// 批量查询已存在的记录用于唯一性校验或更新支持
Set<String> existingCertNos = new HashSet<>();
Map<String, Long> certNoToIdMap = new HashMap<>();
for (DpcIntermediaryPersonExcel excel : excelList) {
for (CcdiIntermediaryPersonExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCertificateNo())) {
existingCertNos.add(excel.getCertificateNo());
}
}
if (!existingCertNos.isEmpty()) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcIntermediaryBlacklist::getIntermediaryType, "1")
.in(DpcIntermediaryBlacklist::getCertificateNo, existingCertNos)
.select(DpcIntermediaryBlacklist::getIntermediaryId, DpcIntermediaryBlacklist::getCertificateNo);
List<DpcIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (DpcIntermediaryBlacklist existing : existingList) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiIntermediaryBlacklist::getIntermediaryType, "1")
.in(CcdiIntermediaryBlacklist::getCertificateNo, existingCertNos)
.select(CcdiIntermediaryBlacklist::getIntermediaryId, CcdiIntermediaryBlacklist::getCertificateNo);
List<CcdiIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (CcdiIntermediaryBlacklist existing : existingList) {
certNoToIdMap.put(existing.getCertificateNo(), existing.getIntermediaryId());
}
}
// 如果不是更新模式先进行唯一性校验
if (!isUpdateSupport) {
for (DpcIntermediaryPersonExcel excel : excelList) {
for (CcdiIntermediaryPersonExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCertificateNo()) && certNoToIdMap.containsKey(excel.getCertificateNo())) {
throw new RuntimeException("证件号 " + excel.getCertificateNo() + " 已存在,请勿重复导入");
}
@@ -370,13 +370,13 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
// 处理每条数据
for (int i = 0; i < excelList.size(); i++) {
DpcIntermediaryPersonExcel excel = excelList.get(i);
CcdiIntermediaryPersonExcel excel = excelList.get(i);
try {
// 验证数据
validatePersonIntermediaryData(excel);
// 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName());
intermediary.setCertificateNo(excel.getCertificateNo());
intermediary.setIntermediaryType("1");
@@ -448,38 +448,38 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
* @return 结果
*/
@Override
public String importEntityIntermediary(List<DpcIntermediaryEntityExcel> excelList, Boolean isUpdateSupport) {
public String importEntityIntermediary(List<CcdiIntermediaryEntityExcel> excelList, Boolean isUpdateSupport) {
if (excelList == null || excelList.isEmpty()) {
return "至少需要一条数据";
}
// 批量处理先验证所有数据
List<DpcIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<DpcIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<CcdiIntermediaryBlacklist> toInsertList = new ArrayList<>();
List<CcdiIntermediaryBlacklist> toUpdateList = new ArrayList<>();
List<String> errorMessages = new ArrayList<>();
// 批量查询已存在的记录用于唯一性校验或更新支持
Set<String> existingCreditCodes = new HashSet<>();
Map<String, Long> creditCodeToIdMap = new HashMap<>();
for (DpcIntermediaryEntityExcel excel : excelList) {
for (CcdiIntermediaryEntityExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCorpCreditCode())) {
existingCreditCodes.add(excel.getCorpCreditCode());
}
}
if (!existingCreditCodes.isEmpty()) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DpcIntermediaryBlacklist::getIntermediaryType, "2")
.in(DpcIntermediaryBlacklist::getCorpCreditCode, existingCreditCodes)
.select(DpcIntermediaryBlacklist::getIntermediaryId, DpcIntermediaryBlacklist::getCorpCreditCode);
List<DpcIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (DpcIntermediaryBlacklist existing : existingList) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CcdiIntermediaryBlacklist::getIntermediaryType, "2")
.in(CcdiIntermediaryBlacklist::getCorpCreditCode, existingCreditCodes)
.select(CcdiIntermediaryBlacklist::getIntermediaryId, CcdiIntermediaryBlacklist::getCorpCreditCode);
List<CcdiIntermediaryBlacklist> existingList = intermediaryMapper.selectList(wrapper);
for (CcdiIntermediaryBlacklist existing : existingList) {
creditCodeToIdMap.put(existing.getCorpCreditCode(), existing.getIntermediaryId());
}
}
// 如果不是更新模式先进行唯一性校验
if (!isUpdateSupport) {
for (DpcIntermediaryEntityExcel excel : excelList) {
for (CcdiIntermediaryEntityExcel excel : excelList) {
if (StringUtils.isNotEmpty(excel.getCorpCreditCode()) && creditCodeToIdMap.containsKey(excel.getCorpCreditCode())) {
throw new RuntimeException("统一社会信用代码 " + excel.getCorpCreditCode() + " 已存在,请勿重复导入");
}
@@ -490,13 +490,13 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
// 处理每条数据
for (int i = 0; i < excelList.size(); i++) {
DpcIntermediaryEntityExcel excel = excelList.get(i);
CcdiIntermediaryEntityExcel excel = excelList.get(i);
try {
// 验证数据
validateEntityIntermediaryData(excel);
// 转换为实体
DpcIntermediaryBlacklist intermediary = new DpcIntermediaryBlacklist();
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
intermediary.setName(excel.getName());
// 对于机构中介使用统一社会信用代码作为证件号
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())) {
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())) {
throw new RuntimeException("机构名称不能为空");
}
@@ -602,12 +602,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/**
* 转换为个人详情 VO
*/
private DpcIntermediaryPersonDetailVO convertToPersonDetailVO(DpcIntermediaryBlacklist intermediary) {
private CcdiIntermediaryPersonDetailVO convertToPersonDetailVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) {
return null;
}
DpcIntermediaryPersonDetailVO vo = new DpcIntermediaryPersonDetailVO();
CcdiIntermediaryPersonDetailVO vo = new CcdiIntermediaryPersonDetailVO();
// 复制基础字段
vo.setIntermediaryId(intermediary.getIntermediaryId());
vo.setName(intermediary.getName());
@@ -646,12 +646,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/**
* 转换为机构详情 VO
*/
private DpcIntermediaryEntityDetailVO convertToEntityDetailVO(DpcIntermediaryBlacklist intermediary) {
private CcdiIntermediaryEntityDetailVO convertToEntityDetailVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) {
return null;
}
DpcIntermediaryEntityDetailVO vo = new DpcIntermediaryEntityDetailVO();
CcdiIntermediaryEntityDetailVO vo = new CcdiIntermediaryEntityDetailVO();
// 复制基础字段
vo.setIntermediaryId(intermediary.getIntermediaryId());
vo.setName(intermediary.getName());
@@ -693,20 +693,20 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/**
* 构建查询条件
*/
private LambdaQueryWrapper<DpcIntermediaryBlacklist> buildQueryWrapper(DpcIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<DpcIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), DpcIntermediaryBlacklist::getName, queryDTO.getName())
.like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), DpcIntermediaryBlacklist::getCertificateNo, queryDTO.getCertificateNo())
.eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), DpcIntermediaryBlacklist::getIntermediaryType, queryDTO.getIntermediaryType())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), DpcIntermediaryBlacklist::getStatus, queryDTO.getStatus())
.orderByDesc(DpcIntermediaryBlacklist::getCreateTime);
private LambdaQueryWrapper<CcdiIntermediaryBlacklist> buildQueryWrapper(CcdiIntermediaryBlacklistQueryDTO queryDTO) {
LambdaQueryWrapper<CcdiIntermediaryBlacklist> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiIntermediaryBlacklist::getName, queryDTO.getName())
.like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), CcdiIntermediaryBlacklist::getCertificateNo, queryDTO.getCertificateNo())
.eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), CcdiIntermediaryBlacklist::getIntermediaryType, queryDTO.getIntermediaryType())
.eq(StringUtils.isNotEmpty(queryDTO.getStatus()), CcdiIntermediaryBlacklist::getStatus, queryDTO.getStatus())
.orderByDesc(CcdiIntermediaryBlacklist::getCreateTime);
return wrapper;
}
/**
* 验证中介数据
*/
private void validateIntermediaryData(DpcIntermediaryBlacklistAddDTO addDTO) {
private void validateIntermediaryData(CcdiIntermediaryBlacklistAddDTO addDTO) {
// 验证必填字段
if (StringUtils.isEmpty(addDTO.getName())) {
throw new RuntimeException("姓名/机构名称不能为空");
@@ -725,12 +725,12 @@ public class DpcIntermediaryBlacklistServiceImpl implements IDpcIntermediaryBlac
/**
* 转换为VO对象
*/
private DpcIntermediaryBlacklistVO convertToVO(DpcIntermediaryBlacklist intermediary) {
private CcdiIntermediaryBlacklistVO convertToVO(CcdiIntermediaryBlacklist intermediary) {
if (intermediary == null) {
return null;
}
DpcIntermediaryBlacklistVO vo = new DpcIntermediaryBlacklistVO();
CcdiIntermediaryBlacklistVO vo = new CcdiIntermediaryBlacklistVO();
BeanUtils.copyProperties(intermediary, vo);
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.write.handler.WriteHandler;
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 lombok.AccessLevel;
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.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.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.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.metadata.holder.WriteSheetHolder;

View File

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

View File

@@ -2,11 +2,11 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"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 INTO dpc_intermediary_blacklist (
INSERT INTO ccdi_intermediary_blacklist (
name,
certificate_no,
intermediary_type,
@@ -89,7 +89,7 @@
<!-- 批量更新中介黑名单数据 -->
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
UPDATE dpc_intermediary_blacklist
UPDATE ccdi_intermediary_blacklist
<set>
<if test="item.name != null">name = #{item.name},</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) {
return request({
url: '/dpc/employee/list',
url: '/ccdi/employee/list',
method: 'get',
params: query
})
@@ -12,7 +12,7 @@ export function listEmployee(query) {
// 查询员工详细
export function getEmployee(employeeId) {
return request({
url: '/dpc/employee/' + employeeId,
url: '/ccdi/employee/' + employeeId,
method: 'get'
})
}
@@ -20,7 +20,7 @@ export function getEmployee(employeeId) {
// 新增员工
export function addEmployee(data) {
return request({
url: '/dpc/employee',
url: '/ccdi/employee',
method: 'post',
data: data
})
@@ -29,7 +29,7 @@ export function addEmployee(data) {
// 修改员工
export function updateEmployee(data) {
return request({
url: '/dpc/employee',
url: '/ccdi/employee',
method: 'put',
data: data
})
@@ -38,7 +38,7 @@ export function updateEmployee(data) {
// 删除员工
export function delEmployee(employeeIds) {
return request({
url: '/dpc/employee/' + employeeIds,
url: '/ccdi/employee/' + employeeIds,
method: 'delete'
})
}
@@ -46,7 +46,7 @@ export function delEmployee(employeeIds) {
// 下载导入模板
export function importTemplate() {
return request({
url: '/dpc/employee/importTemplate',
url: '/ccdi/employee/importTemplate',
method: 'post'
})
}
@@ -54,7 +54,7 @@ export function importTemplate() {
// 导入员工
export function importData(data, updateSupport) {
return request({
url: '/dpc/employee/importData?updateSupport=' + updateSupport,
url: '/ccdi/employee/importData?updateSupport=' + updateSupport,
method: 'post',
data: data
})

View File

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

View File

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

View File

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

View File

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

View File

@@ -52,7 +52,7 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['dpc:employee:add']"
v-hasPermi="['ccdi:employee:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
@@ -62,7 +62,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['dpc:employee:import']"
v-hasPermi="['ccdi:employee:import']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -93,21 +93,21 @@
type="text"
icon="el-icon-view"
@click="handleDetail(scope.row)"
v-hasPermi="['dpc:employee:query']"
v-hasPermi="['ccdi:employee:query']"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['dpc:employee:edit']"
v-hasPermi="['ccdi:employee:edit']"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['dpc:employee:remove']"
v-hasPermi="['ccdi:employee:remove']"
>删除</el-button>
</template>
</el-table-column>
@@ -315,7 +315,7 @@
</template>
<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 {getToken} from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
@@ -403,7 +403,7 @@ export default {
//
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"
icon="el-icon-edit"
@click="$emit('update', scope.row)"
v-hasPermi="['dpc:intermediary:edit']"
v-hasPermi="['ccdi:intermediary:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="$emit('delete', scope.row)"
v-hasPermi="['dpc:intermediary:remove']"
v-hasPermi="['ccdi:intermediary:remove']"
>删除</el-button>
</template>
</el-table-column>

View File

@@ -118,9 +118,9 @@ export default {
const baseUrl = process.env.VUE_APP_BASE_API;
const updateSupport = this.formData.updateSupport ? 1 : 0;
if (this.formData.importType === 'person') {
return `${baseUrl}/dpc/intermediary/importPersonData?updateSupport=${updateSupport}`;
return `${baseUrl}/ccdi/intermediary/importPersonData?updateSupport=${updateSupport}`;
} 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"
size="mini"
@click="handleAdd"
v-hasPermi="['dpc:intermediary:add']"
v-hasPermi="['ccdi:intermediary:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
@@ -26,7 +26,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['dpc:intermediary:import']"
v-hasPermi="['ccdi:intermediary:import']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -86,7 +86,7 @@ import {
listIntermediary,
updateEntityIntermediary,
updatePersonIntermediary
} from "@/api/dpcIntermediary";
} from "@/api/ccdiIntermediary";
import {
getCertTypeOptions,
getCorpNatureOptions,
@@ -95,7 +95,7 @@ import {
getIndivSubTypeOptions,
getIndivTypeOptions,
getRelationTypeOptions
} from "@/api/dpcEnum";
} from "@/api/ccdiEnum";
import SearchForm from "./components/SearchForm";
import DataTable from "./components/DataTable";
import EditDialog from "./components/EditDialog";

View File

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

View File

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

View File

@@ -8,10 +8,10 @@
-- ----------------------------
-- 1. 创建员工信息表
-- ----------------------------
DROP TABLE IF EXISTS `dpc_employee_relative`;
DROP TABLE IF EXISTS `dpc_employee`;
DROP TABLE IF EXISTS `ccdi_employee_relative`;
DROP TABLE IF EXISTS `ccdi_employee`;
CREATE TABLE `dpc_employee` (
CREATE TABLE `ccdi_employee` (
`employee_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '员工ID',
`name` VARCHAR(100) NOT NULL COMMENT '姓名',
`teller_no` VARCHAR(50) NOT NULL COMMENT '柜员号',
@@ -34,7 +34,7 @@ CREATE TABLE `dpc_employee` (
-- ----------------------------
-- 2. 创建员工亲属表
-- ----------------------------
CREATE TABLE `dpc_employee_relative` (
CREATE TABLE `ccdi_employee_relative` (
`relative_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '亲属ID',
`employee_id` BIGINT NOT NULL COMMENT '员工ID',
`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 (103, 2, '离职', '1', 'dpc_employee_status', '', 'danger', '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', '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 (105, 2, '父亲', '父亲', 'dpc_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 (107, 4, '子女', '子女', 'dpc_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 (109, 6, '其他', '其他', '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, '父亲', '父亲', 'ccdi_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, '子女', '子女', 'ccdi_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, '其他', '其他', 'ccdi_relative_relationship', '', '', 'N', '0', 'admin', sysdate(), '', NULL, '其他关系');

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