5.2 KiB
5.2 KiB
员工资产导入与实体库自动补入后端实施记录
基本信息
- 实施日期:2026-05-06
- 实施范围:后端
- 关联计划:
docs/plans/backend/2026-05-06-staff-asset-import-and-enterprise-autofill-fix-backend-implementation-plan.md
修改内容
双 Sheet 导入任务编排
- 员工信息维护导入入口改为由服务层统一编排员工主 Sheet 与员工资产 Sheet。
- 员工亲属关系维护导入入口改为由服务层统一编排亲属关系主 Sheet 与亲属资产 Sheet。
- 当两个 Sheet 都有数据时,仍返回两个任务 ID,并按主 Sheet 导入成功结果为资产 Sheet 提供同文件内的归属映射。
- 当只导入资产 Sheet 时,仅生成并返回资产导入任务 ID,不生成员工或亲属关系主任务 ID。
- 当两个 Sheet 都为空时,保持返回“至少需要一条数据”。
实体库自动补入
- 新增统一的实体库自动补入服务,按统一社会信用代码去重,只插入实体库不存在的记录。
- 员工企业关系、信贷客户企业关系新增和导入时自动补入实体库。
- 中介新增、编辑和导入时取消“实体库必须已存在”的阻断校验;实体库缺失时按中介来源自动补入,不要求提供机构名称。
- 招投标供应商新增、编辑和导入时,对合法统一社会信用代码的供应商自动补入实体库。
- 新增企业来源枚举
SUPPLIER,用于标识供应商来源。
测试补充
- 同步调整员工信息维护、员工亲属关系维护导入 Controller 单测,按新的统一编排入口断言返回任务 ID。
- 补充员工资产导入单测,验证同一模板中本轮成功导入的员工身份证号可作为员工资产归属。
- 补充亲属资产导入单测,验证同一模板中本轮成功导入的亲属关系可作为亲属资产归属。
- 补充员工亲属实体关联新增单测,验证成功新增时调用实体库自动补入服务,来源为
EMP_RELATION、数据来源为MANUAL。
影响范围
/ccdi/baseStaff/importData/ccdi/staffFmyRelation/importData- 员工企业关系、信贷客户企业关系、中介、招投标供应商的新增/编辑/导入实体库联动逻辑
- 实体库基础信息表
ccdi_enterprise_base_info
验证记录
- 执行
mvn -pl ccdi-info-collection -am -DskipTests compile,结果:BUILD SUCCESS。 - 执行
mvn -DskipTests compile,结果:BUILD SUCCESS。 - 代码路径核对:员工主 Sheet 为空时仅调用员工资产导入服务并返回
assetTaskId;亲属关系主 Sheet 为空时仅调用亲属资产导入服务并返回assetTaskId。 - 复测执行
mvn -pl ccdi-info-collection -am -Dtest=CcdiBaseStaffControllerTest,CcdiStaffFmyRelationControllerTest,CcdiBaseStaffAssetImportServiceImplTest,CcdiAssetInfoImportServiceImplTest,CcdiBaseStaffDualImportServiceTest,CcdiStaffFmyRelationImportServiceImplTest,CcdiStaffEnterpriseRelationServiceImplTest,CcdiStaffEnterpriseRelationImportServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test,结果:BUILD SUCCESS,Tests run: 39, Failures: 0, Errors: 0, Skipped: 0。 - 复测执行
mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false test,结果:BUILD FAILURE;本次问题相关用例均已通过,剩余失败为中介实体关联测试未注入自动补入服务,以及CcdiPurchaseTransactionFeatureContractTest依赖的sql/ccdi_purchase_transaction.sql文件不存在。 - 使用
bin/restart_java_backend.sh重启后端并通过/login/test探活,结果:HTTP 200。 - 通过真实接口下载当前导入模板,基于模板生成测试文件,执行
/ccdi/baseStaff/importData:员工任务8ea63988-deb2-4791-a24a-f15ca2c8cd6e与员工资产任务f281beca-bb58-4076-86db-6f9f948bbaf0均为SUCCESS,成功 1 条、失败 0 条。 - 回查
ccdi_base_staff与ccdi_asset_info:员工主数据写入成功;员工资产family_id与person_id均为本轮员工身份证号,第二个 Sheet 未再出现“未找到资产归属员工”。 - 执行
/ccdi/staffFmyRelation/importData:亲属关系任务702466a9-0113-4e89-bcf1-8d760ee34543与亲属资产任务f11906d4-b9f3-4656-834c-fc9dc1a27704均为SUCCESS,成功 1 条、失败 0 条。 - 回查
ccdi_staff_fmy_relation与ccdi_asset_info:亲属关系主数据写入成功;亲属资产family_id为员工身份证号、person_id为亲属身份证号,第二个 Sheet 已正确关联到本轮亲属主数据。 - 执行
/ccdi/staffEnterpriseRelation/importData:员工亲属实体关联任务6361fc94-0d32-4da0-b1a0-7419b399710d为SUCCESS,成功 1 条、失败 0 条。 - 回查
ccdi_staff_enterprise_relation与ccdi_enterprise_base_info:实体关联写入成功;实体库自动生成对应企业,ent_source=EMP_RELATION、data_source=IMPORT。 - 验证结束后执行清理 SQL,回查本轮员工、亲属、资产、亲属实体关联和实体库测试数据计数均为 0。
备注
- 本次为后端逻辑调整,未修改前端页面代码。
- 现有前端已按
staffTaskId/relationTaskId/assetTaskId是否存在分别启动轮询,可直接兼容只返回资产任务 ID 的结果。