调整实体库管理数据来源维护规则

This commit is contained in:
wkc
2026-04-23 17:31:56 +08:00
parent d444eafd5f
commit b7d020c0b2
12 changed files with 630 additions and 125 deletions

View File

@@ -0,0 +1,50 @@
# 实体库管理新增弹窗后端实施计划
## 文档路径确认
- 后端实施计划保存路径:`docs/plans/backend/`
- 本文档文件名:`2026-04-23-enterprise-base-info-add-dialog-backend-implementation.md`
## 需求目标
- 实体库管理新增场景不再要求前端传入数据来源。
- 新增时由后端自动写入数据来源,人工新增统一落为 `MANUAL`
- 编辑时后端保留原有数据来源,不允许通过请求修改。
- 经营状态调整为非必填项。
- 导入模板同步去除数据来源输入列,并将经营状态改为非必填展示。
- 导入时由后端自动写入 `IMPORT`,不再依赖模板传值。
## 实施范围
- `CcdiEnterpriseBaseInfoAddDTO`
- `CcdiEnterpriseBaseInfoEditDTO`
- `CcdiEnterpriseBaseInfoServiceImpl`
- `CcdiEnterpriseBaseInfoImportServiceImpl`
- `CcdiEnterpriseBaseInfoExcel`
## 实施步骤
1. 去除新增 DTO 中 `status``dataSource` 的必填约束,编辑 DTO 中去除 `status` 的必填约束。
2. 调整新增服务逻辑,仅校验风险等级和企业来源,新增数据时后端固定写入 `MANUAL`
3. 调整编辑服务逻辑,更新时始终沿用数据库中的原始数据来源。
4. 调整状态字段赋值逻辑,将空白字符串统一收敛为 `null`,避免出现空串脏数据。
5. 调整导入服务逻辑,去掉对模板数据来源的解析和校验,导入时固定写入 `IMPORT`
6. 修改导入模板对象,移除数据来源列,并把“经营状态*”调整为“经营状态”。
7. 补充/更新单元测试,覆盖新增自动写入 `MANUAL`、编辑保留原数据来源、导入自动写入 `IMPORT`、经营状态非必填和模板表头变更。
## 验证方案
- 执行定向测试:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiEnterpriseBaseInfoServiceImplTest,CcdiEnterpriseBaseInfoImportServiceImplTest,EasyExcelUtilTemplateTest test`
- 通过真实后端接口验证:
- 新增不传 `dataSource`、不传 `status` 仍可成功
- 查询结果中 `dataSource=MANUAL`
- 删除测试数据成功
- 下载导入模板并核对首行表头:
- 包含 `经营状态`
- 不包含 `数据来源`
## 风险与注意事项
- 当前工作区存在其他未提交改动,本次仅处理实体库管理相关文件,不回退无关内容。
- 导入模板对象同时承担导入解析职责,本次变更后模板和导入字段保持一致。

View File

@@ -0,0 +1,41 @@
# 实体库管理新增弹窗前端实施计划
## 文档路径确认
- 前端实施计划保存路径:`docs/plans/frontend/`
- 本文档文件名:`2026-04-23-enterprise-base-info-add-dialog-frontend-implementation.md`
## 需求目标
- 实体库管理新增弹窗隐藏“数据来源”字段。
- 经营状态改为非必填。
- 编辑弹窗仍保留数据来源展示,但不允许修改。
- 导入入口沿用现有交互,但模板下载出的字段定义要与后端保持一致。
## 实施范围
- `ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue`
## 实施步骤
1. 在表单层按 `isAdd` 区分新增与编辑模式,新增时隐藏“数据来源”表单项。
2. 去除经营状态前端必填校验。
3. 编辑态将数据来源改为只读展示,避免用户误改。
4. 调整数据来源校验逻辑,仅用于保持表单已有值,不提供编辑能力。
5. 新增提交时从请求载荷中删除 `dataSource` 字段,避免旧表单状态误传。
6. 保留列表、详情、编辑页中的数据来源展示,避免影响已有查看能力。
## 验证方案
- 使用 `nvm use` 切换到仓库要求的 Node 版本后启动前端:
`npm run dev`
- 浏览器进入 `实体库管理` 页面,核对:
- 新增弹窗没有“数据来源”字段
- 经营状态没有必填星号
- 风险等级、企业来源仍为必填
- 导入弹窗可正常打开
## 风险与注意事项
- 当前页面文件存在其他在途改动,本次仅追加最小范围修改,不覆盖无关调整。
- 新增与编辑共用同一个表单对象,需要通过条件渲染和条件校验避免互相影响。

View File

@@ -0,0 +1,80 @@
# 实体库管理新增弹窗与导入模板调整实施记录
## 文档路径确认
- 实施记录保存路径:`docs/reports/implementation/`
- 本文档文件名:`2026-04-23-enterprise-base-info-add-dialog-implementation.md`
## 本次修改内容
- 新增弹窗隐藏“数据来源”字段。
- 新增时后端自动写入 `MANUAL`,不再依赖前端传值。
- 编辑时数据来源改为只读展示,后端更新时保留原值不变。
- 经营状态改为非必填,空值统一按 `null` 落库。
- 导入模板移除“数据来源”列,并将“经营状态*”改为“经营状态”。
- 导入时后端自动写入 `IMPORT`
## 影响范围
- 后端:
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiEnterpriseBaseInfoAddDTO.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiEnterpriseBaseInfoEditDTO.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/excel/CcdiEnterpriseBaseInfoExcel.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiEnterpriseBaseInfoServiceImpl.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiEnterpriseBaseInfoImportServiceImpl.java`
- 前端:
- `ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue`
- 测试:
- `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiEnterpriseBaseInfoServiceImplTest.java`
- `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiEnterpriseBaseInfoImportServiceImplTest.java`
- `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/utils/EasyExcelUtilTemplateTest.java`
## 验证结果
### 1. 定向单元测试
- 命令:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiEnterpriseBaseInfoServiceImplTest,CcdiEnterpriseBaseInfoImportServiceImplTest,EasyExcelUtilTemplateTest test`
- 结果:
17 个定向测试全部通过。
### 补充调整
- 根据追加要求,编辑弹窗中的数据来源已改为不可修改展示。
- 后端更新接口忽略请求里的 `dataSource` 变更,统一沿用数据库原值。
### 2. 真实后端接口验证
- 使用 `/login/test` 获取 token 后,调用新增接口仅传:
- `socialCreditCode`
- `enterpriseName`
- `riskLevel`
- `entSource`
- 结果:
- 新增成功
- 查询结果中 `status=null`
- 查询结果中 `dataSource=MANUAL`
- 删除测试数据成功
### 3. 导入模板实际下载校验
- 通过真实接口下载模板文件到 `output/spreadsheet/enterprise-base-info-template-20260423.xlsx`
- 核对首行表头结果:
- 包含 `经营状态`
- 包含 `风险等级*`
- 包含 `企业来源*`
- 不包含 `数据来源`
### 4. 浏览器实际页面验证
- 前端按仓库要求执行 `nvm use`,确认使用 `Node v14.21.3`
- 启动 `ruoyi-ui` 开发服务并用 Playwright 打开真实页面 `实体库管理`
- 实际观察结果:
- 新增弹窗中“数据来源”字段已隐藏
- 经营状态不再显示为必填项
- 导入入口可正常打开
## 过程说明
- 验证时发现 `62318` 初始运行的是旧后端进程,仍返回“经营状态不能为空”,随后已按规范使用 `bin/restart_java_backend.sh restart` 重启后端并完成回归验证。
- 浏览器内尝试直接提交测试数据时页面没有明确反馈,因此补充了真实接口新增/查询/删除验证来完成链路闭环,并已清理测试数据。