Files
ccdi/docs/reports/implementation/2026-04-22-base-staff-dual-sheet-import-implementation.md
2026-04-24 13:29:13 +08:00

41 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 员工信息维护双 Sheet 导入实施记录
## 本次修改
- 后端将员工信息维护导入模板改为双 Sheet
- `员工信息`
- `员工资产信息`
- 后端导入入口统一到 `/ccdi/baseStaff/importData`,按有数据的 Sheet 分别提交员工导入任务与员工资产导入任务。
- 员工信息导入移除了更新现有员工能力,现有员工 ID 或身份证号冲突统一进入失败记录。
- 员工资产导入补充了重复校验,当前按 `personId + assetMainType + assetSubType + assetName` 识别重复,命中数据库或导入文件内重复时直接进入失败记录。
- 前端删除独立“导入资产信息”按钮与独立资产上传弹窗,改为单入口上传双 Sheet 模板。
- 前端上传成功后,按返回的两个任务 ID 分别沿用原有轮询、失败记录缓存和失败记录弹窗能力。
- 修正员工导入失败记录字段为 `staffId`,保证失败记录列表能正确显示柜员号。
- 员工失败记录与员工资产失败记录都增加了 `Sheet``Excel行号``失败原因` 定位信息。
## 影响范围
- 后端
- `ccdi-info-collection` 员工导入控制器、服务接口、异步导入服务、导入结果 VO
- 前端
- `ruoyi-ui/src/views/ccdiBaseStaff/index.vue`
- `ruoyi-ui/src/api/ccdiBaseStaff.js`
## 验证情况
- 后端编译
- `mvn -pl ccdi-info-collection,ruoyi-admin -am -DskipTests compile`
- 结果:通过
- 前端构建
- `source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && npm run build:prod`
- 结果:通过
- 备注:构建输出仍有既有体积告警,但未阻断构建
## 测试说明
- 已补充员工双 Sheet 导入相关单测文件,并执行:
- `mvn -pl ccdi-info-collection -am -Dtest=CcdiBaseStaffControllerTest,CcdiBaseStaffDualImportServiceTest,CcdiBaseStaffAssetImportServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test`
- 结果:通过
- 已通过 Playwright 在真实员工信息维护页面验证:
- 页面仅保留一个“导入”按钮
- 导入弹窗展示双 Sheet 提示文案
- 两个失败入口可恢复显示
- 员工失败弹窗显示 `Sheet / Excel行号 / 失败原因`
- 资产失败弹窗显示 `Sheet / Excel行号 / 失败原因`