7.7 KiB
关联业务自动补入实体库 Frontend Implementation Plan
执行约束: 按当前项目
AGENTS.md执行;未获得用户明确要求时不启用 subagent。Steps use checkbox (- [ ]) syntax for tracking.
Goal: 验证前端通过现有企业来源枚举接口展示新增 SUPPLIER=供应商,并在真实页面确认自动补入实体库后的展示链路可用。
Architecture: 本次不新增前端交互,不修改前端源码。企业来源选项由后端 /ccdi/enum/enterpriseSource 返回,实体库管理页与招投标详情页沿用 getEnterpriseSourceOptions() 展示新增来源;前端工作重点是运行真实页面验证并记录结果。
Tech Stack: Vue 2, Element UI, npm, nvm, Playwright.
File Structure
- No source changes expected:
ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue- 已通过
getEnterpriseSourceOptions()获取企业来源。
- 已通过
- No source changes expected:
ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue- 企业详情弹窗已通过
getEnterpriseSourceOptions()格式化企业来源。
- 企业详情弹窗已通过
- Create or update:
docs/reports/implementation/2026-04-26-enterprise-auto-fill-implementation.md- 补充前端真实页面验证结果。
- Generated test files:
- 如需生成导入样本,放在
output/playwright/或output/spreadsheet/,不提交到 git。
- 如需生成导入样本,放在
Task 1: 前端源码确认
Files:
-
Read:
ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue -
Read:
ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue -
Read:
ruoyi-ui/src/api/ccdiEnum.js -
Step 1: 确认企业来源接口使用点
Run:
rg -n "getEnterpriseSourceOptions|formatEnterpriseSource|enterpriseSourceOptions" ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue ruoyi-ui/src/api/ccdiEnum.js
Expected:
-
实体库管理页调用
getEnterpriseSourceOptions() -
招投标详情企业弹窗调用
getEnterpriseSourceOptions() -
API 路径为
/ccdi/enum/enterpriseSource -
Step 2: 确认不存在本地硬编码映射
Expected: 未发现页面本地写死企业来源映射;如发现硬编码映射,停止实施并先修订本计划。
Task 2: 前端启动准备
Files:
-
Read:
ruoyi-ui/package.json -
Use:
ruoyi-ui/.nvmrcif present -
Step 1: 使用 nvm 确认 Node 版本
Run:
cd ruoyi-ui
source ~/.nvm/nvm.sh
nvm use
node -v
Expected: 切换到项目要求的 Node 版本。
- Step 2: 启动前端开发服务
Run:
cd ruoyi-ui
source ~/.nvm/nvm.sh
nvm use
npm run dev
Expected: 前端服务启动成功,记录实际 URL。若端口占用,按 Vite/Vue CLI 输出使用实际端口。
- Step 3: 启动后端
Run:
sh bin/restart_java_backend.sh
Expected: 后端 62318 可访问。
测试结束后必须关闭本次启动的前后端进程。
Task 3: 实体库管理页面验证
Files:
-
Verify: real page
ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue -
Do not use: prototype pages
-
Step 1: Playwright 打开真实实体库管理页面
进入实际路由:
http://localhost:8080/maintain/enterpriseBaseInfo
Expected: 页面正常加载。
- Step 2: 验证企业来源下拉包含供应商
操作:
- 打开查询区“企业来源”下拉。
- 检查存在“供应商”选项。
Expected: 下拉出现“供应商”。
- Step 3: 验证列表/详情展示
准备后端自动补入的一条 ent_source=SUPPLIER 测试企业后:
- 在实体库管理页面搜索该统一社会信用代码。
- 检查列表企业来源显示“供应商”。
- 打开详情,检查企业来源显示“供应商”,风险等级为空时显示为空值占位。
Expected: 枚举中文展示正确。
Task 4: 招投标真实页面验证
Files:
-
Verify:
ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue -
Step 1: 打开真实招投标信息维护页面
进入实际路由,例如:
http://localhost:8080/maintain/purchaseTransaction
Expected: 页面正常加载。
- Step 2: 新建含供应商统一信用代码的招投标记录
使用真实页面新增测试数据:
- 采购事项 ID 使用本轮唯一测试值。
- 供应商明细中至少一条填写供应商名称和统一信用代码。
Expected: 保存成功。
- Step 3: 回到实体库管理验证供应商自动补入
用供应商统一信用代码查询实体库。
Expected:
-
能查到实体库记录。
-
企业名称为供应商名称。
-
企业来源显示“供应商”。
-
风险等级为空。
-
Step 4: 清理测试数据
删除本轮新建的招投标测试数据和自动补入的实体库测试数据。若实体库记录已有关联限制,先删除业务数据再删除实体库记录。
Expected: 页面列表回到测试前状态。
Task 5: 导入页面验证
Files:
-
Generated samples:
output/playwright/oroutput/spreadsheet/ -
Step 1: 在真实页面下载导入模板
必须从当前业务页面点击下载模板,不手工凭记忆构造表头。
Expected: 获取当前模板。
- Step 2: 基于模板生成测试文件
至少覆盖:
- 员工亲属实体关联:页面
/maintain/staffEnterpriseRelation,点击“导入”后在弹窗中点击“下载模板”,接口ccdi/staffEnterpriseRelation/importTemplate,上传接口/ccdi/staffEnterpriseRelation/importData,验证成功行实体自动补入EMP_RELATION。 - 信贷客户实体关联:页面
/maintain/custEnterpriseRelation,点击“导入”后在弹窗中点击“下载模板”,接口ccdi/custEnterpriseRelation/importTemplate,上传接口/ccdi/custEnterpriseRelation/importData,验证成功行实体自动补入CREDIT_CUSTOMER。 - 中介实体关联:页面
/maintain/intermediary,点击“导入中介实体关联关系”,在导入弹窗下载模板,接口ccdi/intermediary/importEnterpriseRelationTemplate,上传接口/ccdi/intermediary/importEnterpriseRelationData,验证成功行实体自动补入INTERMEDIARY且风险等级高风险。 - 招投标信息维护:页面
/maintain/purchaseTransaction,点击“导入”后在弹窗中点击“下载模板”,接口ccdi/purchaseTransaction/importTemplate,上传接口/ccdi/purchaseTransaction/importData,验证供应商统一信用代码自动补入SUPPLIER。 - 每个页面至少包含一个混合成功失败样本,验证失败行不补实体。
Expected: 测试文件保存在 output/playwright/ 或 output/spreadsheet/,不提交 git。
- Step 3: 上传并核对导入状态
在真实页面上传文件,核对:
- 页面提示
- 导入状态
- 失败记录弹窗
- 列表总数变化
- 实体库是否新增对应实体
Expected: 成功行补实体,失败行不补实体。
- Step 4: 清理测试数据和任务缓存
删除本轮成功写入的业务数据和实体库数据,清理页面本地导入任务缓存。
Expected: 页面和数据库不残留本轮测试数据。
Task 6: 记录验证结果
Files:
-
Modify:
docs/reports/implementation/2026-04-26-enterprise-auto-fill-implementation.md -
Step 1: 补充前端验证记录
记录:
## 前端验证
- Node 版本:
- 前端 URL:
- 后端 URL:
- 实体库企业来源“供应商”展示:
- 招投标供应商自动补入页面验证:
- 导入页面验证:
- 测试数据清理:
- Step 2: 停止测试进程
停止本次启动的前端和后端进程。
Expected: 无测试进程残留。
- Step 3: 检查生成文件未进入 git
Run:
git status --short
Expected: output/playwright/、output/spreadsheet/ 下生成测试文件不在待提交范围。