# 2026-04-22 员工信息维护真实页面综合测试记录

## 1. 测试目标

- 在真实浏览器中进入“信息维护-员工信息维护”页面，验证页面可访问、列表可加载、关键接口可正常返回。
- 覆盖员工信息维护核心业务链路：
  - 列表加载
  - 详情查看
  - 新增
  - 编辑
  - 删除
  - 导入模板下载
  - 双 Sheet Excel 导入
  - 员工导入失败记录查看
  - 员工资产导入失败记录查看
- 测试结束后清理本轮新增/导入成功数据，并清理页面本地导入缓存。

## 2. 测试环境

- 前端地址：`http://127.0.0.1:1025`
- 后端地址：`http://127.0.0.1:62318`
- Mock 服务：`http://127.0.0.1:8000`
- 前端 Node 版本：`nvm use 14.21.3`
- 浏览器：Playwright headed 模式真实浏览器
- 登录方式：先调用测试登录接口获取 token，再向真实浏览器注入 `Admin-Token` cookie
- 测试页面：`http://127.0.0.1:1025/maintain/baseStaff`

## 3. 测试文件

- 页面下载模板：
  - `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/base-staff-maintenance-test/.playwright-cli/员工信息维护导入模板-1776851234493.xlsx`
- 生成导入样本：
  - `/Users/wkc/Desktop/ccdi/ccdi/output/spreadsheet/base_staff_import_browser_mixed.xlsx`
- Playwright 上传副本：
  - `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/base-staff-maintenance-test/base_staff_import_browser_mixed.xlsx`

## 4. 页面测试过程与结果

### 4.1 页面进入与基础加载

- 进入“信息维护-员工信息维护”页面后，菜单高亮、面包屑、查询区、列表区展示正常。
- Playwright 网络面板确认关键请求返回 `200`：
  - `/dev-api/getInfo`
  - `/dev-api/getRouters`
  - `/dev-api/ccdi/baseStaff/list`
  - `/dev-api/system/user/deptTree`
- 页面列表初始总数为：
  - `共 1014 条`

### 4.2 新增

- 新增员工：
  - 姓名：`浏览器员工测试A-0422`
  - 柜员号：`9260422`
  - 所属部门：`若依科技`
  - 身份证号：`330101199206150012`
  - 电话：`13926042222`
  - 年收入：`246800.50`
  - 入职时间：`2026-04-22`
  - 是否党员：`是`
  - 状态：`在职`
- 同时新增两条资产：
  - `房产 / 住宅 / 浏览器测试住房A / 当前估值 860000 / 状态 正常 / 备注 新增资产A`
  - `车辆 / 轿车 / 浏览器测试车辆B / 当前估值 188000 / 状态 正常 / 备注 新增资产B`
- 保存后验证通过：
  - 新增员工进入列表首行
  - 列表总数从 `1014` 增加到 `1015`

### 4.3 新增后详情复验

- 打开新增员工详情后验证通过：
  - 基本信息可正常展示
  - 资产明细展示 2 条
  - 资产名称、估值、状态、备注与录入一致

### 4.4 编辑

- 编辑同一员工，修改内容：
  - 姓名改为 `浏览器员工测试A-0422-已改`
  - 电话改为 `13926042224`
  - 年收入改为 `268000`
  - 删除“房产 / 住宅”资产，仅保留“车辆 / 轿车”资产
  - 保留资产状态改为 `冻结`
  - 保留资产备注改为 `编辑后保留资产`
- 保存后验证通过：
  - 列表首行姓名、电话、年收入已同步更新
  - 详情中仅剩 1 条原有资产
  - 保留资产状态显示 `冻结`
  - 保留资产备注显示 `编辑后保留资产`

### 4.5 导入模板下载

- 在真实页面导入弹窗中点击“下载模板”。
- 下载结果正常，模板包含两个 Sheet：
  - `员工信息`
  - `员工资产信息`

### 4.6 双 Sheet 导入

