商品及库存普通商品资料 #63

Merged
limeng merged 2 commits from feature/limeng-product-inventory into main 2026-08-15 18:21:38 +08:00
Collaborator

本 PR 将 ERP 普通商品资料接入共享业务镜像;页面不直连上游,也不按页面条件生成快照。

任务占用与边界

  • 任务名称:商品及库存管理 - 普通商品资料
  • 实际开发者:limeng
  • 任务来源/团队分工:把 ERP 商品及库存管理中的普通商品资料接入财务系统。
  • 目标结果:页面从共享业务镜像分页、筛选和汇总读取普通商品资料,显示明确同步状态。
  • 预计修改路径:与实际 11 个文件一致,详见“实际改动”。
  • 将写入的公共契约:菜单键 product-inventory/normal-products;数据集 operations_replica.rpt.jst_sku;镜像表 caiwu_business_mirror.ops_jst_sku;ProductCatalogMirrorRepository;BusinessMirrorDataset.indexDefinitions。
  • 仅复用、明确不修改的公共契约:business.pages.show、GenericBusinessMirrorRepository、business-mirror:sync-tables、caiwu_business_mirror、system.sidebar_permissions。
  • 数据源、表/视图和字段:operations_replica / JSReportReplica.rpt.jst_sku;读取 autoid、i_id、sku_id、名称/规格、四类价格、品牌/类目/供应商、状态、modified、sku_type 等固定字段,不读取图片地址。
  • 上游 source_key / scope:operations_replica;固定数据集 operations_replica.rpt.jst_sku,仅 sku_type = normal,按 autoid 稳定排序,每页最多 50 条。
  • 权限名、菜单键或共享组件:复用既有侧边栏权限过滤;新增菜单键 product-inventory/normal-products。
  • 明确不修改的范围:不修改上游数据库,不写真实业务行,不执行生产索引/迁移,不触发首次全量同步,不修改报价和协议签署模块。

开工碰撞检查

  • Codex 已执行 scripts/codex-task-preflight.ps1
  • 已检查最新 main 和所有远程任务分支
  • 已搜索主线既有页面、接口、Repository 和数据查询
  • 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件
  • 未发现实际写入重叠;或已在下方写明相关分支、具体重叠项和协调结论

相关分支、重叠项与协调结论:协议签署 PR #51 已先合并。开工和合并前均运行预检,无远程任务分支写入相同页面、Repository、数据集、镜像表或菜单键。主线已有 rpt.jst_sku 镜像登记,本任务在原数据集上增加可靠水位、查询索引和正式页面,不创建第二套镜像。

实际改动

  • 完成内容:新增“商品及库存管理 → 普通商品资料”;固定读取 ops_jst_sku;支持款式/商品编码、关键词、品牌、类目、供应商、商品状态、库存同步和销售价区间筛选;提供稳定分页、同步状态、错误/首次同步/筛选无结果/真实空数据区分;不展示上游图片地址。
  • Codex 实际修改的文件:config/business_navigation.php、config/upstream_mirrors.php、docs/上游业务镜像清单.md、BusinessMirrorDataset.php、BusinessMirrorDatasetRegistry.php、BusinessMirrorSchemaManager.php、ProductCatalogMirrorRepository.php、Pages.php、normal-products.blade.php、2 个商品模块测试文件。
  • 新增或变更的公共契约:BusinessMirrorDataset::indexDefinitions();ProductCatalogMirrorRepository;菜单键 product-inventory/normal-products;rpt.jst_sku 的 modified 水位和 5 组查询索引定义。
  • 与原计划的差异:无。

