合并实体库自动补入与双Sheet导入修复

This commit is contained in:
wkc
2026-05-06 20:53:29 +08:00
30 changed files with 762 additions and 107 deletions

View File

@@ -0,0 +1,36 @@
# 关联业务自动补入实体库实施记录
## 修改内容
- 新增 `EnterpriseAutoFillService`,统一处理关联业务按统一社会信用代码补入 `ccdi_enterprise_base_info`
- 员工实体关系、信贷客户实体关系、中介关系、招投标供应商新增与导入成功数据,均在保存关联关系前按缺失实体自动补入实体库。
- 企业名称按“允许为空,有值则入库”的规则处理;供应商场景使用供应商名称补入,其余当前无企业名称来源的场景补入 `NULL`
- 新增企业来源枚举 `SUPPLIER/供应商`,前端实体库企业来源下拉复用后端枚举接口,无需新增前端硬编码。
- 中介来源实体默认风险等级为高风险;中介实体关系不再要求实体库预先存在。
- 新增迁移脚本 `sql/migration/2026-04-26-make-enterprise-name-nullable-for-auto-fill.sql`,将 `ccdi_enterprise_base_info.enterprise_name` 调整为可空。
## 影响范围
- 后端模块:`ccdi-info-collection`
- 相关业务:员工关系实体、信贷客户实体、中介关系、招投标供应商、实体库导入、企业来源枚举
- 数据库表:`ccdi_enterprise_base_info`
## 验证情况
- 后端单元验证已通过:
```bash
mvn -pl ccdi-info-collection -am -Dtest=CcdiEnumControllerTest,EnterpriseAutoFillServiceTest,CcdiStaffEnterpriseRelationServiceImplTest,CcdiStaffEnterpriseRelationImportServiceImplTest,CcdiCustEnterpriseRelationServiceImplTest,CcdiCustEnterpriseRelationImportServiceImplTest,CcdiIntermediaryServiceImplTest,CcdiIntermediaryEnterpriseRelationImportServiceImplTest,CcdiEnterpriseBaseInfoImportServiceImplTest,CcdiPurchaseTransactionServiceImplTest,CcdiPurchaseTransactionImportServiceImplTest,CcdiPurchaseTransactionFeatureContractTest -Dsurefire.failIfNoSpecifiedTests=false test
```
- 启动当前工作树后端成功,监听 `62318`
- 使用 `nvm use` 切换到 Node `v14.21.3`,启动前端开发服务到 `http://localhost:8080/`
- 使用 browser-use 打开真实业务页面:
- `http://localhost:8080/maintain/enterpriseBaseInfo` 加载正常,企业来源下拉出现“供应商”。
- `http://localhost:8080/maintain/purchaseTransaction` 加载正常,供应商明细相关页面可访问。
- 后端枚举接口 `GET /ccdi/enum/enterpriseSource` 已返回 `{ "value": "SUPPLIER", "label": "供应商" }`
## 未执行事项
- 远程联调库当前 `ccdi_enterprise_base_info.enterprise_name` 仍为 `Null=NO`
- 本次未直接执行远程库结构变更;提权执行迁移脚本被安全审查拦截。真实写入空企业名称的补库验证需先由授权人员执行迁移脚本。

View File

@@ -0,0 +1,43 @@
# 员工资产导入与实体库自动补入后端实施记录
## 基本信息
- 实施日期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`,用于标识供应商来源。
## 影响范围
- `/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`
## 备注
- 本次为后端逻辑调整,未修改前端页面代码。
- 现有前端已按 `staffTaskId` / `relationTaskId` / `assetTaskId` 是否存在分别启动轮询,可直接兼容只返回资产任务 ID 的结果。