Files
ccdi/docs/plans/backend/2026-04-22-base-staff-dual-sheet-import-backend-implementation.md

38 lines
2.2 KiB
Markdown
Raw Normal View History

2026-04-24 13:29:13 +08:00
# 员工信息维护双 Sheet 导入后端实施计划
## 目标
- 将员工信息维护导入模板改为 `员工信息` + `员工资产信息` 双 Sheet。
- 统一由 `/ccdi/baseStaff/importData` 接收单文件上传,并按有数据的 Sheet 分别调用现有员工导入与员工资产导入方法。
- 员工信息导入取消“更新已存在员工”能力,命中现有员工 ID 或身份证号时直接记失败。
- 两类失败记录统一补充 `sheetName``rowNum``errorMessage`,便于直接定位 Excel 中的失败位置。
## 实施内容
- 控制器改造
- 修改 `CcdiBaseStaffController#importTemplate`,下载双 Sheet 模板,文件名统一为“员工信息维护导入模板”。
- 修改 `CcdiBaseStaffController#importData`,按 Sheet 名分别读取 `CcdiBaseStaffExcel``CcdiBaseStaffAssetInfoExcel`
- 两个 Sheet 均为空时返回错误;任一 Sheet 有数据时,仅提交对应导入任务。
- 返回新的双任务提交结果对象,包含 `staffTaskId``assetTaskId``message`
- 服务改造
- 修改 `ICcdiBaseStaffService``CcdiBaseStaffServiceImpl`,移除 `updateSupport` 参数。
- 修改 `ICcdiBaseStaffImportService``CcdiBaseStaffImportServiceImpl`,移除更新分支与 `insertOrUpdateBatch` 调用。
- 员工导入校验统一为:
- 员工 ID 已存在:失败
- 身份证号已存在:失败
- Excel 内重复:失败
- 员工资产导入补充重复校验:
- 数据库中存在同一 `personId + assetMainType + assetSubType + assetName`:失败
- 导入文件中存在同一组合重复:失败
- VO 修正
- 新增员工双 Sheet 提交结果 VO。
- 修正员工导入失败记录 VO 字段名为 `staffId`,与前端表格字段保持一致。
- 员工与员工资产失败记录 VO 均增加 `sheetName``rowNum`
## 验证
- `mvn -pl ccdi-info-collection,ruoyi-admin -am -DskipTests compile`
- 补充控制器与服务层回归测试,覆盖双 Sheet 分发与“已存在即失败”规则。
## 影响范围
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/`