验证证据

  • 正常流程:真实页面从共享镜像显示 547,217 行;款式 ZSJ0089 + 关键词“胡桃色” + 停用状态筛选得到 41 条,第二页保持筛选并正常换页。
  • 空数据/错误输入/无权限场景:自动测试覆盖镜像不可用、首次同步未完成、过滤、转义、非 normal 隔离、无页面权限 403;价格上下限反向输入会自动归正。
  • 受影响旧功能:NavigationTest 2/2 通过���SupplierPayablePagesTest 9/9 通过。PagesTest 8/10 通过;其中 2 项失败已在未修改的 origin/main@2f4e538 隔离 worktree 中复现为完全相同的主线既有失败:未知退款页当前返回 302 而旧断言期望 404;商品价格共享镜像已有数据而旧断言仍期望读取失败文案。
  • 自动测试及结果:商品 Repository、商品页面、通用镜像同步器共 17 个测试、94 个断言全部通过;PHP 语法检查和 git diff --check 通过。
  • 实际页面、接口或只读业务查询结果:桌面 1440×900 和手机 390×844 均无整页横向溢出或控件重叠;表格在自身区域横向滚动;浏览器控制台无警告或错误。共享镜像状态 succeeded,最近成功同步 2026-08-15 17:51:03。

风险检查

  • 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复
  • 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权
  • 未提交 .env、密码、Token、私钥、真实财务数据、生产日志或构建产物
  • 前端改动符合 DESIGN.md;无经批准偏差

高风险影响、回滚和授权状态:代码定义现有镜像表的查询索引,并将 modified 登记为断点同步水位。未执行生产建索引、生产迁移、首次全量同步、数据修复或部署;这些操作仍需独立高风险授权。代码回滚可移除新增索引定义和页面接入,既有镜像数据不受影响。

合并前复查

  • 已重新拉取远程引用并用实际修改范围再次运行碰撞检查
  • PR 不再是 WIP:,所有测试结果已经补齐
  • Codex 已重新读取原始需求和验收标准,并逐文件审核 origin/main...任务分支 的完整 diff
  • Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果
  • 合并顺序不会覆盖其他未合并任务
  • 已授权当前任务的 Codex 执行 Squash merge、验证 main 并清理任务分支
  • 本 PR 未执行生产迁移、数据修复、删除、覆盖配置或部署;相关操作仍需另行授权