- 使用 `base_staff_import_browser_mixed.xlsx` 发起双 Sheet 导入。
- 员工信息 Sheet：
  - 成功样本：`浏览器导入员工B-0422 / 9260423`
  - 失败样本：`浏览器导入失败员工-0422 / 9033101`
- 员工资产信息 Sheet：
  - 成功样本：向员工 `330101199206150012` 导入资产 `导入资产车位A-0422`
  - 失败样本：使用不存在证件号 `330101199206150063`
- 导入提交后页面提示：
  - `导入任务已提交`
- 导入完成后验证通过：
  - 页面出现“查看导入失败记录”
  - 页面出现“查看员工资产导入失败记录”
  - 成功导入员工 `9260423` 进入列表
  - 列表总数从 `1015` 增加到 `1016`

### 4.7 员工导入失败记录

- 打开“查看导入失败记录”弹窗。
- 页面失败记录命中：
  - Sheet：`员工信息`
  - Excel 行号：`3`
  - 姓名：`浏览器导入失败员工-0422`
  - 柜员号：`9033101`
  - 失败原因：`该员工ID已存在`
- 说明员工导入失败记录展示链路正常。

### 4.8 员工资产导入失败记录

- 打开“查看员工资产导入失败记录”弹窗。
- 页面失败记录命中：
  - Sheet：`员工资产信息`
  - Excel 行号：`3`
  - 资产实际持有人身份证号：`330101199206150063`
  - 资产名称：`导入失败资产-0422`
  - 失败原因：`员工资产导入仅支持员工本人证件号`
- 说明员工资产导入失败记录展示链路正常。

### 4.9 导入成功数据复验

- 再次打开员工 `9260422` 的详情。
- 验证通过：
  - 新导入资产 `房产 / 车位 / 导入资产车位A-0422` 已展示
  - 当前估值显示 `235000`
  - 资产状态显示 `正常`
  - 备注显示 `页面上传成功资产`
  - 编辑后保留的车辆资产仍存在

### 4.10 删除与清理

- 通过真实页面删除以下两条本轮测试产生的成功数据：
  - 导入成功员工：`9260423`
  - 页面新增员工：`9260422`
- 删除过程均经过二次确认弹窗，页面提示 `删除成功`。
- 清理完成后验证通过：
  - 列表总数回到 `共 1014 条`
  - 页面中已无 `9260422`、`9260423`
- 清理本地导入任务缓存：
  - 已移除 `localStorage` 中的 `employee_import_last_task`
  - 已移除 `localStorage` 中的 `employee_asset_import_last_task`
- 页面刷新后：
  - “查看导入失败记录”按钮已消失
  - “查看员工资产导入失败记录”按钮已消失

## 5. 发现的问题

- 员工详情弹窗“所属部门”显示异常。
- 复现方式：
  - 新增或编辑员工后，列表中“所属部门”正常显示为 `若依科技`
  - 打开同一员工详情，字段“所属部门”显示为 `-`
- 影响判断：
  - 属于真实功能问题，影响详情信息一致性
  - 不影响本次新增、编辑、导入、删除主流程完成

## 6. 结论

- 员工信息维护模块在真实页面下的核心链路已完整验证：
  - 列表加载
  - 详情查看
  - 新增
  - 编辑
  - 删除
  - 导入模板下载
  - 双 Sheet 导入
  - 员工导入失败记录查看
  - 员工资产导入失败记录查看
- 本轮测试发现 1 个非阻断性功能问题：
  - 员工详情弹窗所属部门未正确回显
- 本轮新增和导入成功数据已全部清理，页面本地导入缓存已清空。

## 7. 测试收尾

- 已清理本轮新增/导入成功业务数据。
- 已清理前端本地导入任务缓存。
- 待测试完成后关闭：
  - Playwright 浏览器会话
  - 前端 `npm run dev -- --port 1025` 进程
  - 本轮通过 `bin/restart_java_backend.sh` 拉起的后端进程
