Files
gloria/AGENTS.md
Developer 5d0cafac32 feat: 交接班报告支持 Confluence/Jira 集成,添加 N/A 记录时间归属功能
- 集成 Confluence API 获取船舶报告数据
- 集成 Jira API 查询故障数量
- 支持船号显示 (462#、463# 等)
- 支持故障次数/故障率、人工介入次数/介入率显示
- 跨班作业使用 Card 69 按时间查询效率
- 不跨班作业使用整船效率(剔除异常)
- N/A 记录根据作业时间归属到对应船舶
- 更新 AGENTS.md 和 README.md 文档
- 删除 daily_report_gui.py
2026-03-14 02:52:23 +08:00

110 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GLORIA 日报管理系统
**生成时间:** 2026-03-03
**语言:** Python 3.10+
**用途:** 福州港日报生成与管理
## 概述
从飞书获取排班信息,从 Metabase 获取船舶作业数据,从 Confluence 获取船舶报告数据,从 Jira 获取故障信息,生成标准化日报和交接班报告。
## 结构
```
Gloria/
├── daily_report_gui.py # GUI入口 (Tkinter)
├── report_generator.py # CLI入口 + 日报生成核心
├── shift_report.py # 班次交接报告(新增)
├── feishu/ # 飞书API集成
│ ├── client.py # HTTP客户端 + Token管理
│ ├── manager.py # 排班管理器(统一入口)
│ └── parser.py # 月度/年度表格解析
├── metabase/ # Metabase数据查询
│ ├── time_operations.py # 按时间范围查询
│ └── vessel_operations.py # 按船舶查询
├── confluence/ # Confluence API集成新增
│ ├── client.py # Confluence HTTP客户端
│ └── vessel_reports.py # 船舶报告解析器
├── jira_client.py # Jira API客户端新增
└── template/ # 日报模板
├── daily_report_template.txt
└── shift_handover_template.txt
```
## 查找指南
| 任务 | 位置 |
|------|------|
| 修改日报格式 | `template/daily_report_template.txt` |
| 修改交接班报告格式 | `template/shift_handover_template.txt` |
| 调整班次时间规则 | `shift_report.py:69-104` (`get_shift_time_range`) |
| 添加飞书功能 | `feishu/manager.py` |
| 新增Metabase查询 | `metabase/` 对应客户端 |
| 新增Confluence查询 | `confluence/vessel_reports.py` |
| 修改GUI界面 | `daily_report_gui.py` |
| 船舶记录合并逻辑 | `shift_report.py:501-546` (`_merge_vessels_by_name`) |
## 关键约定
### 班次时间规则
- **每月1号:** 00:00 ~ 次日08:00
- **月底最后一天:** 08:00 ~ 23:59
- **其他日期:** 08:00 ~ 次日08:00
### 交接班班次
- **白班:** 08:00 - 20:00
- **夜班:** 20:00 - 次日08:00
### 环境变量 (.env)
```
MATEBASE_USERNAME=xxx
MATEBASE_PASSWORD=xxx
FEISHU_APP_ID=xxx
FEISHU_APP_SECRET=xxx
FEISHU_SPREADSHEET_TOKEN=xxx
CONFLUENCE_URL=https://confluence.xxx.com
CONFLUENCE_TOKEN=xxx
JIRA_URL=https://jira.xxx.com
JIRA_USERNAME=xxx
JIRA_TOKEN=xxx
```
### 运行方式
```bash
# GUI模式
python daily_report_gui.py
# 日报 (CLI)
python report_generator.py --date 2026-03-01
# 班次交接报告
python shift_report.py --date 2026-03-13 --shift day
python shift_report.py --date 2026-03-13 --shift night
python shift_report.py --date 2026-03-13 --shift all
```
## 新功能:班次交接报告
`shift_report.py` 生成班次交接报告,支持:
- **船号显示**: 从 Confluence 获取船舶编号(如 462#、463#
- **故障数据**: 从 Jira 查询故障数量(如 FZ-2042、FZ-2043
- **故障率计算**: 故障次数 / (TEU/2) * 100%
- **效率获取**:
- 不跨班:使用整船效率(剔除异常)
- 跨班:使用 Card 69 按班次时间范围查询效率
- **N/A记录处理**: Metabase 中 vesselVisitID 为 "N/A" 的记录根据作业时间归属到对应的船舶
## 依赖
- `requests` - HTTP请求
- `python-dotenv` - 环境变量
- `tkinter` - GUI (标准库)
## 注意事项
- 程序需在 **8:00 后运行**确保最后一条船指令结束时间超过8点
- 飞书 Token 自动刷新提前30分钟续期
- Metabase 无原生 Python SDK使用 REST API
- Confluence 和 Jira 需要配置相应 Token 才能启用完整功能