feat: 交接班报告支持 Confluence/Jira 集成,添加 N/A 记录时间归属功能
- 集成 Confluence API 获取船舶报告数据 - 集成 Jira API 查询故障数量 - 支持船号显示 (462#、463# 等) - 支持故障次数/故障率、人工介入次数/介入率显示 - 跨班作业使用 Card 69 按时间查询效率 - 不跨班作业使用整船效率(剔除异常) - N/A 记录根据作业时间归属到对应船舶 - 更新 AGENTS.md 和 README.md 文档 - 删除 daily_report_gui.py
This commit is contained in:
107
CONFLUENCE_INTEGRATION.md
Normal file
107
CONFLUENCE_INTEGRATION.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# 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%
|
||||
Reference in New Issue
Block a user