# 员工信息维护导入功能真实页面测试记录 ## 测试范围 - 页面:`http://localhost:8080/maintain/baseStaff` - 后端:`http://localhost:62318` - 模块:员工信息维护导入 - 测试方式:`browser-use` 打开真实业务页面,确认导入入口、模板下载和页面列表/详情展示;使用真实模板生成测试工作簿后调用同一导入接口上传,轮询导入任务状态并查询失败记录。 ## 测试文件 - 真实模板:`output/spreadsheet/base_staff_import_template_20260430.xlsx` - 空模板:`output/spreadsheet/base_staff_import_empty_20260430.xlsx` - 员工成功样本:`output/spreadsheet/base_staff_import_staff_success_20260430.xlsx` - 员工混合失败样本:`output/spreadsheet/base_staff_import_staff_mixed_20260430.xlsx` - 资产成功样本:`output/spreadsheet/base_staff_import_asset_success_20260430.xlsx` - 资产混合失败样本:`output/spreadsheet/base_staff_import_asset_mixed_20260430.xlsx` - 双 Sheet 成功样本:`output/spreadsheet/base_staff_import_dual_success_20260430.xlsx` ## 页面验证 1. 打开真实员工信息维护页面,确认页面标题、查询区、列表、单一“导入”按钮加载正常。 2. 打开“员工信息维护导入”弹窗,确认存在“下载模板”入口。 3. 点击“下载模板”,页面触发真实模板下载。 4. 弹窗提示确认: - 模板包含“员工信息”和“员工资产信息”两个 Sheet。 - 两个 Sheet 可单独填写,也可同时填写。 - 员工信息命中现有员工直接报错。 - 资产信息仅支持员工本人资产。 5. 页面查询员工 `9843001`,确认成功导入员工 `Codex导入员工A` 可在真实列表展示。 6. 打开员工 `9843001` 详情,确认资产 `Codex资产住宅A` 展示在资产信息区。 7. 页面查询员工 `9843004`,确认双 Sheet 成功样本中的员工 `Codex导入员工D` 可在真实列表展示。 ## 接口与异步任务验证 | 场景 | 文件 | 结果 | | --- | --- | --- | | 空模板 | `base_staff_import_empty_20260430.xlsx` | 返回 `code=500`,提示“至少需要一条数据” | | 员工 Sheet 成功 | `base_staff_import_staff_success_20260430.xlsx` | 员工任务 `8afb5d0d-009d-4460-b9a5-e66b35716506`,`SUCCESS`,总数 1,成功 1,失败 0 | | 员工 Sheet 混合失败 | `base_staff_import_staff_mixed_20260430.xlsx` | 员工任务 `c57fc240-c50f-42a7-8d77-1614c46789ec`,`PARTIAL_SUCCESS`,总数 7,成功 1,失败 6 | | 资产 Sheet 成功 | `base_staff_import_asset_success_20260430.xlsx` | 资产任务 `8f266611-10ef-471f-8cc7-92b5b65cac45`,`SUCCESS`,总数 1,成功 1,失败 0 | | 资产 Sheet 混合失败 | `base_staff_import_asset_mixed_20260430.xlsx` | 资产任务 `314e1ec1-cf3c-4145-a60f-96f2e8311949`,`PARTIAL_SUCCESS`,总数 5,成功 1,失败 4 | | 双 Sheet 同时成功 | `base_staff_import_dual_success_20260430.xlsx` | 员工任务 `cacb797b-f308-4766-8470-d32061f0a964` 成功 1;资产任务 `08d02f9d-266e-49a1-a52a-fff29426e033` 成功 1 | ## 失败记录核对 员工混合失败记录包含 `sheetName=员工信息`、准确 `rowNum` 和失败原因: - 第 2 行:员工 ID 已存在。 - 第 3 行:姓名不能为空。 - 第 4 行:所属部门 ID 不存在或已停用/删除。 - 第 5 行:身份证号长度必须为 18 位。 - 第 6 行:年收入不能为负数。 - 第 8 行:员工 ID 在导入文件中重复。 资产混合失败记录包含 `sheetName=员工资产信息`、准确 `rowNum` 和失败原因: - 第 2 行:资产记录已存在。 - 第 3 行:员工资产导入仅支持员工本人证件号。 - 第 4 行:资产名称不能为空。 - 第 6 行:资产记录在导入文件中重复。 ## 数据回查 - 员工 `9843001`:列表接口返回 1 条,姓名 `Codex导入员工A`,部门 `研发部门`,状态 `在职`。 - 员工 `9843003`:列表接口返回 1 条,姓名 `Codex导入员工C`,验证混合失败文件中的成功行已入库。 - 员工 `9843004`:列表接口返回 1 条,姓名 `Codex导入员工D`,验证双 Sheet 员工任务成功入库。 - 员工 `9843001` 详情接口返回 3 条本轮导入资产: - `Codex资产住宅A` - `Codex资产车辆重复` - `Codex资产商铺D` ## 发现的问题 - 员工 `9843001` 列表中 `deptName=研发部门`,但详情接口返回 `deptName=null`,页面详情“所属部门”显示为 `-`。该问题不阻断导入成功,但属于员工详情展示链路的现存缺陷。 ## 清理范围 本轮成功写入的测试员工: - `9843001` - `9843003` - `9843004` 删除员工时,当前后端会同步删除员工身份证号对应的本人资产数据。 ## 结论 员工信息维护导入主链路通过:双 Sheet 单入口、空数据拦截、员工新增、员工重复/必填/部门/证件/金额校验、资产新增、资产重复/归属/必填校验、失败记录 Sheet 与行号定位、页面列表与详情资产展示均已验证。需要单独处理员工详情部门名称缺失问题。