- 删除v1.0 49条(今天'执行分解'基于错误v2.0聚合产生的重复数据) - 修正v2.0 F_REVENUE: 367万/月→90/75/80/85/95/120万(真实H2预测455万+7月90万) - 解决预算录入'部分指标重复'问题(同KPI+期间双版本记录)
177 lines
6.9 KiB
Markdown
177 lines
6.9 KiB
Markdown
# CMA验证数据需求规范(双实体验证矩阵)
|
||
|
||
> 建立:2026-08-19 | 提出:任总(两套数据验证决策 + "每次需要什么样的数据")
|
||
> 核心原则:酣客=验收场(真实客户数据,最后碰),博海=试验田(随便折腾,先试错)
|
||
> 验证策略:"先博海试验,再酣客验收"
|
||
|
||
## 一、双实体角色分工
|
||
|
||
| 实体 | 角色 | 用途 | 数据量 |
|
||
|:----|:----|:----|:------|
|
||
| 陕西博海(id=2) | **试验田** | 新功能试错/MCP测试/破坏性测试/快速迭代 | 16 KPI / 316 数据点 |
|
||
| 陕西酣客(id=1) | **验收场** | 客户验收/真实场景/交付演示 | 70 KPI / 1269 数据点 |
|
||
| 测试企业(id=3等) | 自动化测试 | CI跑用例(不人工碰) | 空 |
|
||
|
||
```
|
||
铁律:新功能先在博海跑通,再碰酣客数据
|
||
破坏性操作(删除/清空/批量改)只在博海或测试实体做
|
||
```
|
||
|
||
## 二、各验证场景所需数据(核心矩阵)
|
||
|
||
### 场景1:功能开发验证(新功能/改代码)
|
||
| 数据需求 | 博海(试验田) | 说明 |
|
||
|:--------|:------------|:----|
|
||
| KPI定义 | ≥5个(覆盖4维度:财务/客户/流程/学习) | 测维度筛选 |
|
||
| KPI数据点 | ≥50个(≥3个周期,含红黄绿各态) | 测红黄绿判定 |
|
||
| 预警 | ≥3条(红/黄各至少1条) | 测预警列表 |
|
||
| 预算 | ≥3个 | 测预算对比 |
|
||
| 行动计划 | ≥2个(含1个逾期) | 测逾期逻辑 |
|
||
| 组织 | ≥5个节点 | 测部门归属 |
|
||
|
||
### 场景2:MCP封装验证(本次重点)
|
||
| 数据需求 | 博海 | 说明 |
|
||
|:--------|:----|:----|
|
||
| KPI(含历史) | ≥5个KPI × ≥3周期 | 测cma_kpi_history |
|
||
| 预警 | ≥2条 | 测cma_query_alerts |
|
||
| 预算 | ≥2个 | 测cma_budget_plans |
|
||
| 概览数据 | 完整(KPI+预警+预算都有) | 测cma_overview |
|
||
| **空值KPI** | ≥1个(无数据) | 测容错(AI问空数据不能崩) |
|
||
| **异常KPI** | ≥1个(目标为0/负值) | 测边界 |
|
||
|
||
### 场景3:客户验收/演示(酣客数据)
|
||
| 数据需求 | 酣客 | 说明 |
|
||
|:--------|:----|:----|
|
||
| 全量KPI | 70个(保持现状) | 真实场景 |
|
||
| 关键KPI数据 | 财务核心(营收/净利/成本率)必须有最近3期 | 老板最关注 |
|
||
| 预警 | 真实预警(有红黄) | 展示预警价值 |
|
||
| 战略地图 | ≥1张 | 展示战略层 |
|
||
| 报表 | ≥1份BI报表 | 展示汇报能力 |
|
||
| **演示剧本** | 3个核心场景(看KPI/查预警/看趋势) | 演示有故事线 |
|
||
|
||
### 场景4:回归验证(改完不破坏)
|
||
| 数据需求 | 两套都跑 | 说明 |
|
||
|:--------|:--------|:----|
|
||
| 博海 | 16 KPI / 316 数据点 | 快跑(功能不坏) |
|
||
| 酣客 | 70 KPI / 1269 数据点 | 全跑(数据不坏) |
|
||
| 关键对比 | 修复前后数据一致性 | 确认无副作用 |
|
||
|
||
### 场景5:破坏性/边界测试
|
||
| 数据需求 | 只准博海/测试实体 | 说明 |
|
||
|:--------|:--------------|:----|
|
||
| 清空KPI值 | 博海子集(备份后) | 测空态UI |
|
||
| 大量数据导入 | 造1000+行 | 测性能 |
|
||
| 异常格式 | 特殊字符/超长字段 | 测容错 |
|
||
| 权限越界 | 用测试账号 | 测权限 |
|
||
|
||
## 三、数据准备清单(最小可用数据集)
|
||
|
||
### 博海试验田(最小16个KPI覆盖全场景)
|
||
```
|
||
4维度各≥1个:
|
||
财务:F_REVENUE(营收)/ F_NET_PROFIT(净利)/ F_COST_RATIO(费用率,反向)
|
||
客户:C_SATISFACTION(满意度)/ C_REBATE_RATE(渠补率,反向)
|
||
流程:P_DELIVERY(交付及时率)
|
||
学习:L_TRAINING(培训完成率)
|
||
↓
|
||
状态覆盖:
|
||
绿色≥2(达标)、黄色≥1(预警)、红色≥1(危险)、灰色≥1(无数据)
|
||
↓
|
||
周期覆盖:
|
||
最近3期(2026-06/07/08)每期都有值
|
||
↓
|
||
边界覆盖:
|
||
1个KPI目标=0(测除零)、1个KPI无数据(测空态)
|
||
```
|
||
|
||
### 酣客验收场(保持真实,不造假)
|
||
```
|
||
❌ 禁止:为测试给酣客造假数据
|
||
✅ 做法:用真实数据,缺的周期标注"待补充"
|
||
↓
|
||
验证时用"真实数据 + 演示剧本":
|
||
① 看我的KPI(营收/净利红黄绿)
|
||
② 查预警(哪些指标危险)
|
||
③ 看趋势(最近3期变化)
|
||
```
|
||
|
||
## 四、验证执行检查清单(每次验证前过一遍)
|
||
|
||
```
|
||
[ ] 1. 确认验证类型(功能/MCP/验收/回归/破坏)
|
||
[ ] 2. 选数据源:功能/MCP/破坏→博海;验收→酣客;回归→两套
|
||
[ ] 3. 数据准备:对照上面的"最小可用数据集"检查是否齐全
|
||
[ ] 4. 空值/异常KPI是否在(测容错)
|
||
[ ] 5. 备份:改动前备份目标实体数据(mysqldump)
|
||
[ ] 6. 执行验证 + 记录结果
|
||
[ ] 7. 验证后检查:consistency-check 无新错误
|
||
```
|
||
|
||
## 五、验证数据速查表(一句话版)
|
||
|
||
| 验证类型 | 用哪套 | 最少需要 |
|
||
|:--------|:------|:--------|
|
||
| 新功能 | 博海 | 5 KPI × 3期 + 红黄绿各1 |
|
||
| MCP封装 | 博海 | 5 KPI×3期 + 空值KPI + 异常KPI |
|
||
| 客户验收 | 酣客 | 70 KPI + 3期 + 演示剧本 |
|
||
| 回归 | 两套 | 全量对比 |
|
||
| 破坏性 | 博海/测试 | 备份后随意 |
|
||
|
||
## 六、数据录入归属规范(实体自动判断)
|
||
|
||
> 2026-08-19 任总提问"输入数据时明确博海还是酣客?系统能否自动判断"——已确认系统现状与增强方案
|
||
|
||
### 系统现状(账套模式已存在)
|
||
```
|
||
① 登录必须选企业(entity_id):
|
||
auth.py:"账套模式:请选择登录企业"
|
||
→ 用户登录时选酣客 or 博海
|
||
↓
|
||
② token绑定实体(安全):
|
||
token.entity_id = 唯一可信来源
|
||
用户只能访问被授权的企业(user_entities表)
|
||
↓
|
||
③ Bot通道(X-Entity-Id header/query):
|
||
白名单Bot可指定实体,但token存在时忽略query(防越权)
|
||
↓
|
||
④ 兜底默认:1(酣客)
|
||
```
|
||
|
||
### 结论:输入时无需每次明确
|
||
```
|
||
人工录入(网页):
|
||
登录时已选 → 数据自动归到所选企业(token绑定)
|
||
→ 不需要每次输入时再明确
|
||
↓
|
||
Bot/API导入:
|
||
可以指定X-Entity-Id → 需要明确(API调用时传)
|
||
↓
|
||
唯一边界:一个Excel混了两家公司数据 → 需增强
|
||
```
|
||
|
||
### 自动判断三级方案(待实现,0.5天)
|
||
```
|
||
① 登录实体(token.entity_id)→ 默认归属
|
||
② Excel内容检测:表头/首列是否含"酣客/博海"字样
|
||
→ 有:覆盖归属(跨公司导入场景)
|
||
→ 无:用登录实体
|
||
③ 文件名检测:文件名含"酣客/博海"→ 辅助判断
|
||
↓
|
||
④ 冲突时(登录=博海 但 内容=酣客):
|
||
→ 弹确认:"检测到酣客数据,确认归属?"
|
||
→ 人工点一下(不自动改,防误)
|
||
```
|
||
|
||
### 实现位置
|
||
```
|
||
后端:data.py import_excel_smart 加 _detect_entity()(~30行)
|
||
前端:import弹窗加实体确认(~20行)
|
||
状态:待排期(记入待办,非紧急)
|
||
```
|
||
|
||
## 七、关联
|
||
- kpi-account-governance-rule.md(科目≠KPI规范)
|
||
- 双实体验证决策(2026-08-19 任总)
|
||
- 铁律七(验证不信任自述)
|
||
- MCP封装(cma-mcp-strategy.md:先博海试,后酣客验)
|