Эх сурвалжийг харах

docs(plan): add S0-S4 KPI test data quick reference sheet

Co-authored-by: Cursor <cursoragent@cursor.com>
skygu 1 долоо хоног өмнө
parent
commit
c158045d76

+ 271 - 0
doc/plan/S0-S4_KPI测试数据速查表.md

@@ -0,0 +1,271 @@
+# S0–S4 与 KPI 看板测试数据速查表
+
+> **文档版本**:2026-06-14  
+> **适用库**:`aidopdev`  
+> **详细指南**:[S1-S4_UAT场景测试数据说明与测试指南.md](./S1-S4_UAT场景测试数据说明与测试指南.md)  
+> **用途**:测试/验收时快速查单号、页面路径、看板入口与串联链路(可打印)
+
+---
+
+## 1. 环境与登录
+
+| 项 | 值 |
+|----|-----|
+| 数据库 | `aidopdev` |
+| 前端(本机) | `http://127.0.0.1:8888` |
+| 前端(UAT) | `http://39.105.125.212:8888` |
+| **租户** | **AIDOP** `797403760988229` |
+| 账号 / 密码 | `AIDOPDemo` / `1234567890dop` |
+| 自检 | S1 订单评审搜 `MPO482024102300001` → **1 条** |
+
+**勿用租户**:`1300000000001`(框架种子)、`1300000000888`(Demo)—— 列表会全空。
+
+**公共主数据**:客户 `CUST0005` / `WKQXGFYXGE`,供应商 `VEN00060`,域 `8010`
+
+---
+
+## 2. 数据识别规则
+
+| 对象 | 识别方式 |
+|------|----------|
+| UAT 销售订单 | `crm_seorder.bill_from` 含 `UAT导入:S1S4_UAT_…` |
+| P0 批次(5 单) | `UAT导入:S1S4_UAT_20260604_RQ_V1` |
+| FULL 批次(45 单) | `UAT导入:S1S4_UAT_FULL_20260605_V1` |
+| 采购 PO | `PO-UAT-20260604-*` 或 `PO-UAT-FULL-20260605-*` |
+| 采购申请 PR | `PR-UAT-*` |
+| 供应商发货 | `SH-UAT-*` |
+
+**数据规模(AIDOP 租户)**:销售订单 **50**、PO **50**、发货 **50**、PR **229**、工单 **230**
+
+---
+
+## 3. P0 五单(端到端主链路,优先使用)
+
+| 场景 | 销售订单 | 明细物料 | 工单 | PR(示例) | PO | 发货 |
+|------|----------|----------|------|------------|-----|------|
+| **主样例** | `MPO482024102300001` | `3121C0035`×1500、`1A0C885`×3500 | `M500029406`、`M500029407` | `PR-UAT-20260604-01/02` | `PO-UAT-20260604-01` | `SH-UAT-20260604-01` |
+| 小单 | `MPO482025010900002` | `3121C0035`、`3124C0015` | `M500067189`、`M500067190` | `PR-UAT-20260604-03/04` | `PO-UAT-20260604-02` | `SH-UAT-20260604-02` |
+| 单行单 | `MPO482024120200003` | `1AB9275` | `M500053856` | `PR-UAT-20260604-05` | `PO-UAT-20260604-03` | `SH-UAT-20260604-03` |
+| 发货/交付 | `MPO482025012100001` | `91C0D2C`、`91CC0231` | `M500077552`、`M500077553` | `PR-UAT-20260604-06/07` | `PO-UAT-20260604-04` | `SH-UAT-20260604-04` |
+| 排程样例 | `MPO482025011300004` | `322AD001`、`3221C0031` | `M500070779`、`M500070780` | `PR-UAT-20260604-08/09` | `PO-UAT-20260604-05` | `SH-UAT-20260604-05` |
+
+### 主样例串联(缺陷单必填)
+
+```text
+MPO482024102300001
+  → M500029406 / M500029407
+  → PR-UAT-20260604-01
+  → PO-UAT-20260604-01
+  → SH-UAT-20260604-01
+```
+
+### FULL 包抽查
+
+| 场景 | 单号 |
+|------|------|
+| 多行分页(62 行) | `MPO482025081500002` |
+| 客户订单口径 | `SO241020241018001` |
+| 较新 MPO | `MPO482026020300001` |
+| FULL PO / 发货 | `PO-UAT-FULL-20260605-001`~`045` / `SH-UAT-FULL-20260605-001`~`045` |
+
+---
+
+## 4. 分模块页面与测试数据
+
+### S0 基础主数据(无专用 UAT 包)
+
+| 页面类型 | 可用数据 | 备注 |
+|----------|----------|------|
+| 物料 | `3121C0035`、`1A0C885`、`1AB9275`、`3124C0015` | `ItemMaster` 约 5,127 条 |
+| 产线 / 工作中心 | `LineMaster` 118 条、`WorkCtrMaster` 11 条 | Domain 多为 `8010` |
+| 员工 | `EmployeeMaster` 469 条 | |
+| 条码规则 | — | 当前无 UAT 种子,需单独造数 |
+| BOM | `ProductStructureMaster` | 有历史数据,部分需治理 |
+
+---
+
+### S1 产销协同
+
+| 页面 | 路径 | 搜什么 | 预期 |
+|------|------|--------|------|
+| 订单评审 | `/aidop/s1/order-mgmt/order` | `MPO482024102300001` | 1 单、2 行 |
+| 订单交付 | `/aidop/s1/order-mgmt/orderDelivery` | 同上 | 2 行 |
+| 指标看板 | `/aidop/s1/SalesKanBan/kanban` | — | 有 KPI |
+| 智能运营 | `/aidop/smart-ops/s1` | — | L1/L2 有数 |
+| 需求明细核验 | `/aidop/s1/SalesKanBan/requirement-examine-detail` | — | **可能无数据** |
+
+**KPI**:`S1_L1_001`~`003`,`S1_L2_001`~`015` | DWD:`dwd_ship_trans`
+
+---
+
+### S2 制造协同
+
+| 页面 | 路径 | 搜什么 | 预期 |
+|------|------|--------|------|
+| 工单排程 | `/aidop/s2/production-scheduling/work-order-scheduling` | `M500029406` | 能查到 |
+| 工单执行进度 | `/aidop/s2/collaboration-kanban/work-order-progress` | `M500029406` | 关联主订单 |
+| 可执行日计划 | `/aidop/s2/operation-plan/executable-daily-plan` | — | 有数据即可 |
+| 智能运营 | `/aidop/smart-ops/s2` | — | L2/L3 非空 |
+
+**KPI**:`S2_L1_001`~`004`,`S2_L2_001`~`003`,`S2_L3_001`~`006` | DWD:`dwd_order_schedule_trans`  
+**刷新**:`POST /api/AidopKanban/s2-mdp/refresh`
+
+---
+
+### S3 供应协同
+
+| 页面 | 路径 | 搜什么 | 预期 |
+|------|------|--------|------|
+| 采购申请 | `/aidop/s3/procurement/purchase-request` | `PR-UAT-20260604-01` | 存在 |
+| 物料采购订单 | `/aidop/s3/procurement/purchase-order` | `PO-UAT-20260604-01` | `SalesOrd` = 主订单 |
+| 交货计划 | `/aidop/s3/material-plan/delivery-schedule` | — | 有数据 |
+| MDP 监控 | `/aidop/s3/supply-kanban/mdp-monitor` | — | **SUCCESS** |
+| 智能运营 | `/aidop/smart-ops/s3` | — | 非全空 |
+
+**KPI**:`S3_L1_001`~`004`,`S3_L2_001`~`006`,`S3_L3_001`~`006`  
+**DWD**:`dwd_material_readiness`、`dwd_supplier_delivery`、`dwd_supplier_risk`  
+**刷新**:`POST /api/AidopKanban/s3-mdp/refresh`
+
+---
+
+### S4 采购执行
+
+| 页面 | 路径 | 搜什么 | 预期 |
+|------|------|--------|------|
+| 供应商发货 | `/aidop/s4/delivery/supplier-shipment` | `SH-UAT-20260604-01` | 关联 PO |
+| 供应商交货管理 | `/aidop/s4/delivery/supplier-delivery-management` | `PO-UAT-20260604-01` | 可打开 |
+| 执行看板 | `/aidop/s4/execution-kanban/dashboard` | — | 页面可加载 |
+| 欠料看板 | `/aidop/s4/execution-kanban/supplier-shortage-kanban` | — | 约 8 条缺料 DWD |
+| 智能运营 | `/aidop/smart-ops/s4` | — | **先刷新 MDP** |
+| S4 看板 | `/aidop/kanban/s4` | 筛 `PO-UAT-20260604-01` | KPI/下钻有响应 |
+
+**KPI**:`S4_L1_001`~`004`,`S4_L2_001`~`004`,`S4_L3_001`~`004`  
+**DWD**:`dwd_s4_purchase_execution`、`dwd_po_trans`、`dwd_qc_trans`  
+**刷新**:`POST /api/AidopKanban/s4-mdp/refresh`
+
+**可选增强**:执行 `doc/db/s4_global_uat_seed_20260608.sql` → `RC-UAT-20260604-01`~`05`、`PT-UAT-20260604-01`~`05`
+
+---
+
+## 5. KPI 看板入口一览
+
+| 模块 | 业务看板 | 智能运营 | MDP 刷新 | 核心 DWD |
+|------|----------|----------|----------|----------|
+| S1 | `/aidop/s1/SalesKanBan/kanban` | `/aidop/smart-ops/s1` | S1 MDP | `dwd_ship_trans` |
+| S2 | `/aidop/s2/collaboration-kanban/work-order-progress` | `/aidop/smart-ops/s2` | `s2-mdp/refresh` | `dwd_order_schedule_trans` |
+| S3 | `/aidop/s3/supply-kanban/mdp-monitor` | `/aidop/smart-ops/s3` | `s3-mdp/refresh` | `dwd_material_readiness` 等 |
+| S4 | `/aidop/kanban/s4` | `/aidop/smart-ops/s4` | `s4-mdp/refresh` | `dwd_s4_purchase_execution` |
+| 中台 | `/aidop/data-platform/mdp-monitor` | — | 各域手动触发 | `mdp_transform_run_log` |
+
+**原则**:业务列表有数、看板空 → 先查 MDP 是否 SUCCESS,再点「刷新 MDP」。
+
+---
+
+## 6. 建议测试顺序(打勾清单)
+
+### 场景 A:P0 端到端(必测,30–45 分钟)
+
+- [ ] A1 登录 AIDOP + `AIDOPDemo`
+- [ ] A2 S1 订单评审:`MPO482024102300001`(1 单 2 行)
+- [ ] A3 S1 订单交付:同上
+- [ ] A4 S2 工单:`M500029406`、`M500029407`
+- [ ] A5 S3 PO:`PO-UAT-20260604-01`
+- [ ] A6 S3 PR:`PR-UAT-20260604-01`
+- [ ] A7 S4 发货:`SH-UAT-20260604-01`
+- [ ] A8 智能运营 S1–S4:KPI 有数或刷新后有数
+- [ ] A9(可选)MDP 监控:S1/S2/S3 SUCCESS
+
+### 场景 B:FULL 列表(约 20 分钟)
+
+- [ ] `MPO482025081500002`(62 行分页)
+- [ ] `PO-UAT-FULL-20260605-001` / `SH-UAT-FULL-20260605-001`
+
+### 场景 C:S4 看板 + MDP(约 20 分钟)
+
+- [ ] 打开 `/aidop/kanban/s4`
+- [ ] 刷新 MDP → SUCCESS
+- [ ] 筛 `PO-UAT-20260604-01`
+
+---
+
+## 7. 验收 SQL(复制即用)
+
+```sql
+SET @tid := 797403760988229;
+
+-- UAT 订单批次
+SELECT bill_from, COUNT(*) AS cnt
+FROM crm_seorder
+WHERE tenant_id = @tid AND bill_from LIKE '%S1S4_UAT%'
+GROUP BY bill_from;
+
+-- 主样例明细行数(预期 2)
+SELECT bill_no, COUNT(*) AS line_cnt
+FROM crm_seorderentry
+WHERE tenant_id = @tid AND bill_no = 'MPO482024102300001'
+GROUP BY bill_no;
+
+-- PO / 发货串联(前 10 条)
+SELECT pom.PurOrd, pom.SalesOrd, sh.shddh
+FROM PurOrdMaster pom
+LEFT JOIN scm_shd sh ON sh.po_billno = pom.PurOrd
+WHERE pom.tenant_id = @tid AND pom.PurOrd LIKE 'PO-UAT%'
+ORDER BY pom.PurOrd LIMIT 10;
+
+-- 无发货的 PO(预期 0)
+SELECT COUNT(*) AS po_without_shd
+FROM PurOrdMaster pom
+LEFT JOIN scm_shd sh ON sh.po_billno = pom.PurOrd
+WHERE pom.tenant_id = @tid AND pom.PurOrd LIKE 'PO-UAT-%' AND sh.id IS NULL;
+
+-- KPI 按模块
+SELECT module_code, COUNT(*) AS cnt, MAX(biz_date) AS latest
+FROM ado_s9_kpi_value_l1_day
+WHERE tenant_id = @tid
+GROUP BY module_code ORDER BY module_code;
+
+-- S4 DWD(刷新后应 > 0)
+SELECT COUNT(*) AS s4_pe FROM dwd_s4_purchase_execution WHERE tenant_id = @tid;
+```
+
+---
+
+## 8. 已知空态(不算缺陷)
+
+| 现象 | 处理 |
+|------|------|
+| 列表全空 | 检查租户是否为 AIDOP |
+| S1 需求明细核验无数据 | 未导入 BOM 核验,测空态 |
+| S2 日计划/排程明细偏少 | 以工单进度为主 |
+| S4 退货 / IQC 为空 | 主链路未造异常;可用 seed 补 |
+| S4 看板 KPI 空 | 点「刷新 MDP」 |
+| `scm_shd` 按租户筛空 | 用 `SH-UAT-*` 或 `po_billno` 查 |
+| S0 条码规则无数据 | 需单独造数 |
+| S8 事件单为空 | 仅配置 + 少量样例 |
+
+---
+
+## 9. 缺陷单模板
+
+```text
+【模块】S0 / S1 / S2 / S3 / S4
+【环境】aidopdev,租户 797403760988229(AIDOP),账号 AIDOPDemo
+【场景】P0 主样例 / FULL 抽查 / S4 MDP 刷新
+【数据】销售订单:________  工单:________  PO:________  发货:________
+【菜单路径】/aidop/...
+【步骤】1… 2…
+【预期】
+【实际】
+```
+
+---
+
+## 10. 关联文档
+
+| 文档 | 说明 |
+|------|------|
+| [S1-S4_UAT场景测试数据说明与测试指南.md](./S1-S4_UAT场景测试数据说明与测试指南.md) | 正式完整指南 |
+| [aidopdev_当前UAT测试数据场景说明.md](./aidopdev_当前UAT测试数据场景说明.md) | 库内快照 |
+| [sql/S1S4_UAT_P0_execute_write.sql](./sql/S1S4_UAT_P0_execute_write.sql) | P0 写入脚本 |
+| [sql/S1S4_UAT_FULL_execute_write.sql](./sql/S1S4_UAT_FULL_execute_write.sql) | FULL 写入脚本 |
+| [../db/s4_global_uat_seed_20260608.sql](../db/s4_global_uat_seed_20260608.sql) | S4 收货/退货增强 |