# 关联业务自动补入实体库实施记录

## 修改内容

- 新增 `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`。
- 本次未直接执行远程库结构变更；提权执行迁移脚本被安全审查拦截。真实写入空企业名称的补库验证需先由授权人员执行迁移脚本。
