变更项目缩写

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

@@ -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 实现员工和亲属数据的关联逻辑(通过身份证号)