上传源代码版本

This commit is contained in:
Im-Jenisson
2026-06-01 16:30:29 +08:00
commit b2a9b7d3c2
462 changed files with 104365 additions and 0 deletions

View File

@@ -0,0 +1,248 @@
# 日级报表指标统计方式总结(最终版)
**更新日期**: 2026-05-16
**版本**: Final - 所有指标完整统计方式
**状态**: ✅ 编译通过
---
## 所有指标统计方式详解
### 1. 基础统计指标
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| Date | 日期 | 自然日UTC-5时区 | ArrivalRequests | 以到货时间为准 |
| DailyNewReplaceCount | 当日新增换单数 | COUNT(DISTINCT 交接单号) | DailyBase | 当天新增的交接单总数 |
| CumulativeTotalReplaceCount | 累计要换的总单数 | GREATEST(0, 前一日累计 + 前一日新增 - 前一日完成) | 递推计算 | 每日的待处理交接单累计值 |
| ShouldReplaceCount | 当天应该换单数 | 累计要换 + 当日新增 | 递推计算 | 当日应该完成的目标数量 |
### 2. 失败相关指标
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| UnfinishedFailureCount | 换单失败未完结订单 | COUNT(DISTINCT 订单) WHERE 状态=失败 AND 未完结 | HistoryUnfinished / LatestUnfinished | 因失败而未完结的订单数 |
| DailyFailureCount | 当日换单失败数 | COUNT(DISTINCT 订单) WHERE 失败时间=当日 | DailyFailedOrders | 当天新增的失败订单数 |
### 3. 成功和停止相关指标
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| DailySuccessCount | 当日换单成功数 | COUNT(DISTINCT 订单) WHERE 首次成功时间=当日 | DailySuccessCount | 当天首次成功扫描的订单数 |
| DailyStopCount | 当日STOP数 | COUNT(DISTINCT 订单) WHERE STOP时间=当日 | DailyScanMetrics | 当天被标记为STOP的订单数 |
### 4. 到仓相关指标
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| BeforeNoonArrivedCount | 16点前到仓包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间 < 16:00 | DailyBase | 每天16点前到达仓库的订单数 |
| AfternoonArrivedCount | 16点后到仓包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间 >= 16:00 | DailyBase | 每天16点后到达仓库的订单数 |
### 5. 考核相关指标
#### 5.1 16点前考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| BeforeNoonPassedCount | 16点前考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间<16:00 AND 首次成功时间<=考核时间 AND 冻结标签率80% | DailyBeforeNoonPassed | 16点前到仓高标签率情况下按16点分段规则考核通过 |
**考核时间规则16点前到仓高标签率≥80%**
```
考核时间 = 当日 16:00:00 ~ 次日 16:00:00
```
#### 5.2 16点后考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| AfternoonPassedCount | 16点后考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间>=16:00 AND 首次成功时间<=考核时间 AND 冻结标签率≥80% | DailyAfternoonPassed | 16点后到仓高标签率情况下按23:59:59规则考核通过 |
**考核时间规则16点后到仓高标签率≥80%**
```
考核时间 = 当日 16:00:00 ~ 次日 23:59:59
```
#### 5.3 低标签率考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 低标签率考核通过包裹数 | 低标签率考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 冻结标签率<80% AND 曾成功=1 | DailyLowLabelRatePassed | 标签率低于80%完成即达标的订单数 |
**考核时间规则(低标签率<80%**
```
考核时间 = NULL完成即达标首次成功时间就是达标时间
```
### 6. 标签率维度指标
#### 6.1 高标签率应该换单数
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 高标签率应该换单数 | 高标签率应该换单数 | COUNT(DISTINCT 订单) WHERE 冻结标签率>=80% | DailyHighLabelRateShould | 统计所有冻结标签率≥80%的交接单中的全部包裹 |
**计算方式**
```
1. 计算每个交接单的冻结标签率
冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数
2. 如果冻结标签率 >= 80%
则整个交接单的所有包裹都属于"高标签率应该换单"
3. 按到货时间分组统计这类包裹的总数
```
#### 6.2 低标签率应该换单数
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 低标签率应该换单数 | 低标签率应该换单数 | COUNT(DISTINCT 订单) WHERE 冻结标签率<80% | DailyLowLabelRateShould | 统计所有冻结标签率<80%的交接单中的全部包裹 |
**计算方式**
```
1. 计算每个交接单的冻结标签率
冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数
2. 如果冻结标签率 < 80%
则整个交接单的所有包裹都属于"低标签率应该换单"
3. 按到货时间分组统计这类包裹的总数
```
### 7. 汇总计算指标
#### 7.1 考核通过总数
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| 考核通过总数 | 考核通过总数 | 16点前考核通过 + 16点后考核通过 + 低标签率考核通过 | 所有通过考核的包裹总数 |
**公式**
```
考核通过总数 = 16点前考核通过包裹数 + 16点后考核通过包裹数 + 低标签率考核通过包裹数
```
#### 7.2 当天换单完成率 ✨ (新增)
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| DailyCompletionRate | 当天换单完成率 | 当日完成数 / 当天应该换单数 × 100% | 当天的完成达成率 |
**公式**
```
当天换单完成率 = 当日完成数 / 当天应该换单数 × 100%
= 当日完成数 / (累计要换 + 当日新增) × 100%
```
**例子**
```
当天应该换单数 = 100
当日完成数 = 85
当天换单完成率 = 85 / 100 × 100% = 85.00%
```
#### 7.3 24小时换单率
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| Rate24Hour | 24H换单率 | 考核通过总数 / 高标签率应该换单数 × 100% | 高标签率订单的24小时完成率 |
**公式**
```
24H换单率 = 考核通过总数 / 高标签率应该换单数 × 100%
= (16点前考核通过 + 16点后考核通过 + 低标签率考核通过) / 高标签率应该换单数 × 100%
```
**说明**
- 分子实际完成并通过考核的包裹
- 分母应该在高标签率下履约的包裹总数
- 用途客观反映在标签率80%情况下的实际履约完成情况
#### 7.4 考核通过率
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| 考核通过率 | 考核通过率 | 考核通过总数 / 高标签率应该换单数 × 100% | 高标签率订单的考核达成率 |
**公式**
```
考核通过率 = 考核通过总数 / 高标签率应该换单数 × 100%
```
### 8. 扫描相关指标
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 当日标签推送数 | 当日标签推送数 | COUNT(DISTINCT 订单) WHERE 标签推送时间=当日 | DailyBase | 当天新增推送的标签数 |
| 当日扫描数 | 当日扫描数 | COUNT(DISTINCT 订单) WHERE 首次扫描时间=当日 | DailyScanMetrics | 当天首次扫描的订单数 |
### 9. 元数据指标
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| DataFetchTime | 数据拉取时间UTC-5 | CURRENT_TIMESTAMP - INTERVAL 5 HOUR | 报表数据的生成时间 |
---
## 指标关系图
```
当日新增换单数 ─────┐
├─→ 当天应该换单数 ─→ 当天换单完成率 = 当日完成数 / 当天应该换单数
累计要换的总单数 ──┘
16点前到仓 + 高标签率 ─→ 16点前考核通过 ──┐
16点后到仓 + 高标签率 ─→ 16点后考核通过 ──┼─→ 考核通过总数
冻结标签率<80% ─→ 低标签率考核通过 ────┘
24H换单率 / 考核通过率 = 考核通过总数 / 高标签率应该换单数
```
---
## 冻结标签率的核心计算
### 定义
```
冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数 × 100%
```
### 含义
- `最早扫描时间 > 标签推送时间` = 标签在作业开始前已推送,属于**高标签率**
- `最早扫描时间 ≤ 标签推送时间` = 标签在作业开始时或之后推送属于**低标签率**
### 作用
- **判断交接单的整体标签率水平**而不是分别处理包裹
- **决定整个交接单中的所有包裹按什么规则处理**
- 冻结标签率 80% 所有包裹按16点分段规则处理
- 冻结标签率 < 80% 所有包裹按完成即达标规则处理
---
## 完整计算流程示例
### 100个订单场景冻结标签率 = 30% < 80%
**第1步计算冻结标签率**
```
最早扫描时间 = 2026-05-16 10:00:00
高标签率包裹 = 30推送于09:00-10:00
低标签率包裹 = 70推送于10:00-12:00
冻结标签率 = 30/100 = 30% < 80%
```
**第2步确定考核规则**
```
因为 冻结标签率 = 30% < 80%
→ 100个包裹都按"完成即达标"规则处理
```
**第3步统计指标**
```
高标签率应该换单数 = 0因为冻结标签率<80%
低标签率应该换单数 = 100整个交接单都按此类别
低标签率考核通过 = 80其中80个已成功的订单
考核通过总数 = 80
24H换单率 = 无法计算分母为0或特殊处理
```
---
## 编译状态
**编译成功**
- 所有指标已完整定义
- 换单完成率已补充
- 无编译错误