2026-02-09 14:28:25 +08:00
|
|
|
|
# 员工信息表重命名设计文档
|
|
|
|
|
|
|
|
|
|
|
|
**创建日期**: 2026-02-09
|
|
|
|
|
|
**作者**: Claude
|
|
|
|
|
|
**版本**: 1.0
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 概述
|
|
|
|
|
|
|
|
|
|
|
|
### 1.1 变更目的
|
|
|
|
|
|
|
|
|
|
|
|
将员工信息表 `ccdi_employee` 重命名为 `ccdi_base_staff`,并同步更新所有相关的 Java 类名、字段名和权限字符,保持代码命名的一致性和可读性。
|
|
|
|
|
|
|
|
|
|
|
|
### 1.2 变更范围
|
|
|
|
|
|
|
|
|
|
|
|
- **数据库**: 表名、字段名、索引
|
|
|
|
|
|
- **后端**: Entity、DTO、VO、Mapper、Service、Controller
|
|
|
|
|
|
- **前端**: API 调用、页面组件、权限指令
|
|
|
|
|
|
- **权限**: 菜单权限、按钮权限
|
|
|
|
|
|
|
|
|
|
|
|
### 1.3 环境说明
|
|
|
|
|
|
|
|
|
|
|
|
- 开发环境,无生产数据
|
|
|
|
|
|
- 无需数据迁移
|
|
|
|
|
|
- 变更风险可控
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 数据库变更
|
|
|
|
|
|
|
|
|
|
|
|
### 2.1 表名变更
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 表重命名(已完成)
|
|
|
|
|
|
RENAME TABLE ccdi_employee TO ccdi_base_staff;
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.2 字段变更
|
|
|
|
|
|
|
2026-03-03 16:14:16 +08:00
|
|
|
|
| 原字段名 | 新字段名 | 类型 | 说明 |
|
|
|
|
|
|
|-------------|--------------|-------------|----------|
|
|
|
|
|
|
| employee_id | **staff_id** | BIGINT(20) | 主键,员工ID |
|
|
|
|
|
|
| teller_no | **删除** | VARCHAR(50) | 柜员号字段已移除 |
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
### 2.3 保持不变的字段
|
|
|
|
|
|
|
|
|
|
|
|
以下字段保持不变:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- `name` VARCHAR(100) - 姓名
|
|
|
|
|
|
- `dept_id` BIGINT(20) - 所属部门ID
|
|
|
|
|
|
- `id_card` VARCHAR(18) - 身份证号
|
|
|
|
|
|
- `phone` VARCHAR(11) - 电话
|
|
|
|
|
|
- `hire_date` DATE - 入职时间
|
|
|
|
|
|
- `status` CHAR(1) - 状态
|
|
|
|
|
|
- `create_by`, `create_time`, `update_by`, `update_time` - 审计字段
|
|
|
|
|
|
|
|
|
|
|
|
### 2.4 索引变更
|
|
|
|
|
|
|
|
|
|
|
|
- 主键索引:`PRIMARY KEY (staff_id)`
|
|
|
|
|
|
- 普通索引:`idx_dept_id`, `idx_status`
|
|
|
|
|
|
- 删除 `uk_teller_no` 唯一索引(已随字段删除)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 后端代码变更
|
|
|
|
|
|
|
|
|
|
|
|
### 3.1 Entity 层
|
|
|
|
|
|
|
|
|
|
|
|
**类名变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
CcdiEmployee.java → CcdiBaseStaff.java
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**字段变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```java
|
|
|
|
|
|
// 主键字段
|
|
|
|
|
|
private Long employeeId; → private Long staffId;
|
|
|
|
|
|
|
|
|
|
|
|
// 删除字段
|
|
|
|
|
|
- private String tellerNo;
|
|
|
|
|
|
|
|
|
|
|
|
// @TableName 注解
|
|
|
|
|
|
@TableName("ccdi_employee") → @TableName("ccdi_base_staff")
|
|
|
|
|
|
|
|
|
|
|
|
// @TableId 注解
|
|
|
|
|
|
@TableId(type = IdType.INPUT) // 保持不变
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.2 DTO/VO 层
|
|
|
|
|
|
|
|
|
|
|
|
所有 DTO/VO 类需要同步重命名:
|
|
|
|
|
|
|
2026-03-03 16:14:16 +08:00
|
|
|
|
| 原类名 | 新类名 |
|
|
|
|
|
|
|----------------------|-----------------------|
|
|
|
|
|
|
| CcdiEmployeeAddDTO | CcdiBaseStaffAddDTO |
|
|
|
|
|
|
| CcdiEmployeeEditDTO | CcdiBaseStaffEditDTO |
|
2026-02-09 14:28:25 +08:00
|
|
|
|
| CcdiEmployeeQueryDTO | CcdiBaseStaffQueryDTO |
|
2026-03-03 16:14:16 +08:00
|
|
|
|
| CcdiEmployeeVO | CcdiBaseStaffVO |
|
|
|
|
|
|
| CcdiEmployeeExcel | CcdiBaseStaffExcel |
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
字段变更:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- `employeeId` → `staffId`
|
|
|
|
|
|
- 删除 `tellerNo`
|
|
|
|
|
|
|
|
|
|
|
|
### 3.3 Mapper 层
|
|
|
|
|
|
|
|
|
|
|
|
**接口变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
CcdiEmployeeMapper.java → CcdiBaseStaffMapper.java
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**XML 文件变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
CcdiEmployeeMapper.xml → CcdiBaseStaffMapper.xml
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**SQL 语句更新**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```xml
|
|
|
|
|
|
<!-- 所有 SQL 中的字段名更新 -->
|
|
|
|
|
|
employee_id → staff_id
|
|
|
|
|
|
teller_no → 删除相关查询和条件
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ResultMap 更新 -->
|
|
|
|
|
|
<id property="employeeId" column="employee_id"/>
|
|
|
|
|
|
→
|
|
|
|
|
|
<id property="staffId" column="staff_id"/>
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.4 Service 层
|
|
|
|
|
|
|
|
|
|
|
|
**接口和实现类变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
ICcdiEmployeeService.java → ICcdiBaseStaffService.java
|
|
|
|
|
|
CcdiEmployeeServiceImpl.java → CcdiBaseStaffServiceImpl.java
|
|
|
|
|
|
ICcdiEmployeeImportService.java → ICcdiBaseStaffImportService.java
|
|
|
|
|
|
CcdiEmployeeImportServiceImpl → CcdiBaseStaffImportServiceImpl
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
方法参数和返回值类型同步更新。
|
|
|
|
|
|
|
|
|
|
|
|
### 3.5 Controller 层
|
|
|
|
|
|
|
|
|
|
|
|
**类名变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
CcdiEmployeeController.java → CcdiBaseStaffController.java
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**API 路径变更**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```java
|
|
|
|
|
|
// 所有接口路径更新
|
|
|
|
|
|
@PreAuthorize("@ss.hasPermi('ccdi:employee:list')") → @PreAuthorize("@ss.hasPermi('ccdi:baseStaff:list')")
|
|
|
|
|
|
@RequestMapping("/ccdi/employee") → @RequestMapping("/ccdi/baseStaff")
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**接口端点**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- `GET /ccdi/baseStaff/list` - 列表查询
|
|
|
|
|
|
- `GET /ccdi/baseStaff/{staffId}` - 详情查询
|
|
|
|
|
|
- `POST /ccdi/baseStaff` - 新增
|
|
|
|
|
|
- `PUT /ccdi/baseStaff` - 修改
|
|
|
|
|
|
- `DELETE /ccdi/baseStaff/{staffIds}` - 删除
|
|
|
|
|
|
- `POST /ccdi/baseStaff/importData` - 导入
|
|
|
|
|
|
- `POST /ccdi/baseStaff/export` - 导出
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 前端代码变更
|
|
|
|
|
|
|
|
|
|
|
|
### 4.1 API 层
|
|
|
|
|
|
|
|
|
|
|
|
**文件更新**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```javascript
|
|
|
|
|
|
// API 请求路径更新
|
|
|
|
|
|
url: '/ccdi/employee/list' → url: '/ccdi/baseStaff/list'
|
|
|
|
|
|
|
|
|
|
|
|
// 字段名更新
|
|
|
|
|
|
employeeId → staffId
|
|
|
|
|
|
tellerNo → 删除相关引用
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.2 页面组件
|
|
|
|
|
|
|
|
|
|
|
|
**组件文件**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- 员工管理页面组件重命名
|
|
|
|
|
|
- 所有数据绑定的字段名更新
|
|
|
|
|
|
- 表单验证规则更新
|
|
|
|
|
|
- 表格列定义更新
|
|
|
|
|
|
|
|
|
|
|
|
**字段映射**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```javascript
|
|
|
|
|
|
// 数据绑定
|
|
|
|
|
|
employeeId → staffId
|
|
|
|
|
|
tellerNo → 删除
|
|
|
|
|
|
|
|
|
|
|
|
// 表格列 prop
|
|
|
|
|
|
:prop="'employeeId'" → :prop="'staffId'"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.3 路由配置
|
|
|
|
|
|
|
|
|
|
|
|
如需更新路由路径:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```javascript
|
|
|
|
|
|
{
|
|
|
|
|
|
path: 'baseStaff',
|
|
|
|
|
|
component: () => import('@/views/ccdi/baseStaff/index')
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 权限字符变更
|
|
|
|
|
|
|
|
|
|
|
|
### 5.1 后端权限注解
|
|
|
|
|
|
|
|
|
|
|
|
所有 `@PreAuthorize` 注解中的权限字符需要更新:
|
|
|
|
|
|
|
2026-03-03 16:14:16 +08:00
|
|
|
|
| 原权限字符 | 新权限字符 |
|
|
|
|
|
|
|----------------------|-----------------------|
|
|
|
|
|
|
| ccdi:employee:list | ccdi:baseStaff:list |
|
|
|
|
|
|
| ccdi:employee:query | ccdi:baseStaff:query |
|
|
|
|
|
|
| ccdi:employee:add | ccdi:baseStaff:add |
|
|
|
|
|
|
| ccdi:employee:edit | ccdi:baseStaff:edit |
|
2026-02-09 14:28:25 +08:00
|
|
|
|
| ccdi:employee:remove | ccdi:baseStaff:remove |
|
|
|
|
|
|
| ccdi:employee:export | ccdi:baseStaff:export |
|
|
|
|
|
|
| ccdi:employee:import | ccdi:baseStaff:import |
|
|
|
|
|
|
|
|
|
|
|
|
### 5.2 前端权限指令
|
|
|
|
|
|
|
|
|
|
|
|
所有权限指令更新:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
```vue
|
|
|
|
|
|
<!-- 示例 -->
|
|
|
|
|
|
v-hasPermi="['ccdi:employee:add']" → v-hasPermi="['ccdi:baseStaff:add']"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5.3 数据库菜单权限表
|
|
|
|
|
|
|
|
|
|
|
|
需要在 `sys_menu` 表中更新:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- 菜单权限标识:`ccdi:employee:list` → `ccdi:baseStaff:list`
|
|
|
|
|
|
- 按钮权限:`ccdi:employee:add/edit/remove/export/import` → `ccdi:baseStaff:add/edit/remove/export/import`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 6. 测试验证方案
|
|
|
|
|
|
|
|
|
|
|
|
### 6.1 后端接口测试
|
|
|
|
|
|
|
|
|
|
|
|
使用测试脚本验证所有 API 端点:
|
|
|
|
|
|
|
|
|
|
|
|
1. **基础 CRUD 测试**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 列表查询:验证分页、筛选功能
|
|
|
|
|
|
- 详情查询:验证 `staffId` 参数
|
|
|
|
|
|
- 新增功能:验证字段必填项
|
|
|
|
|
|
- 修改功能:验证更新操作
|
|
|
|
|
|
- 删除功能:验证批量删除
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
2. **字段验证测试**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- `staffId` 字段正常返回
|
|
|
|
|
|
- `tellerNo` 字段不存在
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
3. **权限测试**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 不同角色访问接口验证权限控制
|
|
|
|
|
|
- 验证权限字符生效
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
### 6.2 前端功能测试
|
|
|
|
|
|
|
|
|
|
|
|
1. **页面功能**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 列表页面正常加载
|
|
|
|
|
|
- 搜索筛选功能正常
|
|
|
|
|
|
- 新增/编辑对话框正常
|
|
|
|
|
|
- 删除确认功能正常
|
|
|
|
|
|
- 分页功能正常
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
2. **导入导出测试**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- Excel 模板下载(字段为 `staffId`)
|
|
|
|
|
|
- 数据导入功能
|
|
|
|
|
|
- 数据导出功能
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
3. **权限测试**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 按钮显示/隐藏根据权限控制
|
|
|
|
|
|
- 无权限时提示正确
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
### 6.3 数据库验证
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 验证表结构
|
|
|
|
|
|
DESC ccdi_base_staff;
|
|
|
|
|
|
|
|
|
|
|
|
-- 验证主键
|
|
|
|
|
|
SHOW INDEX FROM ccdi_base_staff WHERE Key_name = 'PRIMARY';
|
|
|
|
|
|
|
|
|
|
|
|
-- 验证数据量
|
|
|
|
|
|
SELECT COUNT(*) FROM ccdi_base_staff;
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 7. 实施步骤
|
|
|
|
|
|
|
|
|
|
|
|
### 7.1 后端实施顺序
|
|
|
|
|
|
|
|
|
|
|
|
1. 更新 Entity 层(CcdiBaseStaff)
|
|
|
|
|
|
2. 更新 DTO/VO 层
|
|
|
|
|
|
3. 更新 Mapper 层(接口和 XML)
|
|
|
|
|
|
4. 更新 Service 层(接口和实现)
|
|
|
|
|
|
5. 更新 Controller 层(包括权限字符)
|
|
|
|
|
|
6. 编译验证
|
|
|
|
|
|
|
|
|
|
|
|
### 7.2 前端实施顺序
|
|
|
|
|
|
|
|
|
|
|
|
1. 更新 API 层
|
|
|
|
|
|
2. 更新页面组件
|
|
|
|
|
|
3. 更新路由配置(如有)
|
|
|
|
|
|
4. 更新权限指令
|
|
|
|
|
|
5. 本地运行验证
|
|
|
|
|
|
|
|
|
|
|
|
### 7.3 数据库同步
|
|
|
|
|
|
|
|
|
|
|
|
1. 更新菜单权限表(sys_menu)
|
|
|
|
|
|
2. 验证表结构和索引
|
|
|
|
|
|
3. 验证权限配置
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 8. 回滚方案
|
|
|
|
|
|
|
|
|
|
|
|
如需回滚,执行以下步骤:
|
|
|
|
|
|
|
|
|
|
|
|
1. **数据库回滚**
|
|
|
|
|
|
```sql
|
|
|
|
|
|
RENAME TABLE ccdi_base_staff TO ccdi_employee;
|
|
|
|
|
|
-- 恢复 teller_no 字段(如有需要)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. **代码回滚**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 使用 Git 回退到变更前的提交
|
|
|
|
|
|
- 或手动恢复所有类名和字段名
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
3. **权限回滚**
|
2026-03-03 16:14:16 +08:00
|
|
|
|
- 恢复 sys_menu 表中的权限字符
|
2026-02-09 14:28:25 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 9. 附录
|
|
|
|
|
|
|
|
|
|
|
|
### 9.1 影响文件清单
|
|
|
|
|
|
|
|
|
|
|
|
**后端 Java 文件(约 25 个)**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- Entity: CcdiEmployee.java
|
|
|
|
|
|
- DTO/VO: AddDTO, EditDTO, QueryDTO, VO, Excel
|
|
|
|
|
|
- Mapper: CcdiEmployeeMapper.java/xml
|
|
|
|
|
|
- Service: ICcdiEmployeeService, ServiceImpl
|
|
|
|
|
|
- ImportService: ICcdiEmployeeImportService, ImportServiceImpl
|
|
|
|
|
|
- Controller: CcdiEmployeeController
|
|
|
|
|
|
|
|
|
|
|
|
**前端文件**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- API: ccdiEmployee.js
|
|
|
|
|
|
- Views: 员工管理相关组件
|
|
|
|
|
|
- Router: 路由配置(如有)
|
|
|
|
|
|
|
|
|
|
|
|
**SQL 文件(约 6 个)**:
|
2026-03-03 16:14:16 +08:00
|
|
|
|
|
2026-02-09 14:28:25 +08:00
|
|
|
|
- dpc_employee.sql
|
|
|
|
|
|
- fix_charset.sql
|
|
|
|
|
|
- migration/employee_org_no_to_dept_id.sql
|
|
|
|
|
|
- modify_employee_id_to_teller_no.sql
|
|
|
|
|
|
- 等相关脚本
|
|
|
|
|
|
|
|
|
|
|
|
### 9.2 关键注意事项
|
|
|
|
|
|
|
|
|
|
|
|
1. **字段删除**: `teller_no` 字段已删除,需确认无其他代码引用
|
|
|
|
|
|
2. **主键变更**: `employee_id` → `staff_id`,需注意自增策略变化
|
|
|
|
|
|
3. **权限同步**: 确保数据库菜单表与代码权限字符一致
|
|
|
|
|
|
4. **测试覆盖**: 全面测试导入导出功能的字段映射
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**文档状态**: 已完成
|
|
|
|
|
|
**审核状态**: 待审核
|