# 员工亲属关系维护双 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`