# 员工管理模块

## 概述
员工管理模块提供完整的员工信息管理功能，包括员工库管理、员工信息维护、员工组管理和数据验证等功能。

## 功能模块

### 1. 员工库管理 (library.vue)
管理员工库的创建、修改和删除。

**主要功能：**
- 创建员工库
- 修改员工库信息
- 删除员工库
- 查看员工库列表
- 员工库状态管理

**路由路径：** `/digitalCredit/employee/library`

### 2. 员工信息管理 (index.vue)
管理员工的详细信息，支持多种导入方式。

**主要功能：**
- 员工信息的增删改查
- ERP文件导入（Excel格式）
- OCR识别导入（图片识别）
- 员工信息导出
- 多工资单位管理
- 员工状态管理（在职/离职/临时）

**路由路径：** `/digitalCredit/employee/index`

**支持的操作：**
- 新增员工：手动录入员工信息
- 导入ERP：从Excel文件批量导入员工数据
- OCR识别：通过图片识别自动提取员工信息
- 导出数据：导出员工信息为Excel文件
- 查看详情：查看员工完整信息
- 修改信息：更新员工信息
- 删除员工：删除员工记录

### 3. 员工组管理 (group.vue)
管理员工分组，支持员工的组织和分配。

**主要功能：**
- 创建员工组
- 修改员工组信息
- 删除员工组
- 添加组成员
- 移除组成员
- 查看组成员列表
- 组成员搜索

**路由路径：** `/digitalCredit/employee/group`

**界面布局：**
- 左侧：员工组列表
- 右侧：选中组的成员管理

### 4. 数据验证 (validate.vue)
验证员工数据的完整性和准确性。

**主要功能：**
- 数据完整性验证
- 数据格式验证（身份证、手机号、银行卡号）
- 重复数据检查
- 必填字段检查
- 数据质量分析
- 临时员工同步
- 验证报告导出

**路由路径：** `/digitalCredit/employee/validate`

**验证类型：**
- 数据完整性验证：检查必填字段是否完整
- 数据格式验证：验证身份证、手机号等格式
- 重复数据验证：检查重复的员工记录
- 全面验证：执行所有验证规则

**验证结果：**
- 总记录数统计
- 有效/无效记录统计
- 通过率计算
- 错误详情列表
- 重复数据列表
- 数据质量评分

## API接口

所有API接口定义在 `@/api/credit/employee.js` 中：

### 员工库接口
- `listEmployeeLibraries(query)` - 获取员工库列表
- `createEmployeeLibrary(data)` - 创建员工库
- `updateEmployeeLibrary(data)` - 更新员工库
- `deleteEmployeeLibrary(id)` - 删除员工库

### 员工信息接口
- `listEmployees(query)` - 获取员工列表
- `getEmployee(id)` - 获取员工详情
- `createEmployee(data)` - 创建员工
- `updateEmployee(data)` - 更新员工
- `deleteEmployee(id)` - 删除员工
- `importErpFile(data)` - 导入ERP文件
- `extractEmployeeByOcr(data)` - OCR识别
- `exportEmployees(query)` - 导出员工数据

### 员工组接口
- `listEmployeeGroups(query)` - 获取员工组列表
- `createEmployeeGroup(data)` - 创建员工组
- `updateEmployeeGroup(data)` - 更新员工组
- `deleteEmployeeGroup(id)` - 删除员工组
- `getGroupMembers(groupId)` - 获取组成员
- `assignEmployeesToGroup(groupId, employeeIds)` - 分配员工到组
- `removeEmployeesFromGroup(groupId, employeeIds)` - 从组移除员工

### 数据验证接口
- `validateEmployeeData(data)` - 验证员工数据
- `syncTempEmployees(employeeIds)` - 同步临时员工

## 权限控制

模块使用以下权限标识：
- `credit:employee:add` - 新增权限
- `credit:employee:edit` - 修改权限
- `credit:employee:remove` - 删除权限
- `credit:employee:query` - 查询权限
- `credit:employee:import` - 导入权限
- `credit:employee:export` - 导出权限
- `credit:employee:ocr` - OCR识别权限

## 数据模型

### 员工库 (EmployeeLibrary)
```javascript
{
  libraryId: String,      // 员工库ID
  libraryName: String,    // 员工库名称
  description: String,    // 描述
  employeeCount: Number,  // 员工数量
  status: String,         // 状态（0-禁用，1-启用）
  createTime: Date,       // 创建时间
  updateTime: Date        // 更新时间
}
```

### 员工信息 (EmployeeInfo)
```javascript
{
  employeeId: String,      // 员工ID
  libraryId: String,       // 所属员工库ID
  employeeNumber: String,  // 员工编号
  name: String,            // 姓名
  idCard: String,          // 身份证号
  phoneNumber: String,     // 手机号
  bankAccount: String,     // 银行卡号
  department: String,      // 部门
  position: String,        // 职位
  hireDate: Date,          // 入职日期
  status: String,          // 状态（ACTIVE-在职，INACTIVE-离职，TEMPORARY-临时）
  salaryUnits: Array,      // 工资单位列表
  createTime: Date,        // 创建时间
  updateTime: Date         // 更新时间
}
```

### 员工组 (EmployeeGroup)
```javascript
{
  groupId: String,         // 员工组ID
  groupName: String,       // 组名称
  description: String,     // 描述
  memberCount: Number,     // 成员数量
  createTime: Date,        // 创建时间
  updateTime: Date         // 更新时间
}
```

## 使用说明

### 1. 创建员工库
1. 进入员工库管理页面
2. 点击"新增"按钮
3. 填写员工库名称和描述
4. 选择状态（启用/禁用）
5. 点击"确定"保存

### 2. 导入员工数据
**方式一：ERP文件导入**
1. 进入员工信息管理页面
2. 点击"导入ERP"按钮
3. 选择员工库
4. 上传Excel文件
5. 系统自动解析并导入数据

**方式二：OCR识别导入**
1. 进入员工信息管理页面
2. 点击"OCR识别"按钮
3. 选择员工库
4. 上传员工信息图片
5. 系统自动识别并填充表单
6. 确认信息后保存

### 3. 管理员工组
1. 进入员工组管理页面
2. 左侧创建或选择员工组
3. 右侧添加或移除组成员
4. 支持按条件搜索员工进行分配

### 4. 验证员工数据
1. 进入数据验证页面
2. 选择员工库
3. 选择验证类型和规则
4. 点击"开始验证"
5. 查看验证结果和错误详情
6. 可导出验证报告
7. 对临时员工进行同步操作

## 注意事项

1. **数据安全**：员工敏感信息（身份证、银行卡号等）需要加密存储
2. **权限控制**：确保用户具有相应权限才能执行操作
3. **数据验证**：导入数据前建议先进行数据验证
4. **临时员工**：OCR识别的员工默认为临时状态，需验证后同步
5. **文件格式**：
   - ERP导入支持 .xlsx 和 .xls 格式
   - OCR识别支持 .jpg、.jpeg 和 .png 格式
6. **批量操作**：删除和移除操作不可恢复，请谨慎操作

## 技术栈

- Vue 3
- Element Plus
- Axios
- Splitpanes（分栏布局）

## 后续优化建议

1. 添加员工信息批量编辑功能
2. 支持更多文件格式的导入
3. 增强OCR识别准确率
4. 添加员工信息变更历史记录
5. 实现员工数据的版本控制
6. 添加数据导入模板下载功能
7. 支持员工照片上传和管理
8. 实现员工信息的审批流程
