108 lines
2.8 KiB
Markdown
108 lines
2.8 KiB
Markdown
|
|
# Confluence 数据集成说明
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
交接班脚本现已集成 Confluence 数据源,可以自动从 Confluence 获取船舶报告的故障次数、故障率、人工介入次数和人工介入率数据。
|
|||
|
|
|
|||
|
|
## 新增文件
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
confluence/
|
|||
|
|
├── __init__.py # 模块初始化
|
|||
|
|
├── client.py # Confluence API 客户端
|
|||
|
|
└── vessel_reports.py # 船舶报告数据管理器
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境变量配置
|
|||
|
|
|
|||
|
|
在 `.env` 文件中添加以下配置:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Confluence 配置
|
|||
|
|
CONFLUENCE_URL=https://confluence.westwell-lab.com
|
|||
|
|
CONFLUENCE_TOKEN=your_token_here
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 生成交接班报告(自动集成 Confluence 数据)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 生成指定日期的白班报告
|
|||
|
|
python shift_report.py --date 2026-03-05 --shift day
|
|||
|
|
|
|||
|
|
# 生成指定日期的夜班报告
|
|||
|
|
python shift_report.py --date 2026-03-05 --shift night
|
|||
|
|
|
|||
|
|
# 生成指定日期的所有班次报告
|
|||
|
|
python shift_report.py --date 2026-03-05 --shift all
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 测试 Confluence 数据提取
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python test_confluence.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据字段说明
|
|||
|
|
|
|||
|
|
从 Confluence 提取的数据包括:
|
|||
|
|
|
|||
|
|
| 字段 | 说明 | 来源 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| vessel_number | 船次号 (如 433#) | Confluence 页面 |
|
|||
|
|
| vessel_name | 船名 | Confluence 页面 |
|
|||
|
|
| teu | 作业箱量 | Confluence 页面 |
|
|||
|
|
| failures | 故障次数 | Confluence 页面 |
|
|||
|
|
| failure_rate | 故障率 | 计算: failures/(teu/2)*100% |
|
|||
|
|
| interventions | 人工介入次数 | Confluence 页面 |
|
|||
|
|
| intervention_rate | 人工介入率 | 计算: interventions/(teu/2)*100% |
|
|||
|
|
| efficiency | 作业净效率 | Confluence 页面 |
|
|||
|
|
|
|||
|
|
## 数据匹配逻辑
|
|||
|
|
|
|||
|
|
Metabase 返回的船舶数据使用 `vesselVisitID` 格式为 `日期-船名` (如 "260305-东方祥"),
|
|||
|
|
Confluence 页面使用船名作为匹配键,确保数据正确关联。
|
|||
|
|
|
|||
|
|
## Confluence 页面结构
|
|||
|
|
|
|||
|
|
Confluence 页面结构:
|
|||
|
|
- 父页面: "福州江阴实船作业统计" (ID: 137446574)
|
|||
|
|
- 子页面: "2026.03 实船作业统计" (按月)
|
|||
|
|
- 子页面: "FZ 433#实船报告2026.03.01" (按船次)
|
|||
|
|
|
|||
|
|
每个船舶报告页面包含:
|
|||
|
|
- 船次、船名、作业时间
|
|||
|
|
- TEU、作业循环、效率
|
|||
|
|
- 故障次数、故障率
|
|||
|
|
- 人工介入次数、人工介入率
|
|||
|
|
- Jira Bug 链接(页面底部)
|
|||
|
|
|
|||
|
|
## 故障排查
|
|||
|
|
|
|||
|
|
### Confluence 连接失败
|
|||
|
|
|
|||
|
|
检查环境变量是否正确设置:
|
|||
|
|
```bash
|
|||
|
|
echo $CONFLUENCE_TOKEN
|
|||
|
|
echo $CONFLUENCE_URL
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据未显示
|
|||
|
|
|
|||
|
|
1. 确认 Confluence 页面存在该日期的船舶报告
|
|||
|
|
2. 检查船名是否匹配(Metabase 和 Confluence 使用相同船名)
|
|||
|
|
3. 查看控制台输出是否有错误信息
|
|||
|
|
|
|||
|
|
### 故障率计算
|
|||
|
|
|
|||
|
|
故障率计算公式:
|
|||
|
|
```
|
|||
|
|
故障率 = 故障次数 / (TEU / 2) * 100%
|
|||
|
|
人工介入率 = 人工介入次数 / (TEU / 2) * 100%
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
- TEU = 474,故障次数 = 2
|
|||
|
|
- 故障率 = 2 / (474 / 2) * 100% = 0.84%
|