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

40 lines
2.3 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/staffFmyRelation/importData`
- 统一补充失败记录定位字段,支持前端展示 `Sheet / Excel行号 / 失败原因`
## 实施内容
- Controller 调整
- `CcdiStaffFmyRelationController#importTemplate` 改为输出双 Sheet 模板,模板文件名统一为“员工亲属关系维护导入模板”。
- `CcdiStaffFmyRelationController#importData` 一次读取两个 Sheet。
- 按有数据的 Sheet 分别提交亲属关系导入任务和亲属资产导入任务。
- 返回新的提交结果 VO包含 `relationTaskId``assetTaskId` 和提示文案。
- VO 调整
- `StaffFmyRelationImportFailureVO` 增加 `sheetName``rowNum`
- `AssetImportFailureVO` 增加 `sheetName``rowNum`
- 新增 `StaffFmyRelationImportSubmitResultVO`
- 导入服务调整
- `CcdiStaffFmyRelationImportServiceImpl` 失败记录写入固定 `sheetName=员工亲属关系信息`,并记录 Excel 数据行号。
- `CcdiAssetInfoImportServiceImpl` 失败记录写入固定 `sheetName=亲属资产信息`,并记录 Excel 数据行号。
- 兼容策略
- 保留原 `CcdiAssetInfoController` 的状态查询与失败记录查询接口,前端继续复用原有资产任务轮询与失败记录查看能力。
## 验证
- 后端优先验证:
- `CcdiStaffFmyRelationControllerTest`
- `CcdiAssetInfoControllerTest`
- 编译验证:
- `mvn -pl ccdi-info-collection -am -Dmaven.test.skip=true compile`
## 影响范围
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffFmyRelationController.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiStaffFmyRelationImportServiceImpl.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiAssetInfoImportServiceImpl.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/StaffFmyRelationImportFailureVO.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/AssetImportFailureVO.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/StaffFmyRelationImportSubmitResultVO.java`