# 企业用工专家 — 20260729 优化需求测试指导

> 测试环境：https://on.hr8ai.top/
> 测试日期：2026-07-29
> 对应需求文档：20260729-优化需求梳理-1.md

---

## 需求 1 + 10：花名册导入模板优化 + 性别自动识别

### 测试步骤

1. 进入「设置 → 数据导入」页面
2. 点击「下载模板」，打开下载的 Excel 文件
3. 检查模板表头：
   - 员工信息 Sheet：`姓名*`、`入职日期*`、`月工资*` 带星号标注
   - 性别列显示「性别（选填，留空自动识别）」
   - 劳动合同 Sheet：`姓名*`、`合同开始日期*` 带星号
   - 加班记录 Sheet：`姓名*`、`日期*` 带星号
   - 违纪记录 Sheet：`姓名*`、`日期*` 带星号
   - 考勤记录 Sheet：`姓名*`、`日期*` 带星号
4. 每个 Sheet 第一行应有示例数据（如张三、110101199001011234）
5. 填入测试数据（性别留空，填入身份证号），上传导入
6. 在花名册中查看导入的员工，性别应自动从身份证号识别（第17位奇数=男，偶数=女）

### 验证点

- [ ] 模板必填字段有 `*` 标注
- [ ] 每个 Sheet 含一行示例数据
- [ ] 性别留空时自动识别正确
- [ ] 性别手动填写时以填写值为准

---

## 需求 2：专项附加扣除批量导入

### 测试步骤

1. 进入「薪税管理 → 专项附加扣除」Tab
2. 点击工具栏「批量导入」按钮，弹出导入弹窗
3. 点击「下载模板」，打开 Excel 检查：
   - 表头含 `姓名*`、身份证号、子女教育、赡养老人、住房、继续教育、婴幼儿照护、备注
   - 两行示例数据
4. 填入测试数据（姓名对应花名册中已有员工），上传导入
5. 查看导入结果反馈：成功 N 条、跳过 M 条、错误明细

### 验证点

- [ ] 模板下载正常，表头有 `*` 标注
- [ ] 导入后显示成功/跳过/错误汇总
- [ ] 身份证号优先匹配，未填时用姓名匹配
- [ ] 导入后专项附加扣除列表数据刷新

---

## 需求 3：导入结果反馈不明确

### 测试步骤

1. 在「设置 → 数据导入」上传一个含部分错误数据的 Excel
2. 观察导入完成后的结果反馈

### 验证点

- [ ] 显示分类汇总：成功 N 条、跳过 M 条、重复 K 条
- [ ] 有「导出错误日志」按钮，下载 Excel 格式的逐行错误明细
- [ ] 错误日志含 Sheet 名、行号、员工姓名、错误类型

---

## 需求 4：证据链导出改为 Excel

### 测试步骤

1. 进入花名册，点击某员工「证据链」
2. 在证据链页面点击「导出」按钮
3. 下载并打开 Excel 文件

### 验证点

- [ ] 下载文件为 `.xlsx` 格式（非 TXT）
- [ ] Excel 包含 3 个 Sheet：员工信息、证据清单、风险提醒
- [ ] 证据清单含合同/工资条/加班/考勤/违纪/培训/绩效/解聘记录
- [ ] 排版整齐，可直接使用

---

## 需求 5：身份证后四位搜索修复

### 测试步骤

1. 在花名册列表搜索框输入某员工身份证号后 4 位（纯数字）
2. 查看搜索结果
3. 也测试输入后 2 位、后 6 位

### 验证点

- [ ] 输入身份证后 4 位能匹配到对应员工
- [ ] 输入 2+ 位纯数字自动识别为身份证号搜索
- [ ] 输入姓名/部门仍正常搜索

---

## 需求 6：文本模板库功能完善

### 测试步骤

1. 进入「文本模板库」页面
2. 查看页面顶部是否有「使用说明」可折叠面板
3. 展开后查看操作指引：选择模板 → 填充变量 → 生成文档 → 下载
4. 选择一个模板，填充变量后点击「渲染」
5. 点击「下载 Word」按钮，下载 `.doc` 文件
6. 点击「复制为新模板」按钮，粘贴到 Word 中验证内容

### 验证点

- [ ] 使用说明面板存在且可折叠
- [ ] 下载 Word 按钮正常下载 `.doc` 文件
- [ ] 复制为新模板将内容复制到剪贴板
- [ ] 模板原文和渲染结果区域均有下载按钮

