调整实体库管理数据来源维护规则
This commit is contained in:
@@ -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`
|
||||
- 删除测试数据成功
|
||||
- 下载导入模板并核对首行表头:
|
||||
- 包含 `经营状态`
|
||||
- 不包含 `数据来源`
|
||||
|
||||
## 风险与注意事项
|
||||
|
||||
- 当前工作区存在其他未提交改动,本次仅处理实体库管理相关文件,不回退无关内容。
|
||||
- 导入模板对象同时承担导入解析职责,本次变更后模板和导入字段保持一致。
|
||||
@@ -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`
|
||||
- 浏览器进入 `实体库管理` 页面,核对:
|
||||
- 新增弹窗没有“数据来源”字段
|
||||
- 经营状态没有必填星号
|
||||
- 风险等级、企业来源仍为必填
|
||||
- 导入弹窗可正常打开
|
||||
|
||||
## 风险与注意事项
|
||||
|
||||
- 当前页面文件存在其他在途改动,本次仅追加最小范围修改,不覆盖无关调整。
|
||||
- 新增与编辑共用同一个表单对象,需要通过条件渲染和条件校验避免互相影响。
|
||||
@@ -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` 重启后端并完成回归验证。
|
||||
- 浏览器内尝试直接提交测试数据时页面没有明确反馈,因此补充了真实接口新增/查询/删除验证来完成链路闭环,并已清理测试数据。
|
||||
Reference in New Issue
Block a user