> 本 PR 将 ERP 普通商品资料接入共享业务镜像;页面不直连上游,也不按页面条件生成快照。 ## 任务占用与边界 - 任务名称:商品及库存管理 - 普通商品资料 - 实际开发者:limeng - 任务来源/团队分工:把 ERP 商品及库存管理中的普通商品资料接入财务系统。 - 目标结果:页面从共享业务镜像分页、筛选和汇总读取普通商品资料,显示明确同步状态。 - 预计修改路径:与实际 11 个文件一致,详见“实际改动”。 - 将写入的公共契约:菜单键 `product-inventory/normal-products`;数据集 `operations_replica.rpt.jst_sku`;镜像表 `caiwu_business_mirror.ops_jst_sku`;`ProductCatalogMirrorRepository`;`BusinessMirrorDataset.indexDefinitions`。 - 仅复用、明确不修改的公共契约:`business.pages.show`、`GenericBusinessMirrorRepository`、`business-mirror:sync-tables`、`caiwu_business_mirror`、`system.sidebar_permissions`。 - 数据源、表/视图和字段:`operations_replica / JSReportReplica.rpt.jst_sku`;读取 `autoid`、`i_id`、`sku_id`、名称/规格、四类价格、品牌/类目/供应商、状态、`modified`、`sku_type` 等固定字段,不读取图片地址。 - 上游 `source_key` / `scope`:`operations_replica`;固定数据集 `operations_replica.rpt.jst_sku`,仅 `sku_type = normal`,按 `autoid` 稳定排序,每页最多 50 条。 - 权限名、菜单键或共享组件:复用既有侧边栏权限过滤;新增菜单键 `product-inventory/normal-products`。 - 明确不修改的范围:不修改上游数据库,不写真实业务行,不执行生产索引/迁移,不触发首次全量同步,不修改报价和协议签署模块。 ## 开工碰撞检查 - [x] Codex 已执行 `scripts/codex-task-preflight.ps1` - [x] 已检查最新 `main` 和所有远程任务分支 - [x] 已搜索主线既有页面、接口、Repository 和数据查询 - [x] 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件 - [x] 未发现实际写入重叠;或已在下方写明相关分支、具体重叠项和协调结论 相关分支、重叠项与协调结论:协议签署 PR #51 已先合并。开工和合并前均运行预检,无远程任务分支写入相同页面、Repository、数据集、镜像表或菜单键。主线已有 `rpt.jst_sku` 镜像登记,本任务在原数据集上增加可靠水位、查询索引和正式页面,不创建第二套镜像。 ## 实际改动 - 完成内容:新增“商品及库存管理 → 普通商品资料”;固定读取 `ops_jst_sku`;支持款式/商品编码、关键词、品牌、类目、供应商、商品状态、库存同步和销售价区间筛选;提供稳定分页、同步状态、错误/首次同步/筛选无结果/真实空数据区分;不展示上游图片地址。 - Codex 实际修改的文件:`config/business_navigation.php`、`config/upstream_mirrors.php`、`docs/上游业务镜像清单.md`、`BusinessMirrorDataset.php`、`BusinessMirrorDatasetRegistry.php`、`BusinessMirrorSchemaManager.php`、`ProductCatalogMirrorRepository.php`、`Pages.php`、`normal-products.blade.php`、2 个商品模块测试文件。 - 新增或变更的公共契约:`BusinessMirrorDataset::indexDefinitions()`;`ProductCatalogMirrorRepository`;菜单键 `product-inventory/normal-products`;`rpt.jst_sku` 的 `modified` 水位和 5 组查询索引定义。 - 与原计划的差异:无。 ## 验证证据 - 正常流程:真实页面从共享镜像显示 547,217 行;款式 `ZSJ0089` + 关键词“胡桃色” + 停用状态筛选得到 41 条,第二页保持筛选并正常换页。 - 空数据/错误输入/无权限场景:自动测试覆盖镜像不可用、首次同步未完成、过滤、转义、非 `normal` 隔离、无页面权限 403;价格上下限反向输入会自动归正。 - 受影响旧功能:`NavigationTest` 2/2 通过���`SupplierPayablePagesTest` 9/9 通过。`PagesTest` 8/10 通过;其中 2 项失败已在未修改的 `origin/main@2f4e538` 隔离 worktree 中复现为完全相同的主线既有失败:未知退款页当前返回 302 而旧断言期望 404;商品价格共享镜像已有数据而旧断言仍期望读取失败文案。 - 自动测试及结果:商品 Repository、商品页面、通用镜像同步器共 17 个测试、94 个断言全部通过;PHP 语法检查和 `git diff --check` 通过。 - 实际页面、接口或只读业务查询结果:桌面 1440×900 和手机 390×844 均无整页横向溢出或控件重叠;表格在自身区域横向滚动;浏览器控制台无警告或错误。共享镜像状态 `succeeded`,最近成功同步 `2026-08-15 17:51:03`。 ## 风险检查 - [ ] 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复 - [x] 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权 - [x] 未提交 `.env`、密码、Token、私钥、真实财务数据、生产日志或构建产物 - [x] 前端改动符合 `DESIGN.md`;无经批准偏差 高风险影响、回滚和授权状态:代码定义现有镜像表的查询索引,并将 `modified` 登记为断点同步水位。未执行生产建索引、生产迁移、首次全量同步、数据修复或部署;这些操作仍需独立高风险授权。代码回滚可移除新增索引定义和页面接入,既有镜像数据不受影响。 ## 合并前复查 - [x] 已重新拉取远程引用并用实际修改范围再次运行碰撞检查 - [x] PR 不再是 `WIP:`,所有测试结果已经补齐 - [x] Codex 已重新读取原始需求和验收标准,并逐文件审核 `origin/main...任务分支` 的完整 diff - [x] Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果 - [x] 合并顺序不会覆盖其他未合并任务 - [x] 已授权当前任务的 Codex 执行 Squash merge、验证 `main` 并清理任务分支 - [x] 本 PR 未执行生产迁移、数据修复、删除、覆盖配置或部署;相关操作仍需另行授权
limeng added 1 commit 2026-08-15 17:48:14 +08:00
limeng added 1 commit 2026-08-15 18:16:49 +08:00
limeng changed title from WIP: 商品及库存普通商品资料 to 商品及库存普通商品资料 2026-08-15 18:20:51 +08:00
limeng merged commit b51f52b87e into main 2026-08-15 18:21:38 +08:00
limeng deleted branch feature/limeng-product-inventory 2026-08-15 18:21:39 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#63
No description provided.