---

## 需求 7：用工体检评分标准说明

### 测试步骤

1. 进入「用工体检」工具页面
2. 查看评分标准说明卡片

### 验证点

- [ ] 卡片展示 3 级评分等级：
  - 85+ 健康（绿色）
  - 60-84 中等风险（黄色）
  - <60 高风险（红色）
- [ ] 卡片展示 6 维度评分构成：合同管理、薪酬社保、考勤加班、规章制度、解聘合规、证据链
- [ ] 每个维度列出具体评分要素

---

## 需求 8：试用期员工区分与转正提醒

### 测试步骤

1. 在花名册中导入/查看有试用期月数的员工（合同中 `probationMonths > 0`）
2. 查看花名册列表

### 验证点

- [ ] 试用期员工显示橙色标签（试用期 X 个月 · 剩余 Y 天）
- [ ] 状态筛选下拉新增「试用期」选项
- [ ] 选择「试用期」后只显示试用期员工
- [ ] 试用期信息从合同 `probationMonths` + `hireDate` 动态计算

---

## 需求 9：考勤页面增加导入入口

### 测试步骤

1. 进入「考勤管理」页面
2. 切换到「考勤确认」Tab
3. 点击工具栏「导入考勤」按钮
4. 在弹窗中点击「下载模板」，获取 Excel 模板
5. 填入考勤数据，上传导入
6. 查看导入结果反馈

### 验证点

- [ ] 考勤确认 Tab 工具栏有「导入考勤」按钮
- [ ] 弹窗含模板下载、文件上传、结果反馈
- [ ] 导入后考勤列表和统计数据自动刷新
- [ ] 导入结果显示考勤记录/加班/员工/合同条数

---

## 需求 11：薪税发薪批次创建流程优化

### 测试步骤

### 11.1 多批次并存

1. 进入「薪税管理」页面
2. 当月已有未归档批次时，点击「创建批次」
3. 验证不再提示「上一批次未归档」

### 11.2 自定义选择员工

1. 创建批次弹窗中选择「自定义选择员工」模式
2. 测试按部门筛选、姓名搜索、全选/取消全选
3. 勾选部分员工后创建批次
4. 验证批次仅包含选中员工

### 11.3 归档时重算个税

1. 当月创建两个批次 A 和 B（同一员工在两个批次中）
2. 先归档批次 A
3. 再归档批次 B
4. 检查批次 B 归档后该员工的个税是否包含批次 A 的累计数据

### 验证点

- [ ] 多个未归档批次可并存
- [ ] 自定义选择员工模式正常工作
- [ ] `CustomEmployeeSelector` 支持部门筛选、姓名搜索、全选
- [ ] 批次 A 先归档后，批次 B 归档时重算包含 A 的累计
- [ ] 归档返回重算条目数
- [ ] 手动覆盖的社保值在重算后保留

---

## 全部模板必填项标注验证

### 测试步骤

1. 下载所有导入模板：
   - 员工导入模板（设置 → 数据导入 → 下载模板）
   - 工资表导入模板（薪税管理 → 批次 → 工资表导入 → 下载模板）
   - 专项附加扣除导入模板（薪税管理 → 专项附加扣除 → 批量导入 → 下载模板）
2. 逐个打开检查表头

### 验证点

| 模板 | Sheet | 必填字段（应有 `*`） |
|------|-------|---------------------|
| 员工导入模板 | 员工信息 | 姓名*、入职日期*、月工资* |
| | 劳动合同 | 姓名*、合同开始日期* |
| | 加班记录 | 姓名*、日期* |
| | 违纪记录 | 姓名*、日期* |
| | 考勤记录 | 姓名*、日期* |
| 工资表模板 | 工资表 | 姓名*、身份证号* |
| 专项附加扣除模板 | 专项附加扣除 | 姓名* |

- [ ] 所有模板必填字段有 `*` 标注
- [ ] 所有模板含至少一行示例数据
- [ ] 导入时兼容带 `*` 和不带 `*` 的列名（`getField` 模糊匹配）

---

## 部署信息

- **访问地址**：https://on.hr8ai.top/
- **后端 API**：https://on.hr8ai.top/api/v1/
- **Git 提交**：`0372cbe` — feat: 完成全部11项优化需求 + 模板必填项标注 + 归档重算个税
- **部署时间**：2026-07-29
