Add README and monthly unaccounted data feature
This commit is contained in:
13
AGENTS.md
13
AGENTS.md
@@ -46,6 +46,10 @@ OrbitIn/
|
|||||||
- `query_all(limit)` - 查询所有
|
- `query_all(limit)` - 查询所有
|
||||||
- `get_stats()` - 获取统计信息
|
- `get_stats()` - 获取统计信息
|
||||||
|
|
||||||
|
### [`DailyReportGenerator`](src/report.py:15)
|
||||||
|
- `generate_report(date)` - 生成日报
|
||||||
|
- `print_report(date)` - 打印日报
|
||||||
|
|
||||||
## 文本格式约定
|
## 文本格式约定
|
||||||
|
|
||||||
- 列表前缀:`•` 用于 `ul`,数字+点用于 `ol`
|
- 列表前缀:`•` 用于 `ul`,数字+点用于 `ol`
|
||||||
@@ -56,11 +60,14 @@ OrbitIn/
|
|||||||
## 命令
|
## 命令
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 带数据库存储运行(默认)
|
# 获取并处理数据(带数据库存储)
|
||||||
python3 fetch_and_process.py
|
python3 main.py
|
||||||
|
|
||||||
# 不存储到数据库
|
# 不存储到数据库
|
||||||
python3 fetch_and_process.py --no-db
|
python3 main.py --no-db
|
||||||
|
|
||||||
|
# 生成日报
|
||||||
|
python3 -c "from src.report import DailyReportGenerator; g = DailyReportGenerator(); g.print_report('2025-12-28'); g.close()"
|
||||||
|
|
||||||
# 测试解析模块
|
# 测试解析模块
|
||||||
python3 -c "from src.parser import HandoverLogParser; p = HandoverLogParser(); print(p.parse(open('layout_output.txt').read())[:3])"
|
python3 -c "from src.parser import HandoverLogParser; p = HandoverLogParser(); print(p.parse(open('layout_output.txt').read())[:3])"
|
||||||
|
|||||||
127
README.md
Normal file
127
README.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# OrbitIn - 码头作业日志管理系统
|
||||||
|
|
||||||
|
从 Confluence API 获取交接班日志,提取作业数据并生成统计报表。
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
- 📥 从 Confluence 获取交接班日志 HTML
|
||||||
|
- 📄 提取保留布局的文本内容
|
||||||
|
- 🗄️ SQLite3 数据库存储
|
||||||
|
- 📊 生成日报和月度统计
|
||||||
|
- 📈 支持未统计数据手动录入
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
OrbitIn/
|
||||||
|
├── main.py # CLI 入口
|
||||||
|
├── README.md # 项目说明
|
||||||
|
├── AGENTS.md # AI助手开发文档
|
||||||
|
├── layout_output.txt # 缓存的布局文本
|
||||||
|
├── data/ # 数据目录
|
||||||
|
│ └── daily_logs.db # SQLite3 数据库
|
||||||
|
└── src/ # 代码模块
|
||||||
|
├── __init__.py
|
||||||
|
├── confluence.py # Confluence API 客户端
|
||||||
|
├── extractor.py # HTML 文本提取器
|
||||||
|
├── parser.py # 日志解析器
|
||||||
|
├── database.py # 数据库操作
|
||||||
|
└── report.py # 报表生成器
|
||||||
|
```
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install requests beautifulsoup4
|
||||||
|
```
|
||||||
|
|
||||||
|
### 配置 Confluence
|
||||||
|
|
||||||
|
在 `main.py` 中配置:
|
||||||
|
|
||||||
|
```python
|
||||||
|
CONFLUENCE_URL = "https://your-confluence.atlassian.net"
|
||||||
|
CONFLUENCE_USER = "your-email@example.com"
|
||||||
|
CONFLUENCE_API_TOKEN = "your-api-token"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 使用方法
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 获取并处理数据(带数据库存储)
|
||||||
|
python3 main.py
|
||||||
|
|
||||||
|
# 不存储到数据库
|
||||||
|
python3 main.py --no-db
|
||||||
|
|
||||||
|
# 生成日报(指定日期)
|
||||||
|
python3 -c "from src.report import DailyReportGenerator; g = DailyReportGenerator(); g.print_report('2025-12-28'); g.close()"
|
||||||
|
|
||||||
|
# 测试解析模块
|
||||||
|
python3 -c "from src.parser import HandoverLogParser; p = HandoverLogParser(); print(p.parse(open('layout_output.txt').read())[:3])"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 数据格式
|
||||||
|
|
||||||
|
### 日报表 (daily_handover_logs)
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| id | INTEGER | 主键 |
|
||||||
|
| date | TEXT | 日期 YYYY-MM-DD |
|
||||||
|
| shift | TEXT | 班次 (白班/夜班) |
|
||||||
|
| ship_name | TEXT | 船名 |
|
||||||
|
| teu | INTEGER | 作业量 TEU |
|
||||||
|
| efficiency | REAL | 效率 |
|
||||||
|
| vehicles | INTEGER | 上场车辆数 |
|
||||||
|
| created_at | TEXT | 创建时间 |
|
||||||
|
|
||||||
|
### 未统计表 (monthly_unaccounted)
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| id | INTEGER | 主键 |
|
||||||
|
| year_month | TEXT | 年月 YYYY-MM |
|
||||||
|
| teu | INTEGER | 未统计的 TEU |
|
||||||
|
| note | TEXT | 备注 |
|
||||||
|
| created_at | TEXT | 创建时间 |
|
||||||
|
|
||||||
|
## 文本格式约定
|
||||||
|
|
||||||
|
- 列表前缀:`•` 用于 `ul`,数字+点用于 `ol`
|
||||||
|
- 粗体使用 `**text**`,斜体使用 `*text*`
|
||||||
|
- 水平线使用 `─` (U+2500) 字符
|
||||||
|
- 链接渲染为 `text (url)`
|
||||||
|
|
||||||
|
## 示例输出
|
||||||
|
|
||||||
|
```
|
||||||
|
日期:12/28
|
||||||
|
|
||||||
|
船名:246#学友洋山
|
||||||
|
作业量:246TEU
|
||||||
|
|
||||||
|
当日实际作业量:246TEU
|
||||||
|
|
||||||
|
当月计划作业量:8400TEU (用天数*300TEU)
|
||||||
|
当月未统计数据:118TEU
|
||||||
|
当月实际作业量:12750TEU
|
||||||
|
当月完成比例:151.79%
|
||||||
|
|
||||||
|
12/29 白班人员:
|
||||||
|
12/29 夜班人员:
|
||||||
|
24小时值班手机:13107662315
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- Python 3.7+
|
||||||
|
- SQLite3
|
||||||
|
- Requests (HTTP 客户端)
|
||||||
|
- HTMLParser (标准库)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
||||||
958
layout_output.txt
Normal file
958
layout_output.txt
Normal file
@@ -0,0 +1,958 @@
|
|||||||
|
### 每个班次到场相关事项:
|
||||||
|
1. 当面交接,确认交接日志完成并更新
|
||||||
|
车辆状态:
|
||||||
|
车号 状态 车号 状态
|
||||||
|
001 右前激光故障 005 可作业
|
||||||
|
002 可作业 006 可作业
|
||||||
|
003 可作业 007 可作业
|
||||||
|
|
||||||
|
1. 24小时内新bug确认:
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.28
|
||||||
|
班次及人员:
|
||||||
|
白班:杨俊豪 汪钦良 武大学
|
||||||
|
实船作业:246# 学友洋山
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:246TEU,3.12循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班:梁启迟 刘炜彬
|
||||||
|
实船作业:246# 学友洋山
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:TEU,循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.27
|
||||||
|
班次及人员:
|
||||||
|
白班:杨俊豪 汪钦良
|
||||||
|
实船作业:244# 德盛6
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:114TEU ,2.09循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:245# 学友洋山
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:64TEU ,4.39循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班:刘炜彬 梁启迟
|
||||||
|
实船作业:245# 学友洋山
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:273TEU ,4.55循环/车/小时
|
||||||
|
故障次数/故障率:4次,3%
|
||||||
|
人工介入次数/介入率:4次,3%
|
||||||
|
实船作业:246# 学友洋山(二次靠泊)
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:14TEU,5.38循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
002报“**前部驱动器硬件故障报警**”需要检查下
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.26
|
||||||
|
班次及人员:
|
||||||
|
白班:杨俊豪 江唯 汪钦良 武大学
|
||||||
|
实船作业:241# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:66TEU ,3.24循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:242# 嘉洋16
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:116TEU ,2.55循环/车/小时
|
||||||
|
故障次数/故障率:3次,5%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
实船作业:243# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:32TEU ,1.9循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班: 刘炜彬 梁启迟
|
||||||
|
实船作业:243# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:162TEU ,2.08循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
实船作业:244# 德盛6
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:38TEU ,1.78循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.25
|
||||||
|
班次及人员:
|
||||||
|
白班: 江唯 汪钦良 武大学 张勤
|
||||||
|
实船作业:239# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:203TEU ,2.65循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1、空闲时间更新江唯小群里发的王涛的聊天记录(12-24 20:21:31发的)(6车已完成)
|
||||||
|
实船作业:240# 嘉洋17
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:10TEU ,3.15循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班: 刘炜彬 梁启迟
|
||||||
|
实船作业:239# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:55TEU ,2.57循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:241# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:282TEU ,3.43循环/车/小时
|
||||||
|
故障次数/故障率:4次,3%
|
||||||
|
人工介入次数/介入率:2次,1%
|
||||||
|
注意事项:
|
||||||
|
空闲时间更新江唯小群里发的王涛的聊天记录(12-24 20:21:31发的)(001、002、003、005、007车已完成)询问下@盛永霞AdaOps3.28的版本更新情况,是否能够更新到现场。
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.24
|
||||||
|
班次及人员:
|
||||||
|
白班: 江唯 汪钦良 武大学 张勤
|
||||||
|
实船作业:237# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:266TEU ,3.01循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1、6泊闸机路已经修好
|
||||||
|
2、空闲时间更新江唯小群里发的王涛的聊天记录(12-24 20:21:31发的)
|
||||||
|
夜班:梁启迟 杨俊豪
|
||||||
|
实船作业:238# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:236TEU ,3.02循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
余留任务:
|
||||||
|
空闲时间更新江唯小群里发的王涛的聊天记录(12-24 20:21:31发的)
|
||||||
|
注意事项:
|
||||||
|
1. 白天生产会说明一下C区拖车经常不按规定走与IGV在作业道对向行驶,导致双方无法作业
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.23
|
||||||
|
班次及人员:
|
||||||
|
白班: 刘炜彬 汪钦良 武大学 张勤
|
||||||
|
实船作业:237# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:281TEU ,3.81循环/车/小时
|
||||||
|
故障次数/故障率:3次,2%
|
||||||
|
人工介入次数/介入率:3次,2%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 杨俊豪 梁启池
|
||||||
|
实船作业:237# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:333TEU ,3.31循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. 6泊闸机口前修复,前沿路测进入6泊的路走不了,明天作业的时候需要手拉通过或平行模式通过,持续1天。
|
||||||
|
2. 007前脸已恢复
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.22
|
||||||
|
班次及人员:
|
||||||
|
白班: 刘炜彬 汪钦良 武大学
|
||||||
|
实船作业:234# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:58TEU ,1.81循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:235# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:64TEU ,1.76循环/车/小时
|
||||||
|
故障次数/故障率:1次,3%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
集成软件更新,版本号:qomolo-compose-tidb=0.1.24-881309
|
||||||
|
001-007单车qos-group版本更新至0.1.67
|
||||||
|
注意事项:
|
||||||
|
1. 001的95-0故障码为正常提示,下个版本修复故障类型
|
||||||
|
2. 底盘故障为目前故障类型会显示为fatal
|
||||||
|
日期:2025.12.21
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 杨俊豪
|
||||||
|
实船作业:236# 鑫源永顺
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:104TEU ,2.23循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:237# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:126TEU ,3.68循环/车/小时
|
||||||
|
故障次数/故障率:1次,1.5%
|
||||||
|
人工介入次数/介入率:1次,1.5%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.21
|
||||||
|
班次及人员:
|
||||||
|
白班: 刘炜彬 汪钦良 武大学
|
||||||
|
实船作业:232# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:100TEU ,2.51循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:1次,2%
|
||||||
|
实船作业:233# 恒盛65
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:51TEU ,3.48循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. 所有车pcd地图版本都更新2.2.11完成
|
||||||
|
日期:2025.12.21
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 杨俊豪
|
||||||
|
实船作业:233# 恒盛65
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:88TEU ,2.23循环/车/小时
|
||||||
|
故障次数/故障率:1次,2.2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:234# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:147TEU ,2.23循环/车/小时
|
||||||
|
故障次数/故障率:2次,2.7%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.20
|
||||||
|
班次及人员:
|
||||||
|
白班: 刘炜彬 汪钦良 武大学
|
||||||
|
实船作业:230# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:182TEU ,3.56循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:231# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:124TEU ,3.69循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. 002,007地图PCD更新至2.2.11
|
||||||
|
日期:2025.12.20
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 杨俊豪
|
||||||
|
实船作业:231# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:188TEU ,3.15循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:232# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:48TEU ,2.19循环/车/小时
|
||||||
|
故障次数/故障率:2次,8.3%
|
||||||
|
人工介入次数/介入率:2次,8.3%
|
||||||
|
注意事项:
|
||||||
|
1. 002,007地图PCD更新至2.2.11
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.19
|
||||||
|
班次及人员:
|
||||||
|
白班: 梁启迟 汪钦良 张勤 武大学
|
||||||
|
实船作业:228# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:220TEU ,3.12循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1715 (https://jira.westwell-lab.com/browse/FZ-1715) :
|
||||||
|
002车在E01定位跳变,无法合控制
|
||||||
|
实船作业:229# 合海安邦
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:14TEU ,1.57循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:230# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:16TEU ,1.47循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. FZ-1697 (https://jira.westwell-lab.com/browse/FZ-1697) :18号更换正后16线激光时已重标,观察后续是否仍存在无法超车情况
|
||||||
|
2. FZ-1715 (https://jira.westwell-lab.com/browse/FZ-1715) :数据需上传
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 杨俊豪
|
||||||
|
实船作业:230# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:281TEU ,2.79循环/车/小时
|
||||||
|
故障次数/故障率:1次,0.6%
|
||||||
|
人工介入次数/介入率:0.6次,0.6%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.18
|
||||||
|
班次及人员:
|
||||||
|
白班: 梁启迟 汪钦良 张勤 武大学
|
||||||
|
实船作业:226# 恒盛65
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:21TEU ,1.61循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1711 (https://jira.westwell-lab.com/browse/FZ-1711) :
|
||||||
|
车辆与服务器通信频繁断联,期间无法连接到FMS、AdaOps
|
||||||
|
实船作业:227# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:184TEU ,4.08循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
1. 005车正后激光更换
|
||||||
|
日期:2025.12.18
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 刘炜彬
|
||||||
|
实船作业:227# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:32TEU ,3.79循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:228# 华信长和
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:231TEU ,3.23循环/车/小时
|
||||||
|
故障次数/故障率:1次,0.8%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.17
|
||||||
|
班次及人员:
|
||||||
|
白班: 梁启迟 汪钦良 张勤
|
||||||
|
实船作业:224# 锦钰物流
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:44TEU ,4.46循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:225# 嘉洋17
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:175TEU ,2.3循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1702 (https://jira.westwell-lab.com/browse/FZ-1702) :
|
||||||
|
006在I01W掉线删掉幽灵车后没有回收路径,影响后车作业
|
||||||
|
班次及人员:
|
||||||
|
夜班: 江唯 刘炜彬
|
||||||
|
实船作业:225# 嘉洋17
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:217TEU ,3.48循环/车/小时
|
||||||
|
故障次数/故障率:1次,0.09%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:226# 恒盛65
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:56TEU ,2.89循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.16
|
||||||
|
班次及人员:
|
||||||
|
白班: 武大学 梁启迟 汪钦良 张勤
|
||||||
|
实船作业:223# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:295TEU ,3.11循环/车/小时
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1699 (https://jira.westwell-lab.com/browse/FZ-1699) :
|
||||||
|
AdaOps故障,打开页面报Request failed with status code 502无法正常使用
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
日期:2025.12.16
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:223# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:182TEU ,2.95循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.15
|
||||||
|
班次及人员:
|
||||||
|
白班: 武大学 梁启迟 江唯 张勤
|
||||||
|
实船作业:220# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:102TEU ,2.84循环/车/小时
|
||||||
|
故障次数/故障率:2次,3.9%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:221# 学友洋山
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:152TEU ,3.05循环/车/小时
|
||||||
|
故障次数/故障率:3次,3.9%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:221# 学友洋山
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:42TEU ,2.31循环/车/小时
|
||||||
|
故障次数/故障率:1次,5%
|
||||||
|
人工介入次数/介入率:1次,5%
|
||||||
|
实船作业:222# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:68TEU ,1.7循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:223# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:190TEU ,3.4循环/车/小时
|
||||||
|
故障次数/故障率:2次,2%
|
||||||
|
人工介入次数/介入率:2次,2%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1697 (https://jira.westwell-lab.com/browse/FZ-1697) :
|
||||||
|
002车在I01W场头出现自动驾驶保持驻车,停止行驶2. FZ-1698 (https://jira.westwell-lab.com/browse/FZ-1698) :
|
||||||
|
005在I01W超车道无法超过作业道的人工集卡
|
||||||
|
注意事项:
|
||||||
|
1. AdaOps地图需要更新与FMS地图保持一致,FMS地图目前版本号:fuzhoujiangyin_20251212V1.0.osm,Devops地图版本号: 0.0.50-1746842926 到福州江阴港IGV-Adaops现场群找@赵
|
||||||
|
|
||||||
|
靖怡找人帮忙更新下fuzhouPoints1215.json 任务点位已更新FZ-1530 (https://jira.westwell-lab.com/browse/FZ-1530):问问解涛车宽配置上线持久化没,上线的话可以帮忙修改下车宽配置
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.14
|
||||||
|
班次及人员:
|
||||||
|
白班: 武大学 梁启迟 江唯 张勤 汪钦良
|
||||||
|
实船作业:218# 蓝海启航
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:58TEU ,2.29循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:219# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:246TEU ,4.2循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:219# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:128TEU ,3.93循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:220# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:168TEU ,2.75循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.13
|
||||||
|
班次及人员:
|
||||||
|
白班: 武大学 梁启迟 江唯 张勤
|
||||||
|
实船作业:214# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:180TEU ,2.63循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1687 (https://jira.westwell-lab.com/browse/FZ-1687) :
|
||||||
|
006车在F09作业时,先执行后箱23贝,司机完车后车辆往前一段距离,此时车辆位置超出前箱33贝位置,需要绕圈
|
||||||
|
实船作业:215# 鑫源永顺
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:76TEU ,2.61循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:215# 鑫源永顺
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:149TEU ,2.61循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:216# 钱海83
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:24TEU ,1.76循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:217# 天锦河
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:58TEU ,1.76循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:218# 蓝海启航
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:8TEU ,1.1循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.12
|
||||||
|
班次及人员:
|
||||||
|
白班: 武大学 梁启迟 江唯 张勤
|
||||||
|
实船作业:213# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:182TEU ,2.14循环/车/小时
|
||||||
|
故障次数/故障率:3次,2.3%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
日期:2025.12.12
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:213# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:135TEU ,2.2循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:214# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:52TEU ,2.6循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
002车充电时重启一下,如果有问题直接拉集成王涛(很有可能会出问题FZ-1685 (https://jira.westwell-lab.com/browse/FZ-1685):联系刘子豪他说他手动重试回放,全局视频还是只有最后一分钟数据(可能他忘记了,联系问一下吧)
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.11
|
||||||
|
班次及人员:
|
||||||
|
白班: 汪钦良 武大学 梁启迟 江唯 张勤
|
||||||
|
实船作业:210# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:70TEU ,2.87循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:211# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:138TEU ,3.09循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:212# 弘旭968
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:38TEU ,1.59循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
1. 002、007baize镜像刷写完成
|
||||||
|
注意事项:
|
||||||
|
1. 001无特殊情况这两天不要下电,要收集足够数据排查内存溢出异常
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 杨俊豪
|
||||||
|
实船作业:212# 弘旭968
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:135TEU ,1.91循环/车/小时
|
||||||
|
故障次数/故障率:4次,6%
|
||||||
|
人工介入次数/介入率:8次,12%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1678 (https://jira.westwell-lab.com/browse/FZ-1678) :
|
||||||
|
002车A05作业时因轮胎吊天线触发一层安全无法行驶FZ-1679 (https://jira.westwell-lab.com/browse/FZ-1679):005车A05作业时因箱区箱子鼓包影响对位作业FZ-1680 (https://jira.westwell-lab.com/browse/FZ-1680):003车作业过程中105米文与网关断联,dcu1模块全挂
|
||||||
|
实船作业:213# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:76TEU ,2.32循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.10
|
||||||
|
班次及人员:
|
||||||
|
白班: 汪钦良 武大学 梁启迟 江唯
|
||||||
|
实船作业:207# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:31TEU ,2.45循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:208# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:236TEU ,2.88循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1636 (https://jira.westwell-lab.com/browse/FZ-1636) :
|
||||||
|
在堆高机堆场作业时,前车生成阻拦后车的禁行区对于俩车的距离跨度过大
|
||||||
|
现场任务:
|
||||||
|
1. 001、006、003、005baize镜像刷写完成
|
||||||
|
余留任务:
|
||||||
|
1. 剩余车辆在充电时刷写baize镜像
|
||||||
|
日期:2025.12.10
|
||||||
|
夜班: 杨俊豪 刘炜彬
|
||||||
|
实船作业:208# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:74TEU ,3.1循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:209# 东方祥
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:104TEU ,3.56循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:210# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:92TEU ,3.47循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.09
|
||||||
|
班次及人员:
|
||||||
|
白班: 汪钦良 武大学 梁启迟
|
||||||
|
实船作业:202# 新海明
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:168TEU ,2.72循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:1次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1633 (https://jira.westwell-lab.com/browse/FZ-1633) :
|
||||||
|
002在QC01往岸桥101方向下档时频繁跳变FZ-1634 (https://jira.westwell-lab.com/browse/FZ-1634):FMS框选的禁停区若包含场头贝位区域,车辆到达禁停区前短路径会丢失
|
||||||
|
实船作业:203# 弘旭968
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:14TEU ,2.55循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:204# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:30TEU ,2.53循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 杨俊豪 刘炜彬
|
||||||
|
实船作业:204# 海顺丰7
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:16TEU ,2.76循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:205# 中外运马尼拉
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:33TEU ,3.39循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:206# 广星978
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:256TEU ,4.79循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:207# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:6TEU ,1.12循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. FZ-1614 (https://jira.westwell-lab.com/browse/FZ-1614) :数据已上传
|
||||||
|
2. 001前脸需加固
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.08
|
||||||
|
班次及人员:
|
||||||
|
白班: 汪钦良 武大学 江唯
|
||||||
|
实船作业:198# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:150TEU,3.09循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:199# 东方祥
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:82TEU,3.43循环/车/小时
|
||||||
|
故障次数/故障率:1次,2.4%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:200# 鑫源永顺
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:6TEU,2.24循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班:杨俊豪 刘炜彬
|
||||||
|
实船作业:200# 鑫源永顺
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:158TEU,2.47循环/车/小时
|
||||||
|
故障次数/故障率:1次,1%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:201# 嘉洋16
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:20TEU,2.74循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
001车LED显示屏ip重新配置后显示正常
|
||||||
|
注意事项:
|
||||||
|
下艘作业船舶新海明计划在F09、G10预计09:30靠泊
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.07
|
||||||
|
班次及人员:
|
||||||
|
白班: 汪钦良 武大学 江唯
|
||||||
|
实船作业:193# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:60TEU ,2.57循环/车/小时
|
||||||
|
故障次数/故障率:1次,3%
|
||||||
|
人工介入次数/介入率:1次,1.7%
|
||||||
|
实船作业:194# 德盛6
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:41TEU ,2.9循环/车/小时
|
||||||
|
故障次数/故障率:2次,10.5%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:195# 学友洋山
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:56TEU ,4.37循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班:梁启迟 刘炜彬
|
||||||
|
实船作业:196# 华鑫858
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:92TEU ,2.06循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:197# 广星978
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:88TEU ,2.79循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:198# 卓美23
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:43TEU ,1.96循环/车/小时
|
||||||
|
故障次数/故障率:1次,5%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1619 (https://jira.westwell-lab.com/browse/FZ-1619) :
|
||||||
|
006行驶过程中出现点云数据显示异常,触发二层无法行驶
|
||||||
|
注意事项:
|
||||||
|
1. FZ-1607 (https://jira.westwell-lab.com/browse/FZ-1607) :
|
||||||
|
002在G09无法进入对位中,找自动驾驶对位值班的看下2. FZ-1619 (https://jira.westwell-lab.com/browse/FZ-1619) :
|
||||||
|
006行驶过程中出现点云数据显示异常,触发二层无法行驶,联系毛丽雅确认下是否是基准参数问题
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.06
|
||||||
|
班次及人员:
|
||||||
|
白班: 杨俊豪 武大学 江唯
|
||||||
|
实船作业:188# 华信长和
|
||||||
|
上场车辆数:4
|
||||||
|
作业量/效率:2TEU ,3.05循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:189# 金祥源
|
||||||
|
上场车辆数:4
|
||||||
|
作业量/效率:60TEU ,1.55循环/车/小时
|
||||||
|
故障次数/故障率:2次,6.6%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:190# 海顺丰7
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:20TEU ,2.81循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
夜班:梁启迟 刘炜彬
|
||||||
|
实船作业:191# 恒盛65
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:46TEU ,2.12循环/车/小时
|
||||||
|
故障次数/故障率:2次,8%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:192# 弘旭968
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:84TEU ,1.5循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:193# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:53TEU ,2.03循环/车/小时
|
||||||
|
故障次数/故障率:2次,3%
|
||||||
|
人工介入次数/介入率:1次,1%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1613 (https://jira.westwell-lab.com/browse/FZ-1613) :
|
||||||
|
QC006岸桥断联,FMS无法生成到达该岸桥的路径FZ-1614 (https://jira.westwell-lab.com/browse/FZ-1614):005后箱收箱作业完成,箱子已放到后箱位置,fms的任务流程还未结束
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.05
|
||||||
|
班次及人员:
|
||||||
|
白班: 杨俊豪 汪钦良 张勤 武大学 江唯 陈天博
|
||||||
|
实船作业:186# 华信长和
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:62TEU ,3.45循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:187# 东方吉
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:156TEU ,2.68循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 梁启迟
|
||||||
|
实船作业:187# 东方吉
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:14TEU ,1.74循环/车/小时
|
||||||
|
故障次数/故障率:1次,14%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
FZ-1606 (https://jira.westwell-lab.com/browse/FZ-1606):003车前后箱指令与轨道吊接收指令不同,收箱异常无法正常完成
|
||||||
|
实船作业:188# 东方祥
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:206TEU ,3.03循环/车/小时
|
||||||
|
故障次数/故障率:3次,3%
|
||||||
|
人工介入次数/介入率:10次,9%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1608 (https://jira.westwell-lab.com/browse/FZ-1608) :
|
||||||
|
006车正前激光故障2. FZ-1609 (https://jira.westwell-lab.com/browse/FZ-1609) :
|
||||||
|
005车下电重启后连接不上网关服务器3. FZ-1607 (https://jira.westwell-lab.com/browse/FZ-1607) :
|
||||||
|
002在G09无法进入对位中
|
||||||
|
注意事项:
|
||||||
|
1. 003车自动驾驶已更新至3.6.728p1
|
||||||
|
2. 001车前脸要加固下
|
||||||
|
3. FZ-1608 (https://jira.westwell-lab.com/browse/FZ-1608) 临时用007车正前激光替换
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.04
|
||||||
|
班次及人员:
|
||||||
|
白班: 杨俊豪 汪钦良 张勤 武大学 江唯 陈天博
|
||||||
|
实船作业:183# 海顺丰7
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:84TEU ,2.38循环/车/小时
|
||||||
|
故障次数/故障率:2次,3%
|
||||||
|
人工介入次数/介入率:1次,2%
|
||||||
|
实船作业:184# 学友洋山
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:38TEU ,1.59循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:185# 卓美23
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:26TEU ,3.5循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
FZ-1602 (https://jira.westwell-lab.com/browse/FZ-1602):数据在拷贝待上传
|
||||||
|
夜班:梁启迟 刘炜彬
|
||||||
|
实船作业:185# 卓美23
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:173TEU ,2.56循环/车/小时
|
||||||
|
故障次数/故障率:2次,2%
|
||||||
|
人工介入次数/介入率:2次,2%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1603 (https://jira.westwell-lab.com/browse/FZ-1603) :
|
||||||
|
002车行驶过程中出现LIDAR CPS激光数据丢失,停止行驶FZ-1604 (https://jira.westwell-lab.com/browse/FZ-1604):006车作业途中报2号计算单元无法连接dcu1、交换机断开连接,车辆无法合控制
|
||||||
|
实船作业:186# 华信长和
|
||||||
|
上场车辆数:3
|
||||||
|
作业量/效率:28TEU ,2.54循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
1. 更换002车左后激光(WIFI模块连不上,无法自动标定激光,需要找人排查)
|
||||||
|
2. FZ-1602数据已上传
|
||||||
|
注意事项:
|
||||||
|
两份 qomolo-miivii-apex-ad10-l4t 文件已上传至1~6车105、106的 /data/ 中
|
||||||
|
2. G10场尾围栏会阻挡车辆出场以及临时车道拐弯
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.03
|
||||||
|
班次及人员:
|
||||||
|
白班: 杨俊豪 汪钦良 张勤 武大学
|
||||||
|
实船作业:180# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:126TEU ,2.7循环/车/小时
|
||||||
|
故障次数/故障率:2次,3%
|
||||||
|
人工介入次数/介入率:3次,4%
|
||||||
|
重点问题:
|
||||||
|
FZ-1593 (https://jira.westwell-lab.com/browse/FZ-1593):六台车在轮胎吊区域A05.002贝作业时,触发一层无法到达作业贝位FZ-1591 (https://jira.westwell-lab.com/browse/FZ-1591):单车的箱子已经装到船上,单车卡片的任务进程卡在对位完成阶段,任务未结束
|
||||||
|
实船作业:181# 晟杰平安
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:41TEU ,2.28循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:182# 东方祥
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:18TEU ,2.01循环/车/小时
|
||||||
|
故障次数/故障率:1次,11%
|
||||||
|
人工介入次数/介入率:1次,11%
|
||||||
|
重点问题:
|
||||||
|
FZ-1594 (https://jira.westwell-lab.com/browse/FZ-1594):单车在G09作业时对位位置不准确,轮胎吊无法放箱
|
||||||
|
残留任务:
|
||||||
|
FZ-1587 (https://jira.westwell-lab.com/browse/FZ-1587):7278p1数据上传007整车重启FZ-1594 (https://jira.westwell-lab.com/browse/FZ-1594):数据上传,经办人分配
|
||||||
|
|
||||||
|
日期:2025.12.03
|
||||||
|
班次及人员:
|
||||||
|
夜班: 刘炜彬 梁启迟
|
||||||
|
实船作业:182# 东方祥
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:150TEU ,2.64循环/车/小时
|
||||||
|
故障次数/故障率:4次,5%
|
||||||
|
人工介入次数/介入率:8次,10%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1595 (https://jira.westwell-lab.com/browse/FZ-1595) :
|
||||||
|
006车行驶过程中出现LIDAR CPS激光数据丢失,停止行驶FZ-1596 (https://jira.westwell-lab.com/browse/FZ-1596):007车充电cc2口断开,充电枪无法插上FZ-1598 (https://jira.westwell-lab.com/browse/FZ-1598):003在G09没有进入对位状态FZ-1597 (https://jira.westwell-lab.com/browse/FZ-1597):001车行驶过程中会频繁触发二层,停止行驶后自行恢复
|
||||||
|
|
||||||
|
实船作业:183# 海顺丰7
|
||||||
|
上场车辆数:4
|
||||||
|
作业量/效率:42TEU ,3.06循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. F10场尾石墩需要移走,目前IGV从FG之间道路走中间车道,无法从F10场尾出去
|
||||||
|
2. G09还是无法对位
|
||||||
|
3. 007充电cc2口断了,充电枪插不进去,可以让汪工再试试
|
||||||
|
4. 001左前三色灯掉落
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.02
|
||||||
|
班次及人员:
|
||||||
|
白班: 杨俊豪 汪钦良 张勤 武大学
|
||||||
|
实船作业:177# 丰信达27
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:32TEU ,2.28循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:178# 德盛6
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:84TEU ,2.08循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:179# 嘉洋16
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:97TEU ,2.29循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
FZ-1584 (https://jira.westwell-lab.com/browse/FZ-1584):车辆在QC08与QC09之间频繁定位跳变
|
||||||
|
残留任务:
|
||||||
|
1. sudo vim /opt/qomolo/qpilot/temp/parameter/profile/planning/cnfzhjyg/cnfzhjyg_areas.yaml
|
||||||
|
在车辆没有作业时,登录单车105与106:
|
||||||
|
找到id为166的内容修改为如下内容(修改完毕后重启单车)
|
||||||
|
- description: {alignment_heading: 2.6929240226745605}
|
||||||
|
id: 166
|
||||||
|
type: kAlignmentArea
|
||||||
|
vertices:
|
||||||
|
- [-369.5056, 457.314972]
|
||||||
|
- [-527.766968, 533.3679]
|
||||||
|
- [-526.279053, 536.531433]
|
||||||
|
- [-367.979675, 460.317963]
|
||||||
|
日期:2025.12.02
|
||||||
|
班次及人员:
|
||||||
|
夜班:梁启迟 陈天博
|
||||||
|
实船作业:179# 嘉洋16
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:92TEU ,2.48循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1588 (https://jira.westwell-lab.com/browse/FZ-1588) :
|
||||||
|
港区换班更换桥吊作业,QC7号岸桥实际移动到嘉洋16这个位置,RTK上报坐标不对,收到的就是和QC6挨着的位置,导致无法作业
|
||||||
|
实船作业:180# 美成811
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:128TEU ,2.5循环/车/小时
|
||||||
|
故障次数/故障率:1次,%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
FZ-1589 (https://jira.westwell-lab.com/browse/FZ-1589):006车在C02轮胎吊进入对位,师傅正常放吊具未检测到吊具,不移动,Adaops报QC或RTGC未到达
|
||||||
|
注意事项:
|
||||||
|
1. FZ-1588 (https://jira.westwell-lab.com/browse/FZ-1588) :需要找集成看看问题。
|
||||||
|
2. 002车id166 的sudo vim /opt/qomolo/qpilot/temp/parameter/profile/planning/cnfzhjyg/cnfzhjyg_areas.yaml这个还未改
|
||||||
|
———————————————————————————————————————————————
|
||||||
|
日期:2025.12.01
|
||||||
|
班次及人员:
|
||||||
|
白班: 刘炜彬 杨俊豪 汪钦良 张勤
|
||||||
|
实船作业:170# 鑫源永顺
|
||||||
|
上场车辆数:4
|
||||||
|
作业量/效率:16TEU ,2.25循环/车/小时
|
||||||
|
故障次数/故障率:1次,12.5%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:172#卓美23
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:49TEU ,1.88循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:173# 信荣海
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:33TEU ,4.74循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:174# 鑫源永顺
|
||||||
|
上场车辆数:5
|
||||||
|
作业量/效率:9TEU ,2.16循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:175# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:80TEU ,2.27循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
现场任务:
|
||||||
|
FZ-1580 (https://jira.westwell-lab.com/browse/FZ-1580):3.6.739版本耐久测试数据已回传
|
||||||
|
注意事项:
|
||||||
|
QC05下电检修,FMS服务器配置里cms_conf.json删除了QC05,作业时添加回来
|
||||||
|
夜班:梁启迟 陈天博
|
||||||
|
实船作业:175# 华信长和
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:50TEU ,2.72循环/车/小时
|
||||||
|
故障次数/故障率:1次,2%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
重点问题:
|
||||||
|
1. FZ-1583 (https://jira.westwell-lab.com/browse/FZ-1583) :
|
||||||
|
F09作业时误检堆高机防堵,此时堆高机在箱区外侧
|
||||||
|
实船作业:176# 弘旭968
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:132TEU ,1.84循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
实船作业:177# 丰信达27
|
||||||
|
上场车辆数:6
|
||||||
|
作业量/效率:31TEU ,2.53循环/车/小时
|
||||||
|
故障次数/故障率:0次,0%
|
||||||
|
人工介入次数/介入率:0次,0%
|
||||||
|
注意事项:
|
||||||
|
1. 华信长和、弘旭968、丰信达27效率统计异常,上传数据未正常剔除
|
||||||
|
———————————————————————————————————————————————
|
||||||
@@ -49,31 +49,80 @@ class DailyLogsDatabase:
|
|||||||
efficiency REAL,
|
efficiency REAL,
|
||||||
vehicles INTEGER,
|
vehicles INTEGER,
|
||||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||||
UNIQUE(date, shift, ship_name)
|
UNIQUE(date, shift, ship_name) ON CONFLICT REPLACE
|
||||||
)
|
)
|
||||||
''')
|
''')
|
||||||
|
|
||||||
|
# 检查是否需要迁移旧表结构
|
||||||
|
cursor.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='daily_handover_logs'")
|
||||||
|
table_sql = cursor.fetchone()[0]
|
||||||
|
if 'UNIQUE' not in table_sql:
|
||||||
|
# 旧表结构,需要迁移
|
||||||
|
print("检测到旧表结构,正在迁移...")
|
||||||
|
|
||||||
|
# 重命名旧表
|
||||||
|
cursor.execute('ALTER TABLE daily_handover_logs RENAME TO daily_handover_logs_old')
|
||||||
|
|
||||||
|
# 创建新表
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE daily_handover_logs (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
date TEXT NOT NULL,
|
||||||
|
shift TEXT NOT NULL,
|
||||||
|
ship_name TEXT NOT NULL,
|
||||||
|
teu INTEGER,
|
||||||
|
efficiency REAL,
|
||||||
|
vehicles INTEGER,
|
||||||
|
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(date, shift, ship_name) ON CONFLICT REPLACE
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# 复制数据(忽略重复)
|
||||||
|
cursor.execute('''
|
||||||
|
INSERT OR IGNORE INTO daily_handover_logs
|
||||||
|
(date, shift, ship_name, teu, efficiency, vehicles, created_at)
|
||||||
|
SELECT date, shift, ship_name, teu, efficiency, vehicles, created_at
|
||||||
|
FROM daily_handover_logs_old
|
||||||
|
''')
|
||||||
|
|
||||||
|
# 删除旧表
|
||||||
|
cursor.execute('DROP TABLE daily_handover_logs_old')
|
||||||
|
print("迁移完成!")
|
||||||
|
|
||||||
# 索引
|
# 索引
|
||||||
cursor.execute('CREATE INDEX IF NOT EXISTS idx_date ON daily_handover_logs(date)')
|
cursor.execute('CREATE INDEX IF NOT EXISTS idx_date ON daily_handover_logs(date)')
|
||||||
cursor.execute('CREATE INDEX IF NOT EXISTS idx_ship ON daily_handover_logs(ship_name)')
|
cursor.execute('CREATE INDEX IF NOT EXISTS idx_ship ON daily_handover_logs(ship_name)')
|
||||||
|
|
||||||
|
# 创建未统计月报数据表
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS monthly_unaccounted (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
year_month TEXT NOT NULL UNIQUE,
|
||||||
|
teu INTEGER NOT NULL,
|
||||||
|
note TEXT,
|
||||||
|
created_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
|
|
||||||
def insert(self, log: Dict) -> bool:
|
def insert(self, log: Dict) -> bool:
|
||||||
"""插入单条记录"""
|
"""插入记录(存在则更新,不存在则插入)"""
|
||||||
try:
|
try:
|
||||||
cursor = self.conn.cursor()
|
cursor = self.conn.cursor()
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
INSERT OR REPLACE INTO daily_handover_logs
|
INSERT OR REPLACE INTO daily_handover_logs
|
||||||
(date, shift, ship_name, teu, efficiency, vehicles)
|
(date, shift, ship_name, teu, efficiency, vehicles, created_at)
|
||||||
VALUES (?, ?, ?, ?, ?, ?)
|
VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
||||||
''', (
|
''', (
|
||||||
log['date'], log['shift'], log['ship_name'],
|
log['date'], log['shift'], log['ship_name'],
|
||||||
log.get('teu'), log.get('efficiency'), log.get('vehicles')
|
log.get('teu'), log.get('efficiency'), log.get('vehicles')
|
||||||
))
|
))
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
return True
|
return True
|
||||||
except sqlite3.Error:
|
except sqlite3.Error as e:
|
||||||
|
print(f"数据库错误: {e}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def insert_many(self, logs: List[Dict]) -> int:
|
def insert_many(self, logs: List[Dict]) -> int:
|
||||||
@@ -130,6 +179,31 @@ class DailyLogsDatabase:
|
|||||||
'date_range': {'start': date_range[0], 'end': date_range[1]}
|
'date_range': {'start': date_range[0], 'end': date_range[1]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def insert_unaccounted(self, year_month: str, teu: int, note: str = '') -> bool:
|
||||||
|
"""插入未统计数据"""
|
||||||
|
try:
|
||||||
|
cursor = self.conn.cursor()
|
||||||
|
cursor.execute('''
|
||||||
|
INSERT OR REPLACE INTO monthly_unaccounted
|
||||||
|
(year_month, teu, note, created_at)
|
||||||
|
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
||||||
|
''', (year_month, teu, note))
|
||||||
|
self.conn.commit()
|
||||||
|
return True
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
print(f"数据库错误: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_unaccounted(self, year_month: str) -> int:
|
||||||
|
"""获取指定月份的未统计数据"""
|
||||||
|
cursor = self.conn.cursor()
|
||||||
|
cursor.execute(
|
||||||
|
'SELECT teu FROM monthly_unaccounted WHERE year_month = ?',
|
||||||
|
(year_month,)
|
||||||
|
)
|
||||||
|
result = cursor.fetchone()
|
||||||
|
return result[0] if result else 0
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""关闭连接"""
|
"""关闭连接"""
|
||||||
if self.conn:
|
if self.conn:
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ class HandoverLogParser:
|
|||||||
|
|
||||||
shift_start = block.find(shift_pattern) + len(shift_pattern)
|
shift_start = block.find(shift_pattern) + len(shift_pattern)
|
||||||
|
|
||||||
# 找到下一个班次或注意事项
|
# 只找到下一个班次作为边界,不限制"注意事项:"
|
||||||
next_pos = len(block)
|
next_pos = len(block)
|
||||||
for next_shift in ['白班', '夜班']:
|
for next_shift in ['白班', '夜班']:
|
||||||
if next_shift != shift:
|
if next_shift != shift:
|
||||||
@@ -93,10 +93,6 @@ class HandoverLogParser:
|
|||||||
if pos != -1 and pos < next_pos:
|
if pos != -1 and pos < next_pos:
|
||||||
next_pos = pos
|
next_pos = pos
|
||||||
|
|
||||||
notes_pos = block.find('注意事项:', shift_start)
|
|
||||||
if notes_pos != -1 and notes_pos < next_pos:
|
|
||||||
next_pos = notes_pos
|
|
||||||
|
|
||||||
shift_content = block[shift_start:next_pos]
|
shift_content = block[shift_start:next_pos]
|
||||||
self._parse_ships(shift_content, date, shift, logs)
|
self._parse_ships(shift_content, date, shift, logs)
|
||||||
|
|
||||||
@@ -109,15 +105,17 @@ class HandoverLogParser:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
cleaned = part.replace('\xa0', ' ').strip()
|
cleaned = part.replace('\xa0', ' ').strip()
|
||||||
ship_match = re.search(r'#\s+(\S+)', cleaned)
|
# 匹配 "xxx# 船名" 格式(船号和船名分开)
|
||||||
|
ship_match = re.search(r'(\d+)#\s*(\S+)', cleaned)
|
||||||
|
|
||||||
if not ship_match:
|
if not ship_match:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
ship_name = ship_match.group(1)
|
ship_name = f"{ship_match.group(1)}#{ship_match.group(2)}"
|
||||||
|
|
||||||
vehicles_match = re.search(r'上场车辆数:(\d+)', cleaned)
|
vehicles_match = re.search(r'上场车辆数:(\d+)', cleaned)
|
||||||
teu_eff_match = re.search(
|
teu_eff_match = re.search(
|
||||||
r'作业量/效率:(\d+)TEU[,,\s]+([\d.]+)循环/车/小时', cleaned
|
r'作业量/效率:(\d+)TEU[,,\s]*', cleaned
|
||||||
)
|
)
|
||||||
|
|
||||||
log = ShipLog(
|
log = ShipLog(
|
||||||
@@ -125,7 +123,7 @@ class HandoverLogParser:
|
|||||||
shift=shift,
|
shift=shift,
|
||||||
ship_name=ship_name,
|
ship_name=ship_name,
|
||||||
teu=int(teu_eff_match.group(1)) if teu_eff_match else None,
|
teu=int(teu_eff_match.group(1)) if teu_eff_match else None,
|
||||||
efficiency=float(teu_eff_match.group(2)) if teu_eff_match else None,
|
efficiency=None,
|
||||||
vehicles=int(vehicles_match.group(1)) if vehicles_match else None
|
vehicles=int(vehicles_match.group(1)) if vehicles_match else None
|
||||||
)
|
)
|
||||||
logs.append(log)
|
logs.append(log)
|
||||||
|
|||||||
182
src/report.py
Normal file
182
src/report.py
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
日报生成模块
|
||||||
|
"""
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
from typing import Dict, List, Optional
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
# 添加项目根目录到 Python 路径
|
||||||
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
|
|
||||||
|
from src.database import DailyLogsDatabase
|
||||||
|
|
||||||
|
|
||||||
|
class DailyReportGenerator:
|
||||||
|
"""每日作业报告生成器"""
|
||||||
|
|
||||||
|
DAILY_TARGET = 300 # 每日目标作业量
|
||||||
|
|
||||||
|
def __init__(self, db_path: str = 'data/daily_logs.db'):
|
||||||
|
"""初始化"""
|
||||||
|
self.db = DailyLogsDatabase(db_path)
|
||||||
|
|
||||||
|
def get_latest_date(self) -> str:
|
||||||
|
"""获取数据库中最新的日期"""
|
||||||
|
logs = self.db.query_all(limit=1)
|
||||||
|
if logs:
|
||||||
|
return logs[0]['date']
|
||||||
|
return datetime.now().strftime('%Y-%m-%d')
|
||||||
|
|
||||||
|
def get_daily_data(self, date: str) -> Dict:
|
||||||
|
"""获取指定日期的数据"""
|
||||||
|
logs = self.db.query_by_date(date)
|
||||||
|
|
||||||
|
# 按船名汇总
|
||||||
|
ships = {}
|
||||||
|
for log in logs:
|
||||||
|
ship = log['ship_name']
|
||||||
|
if ship not in ships:
|
||||||
|
ships[ship] = 0
|
||||||
|
if log.get('teu'):
|
||||||
|
ships[ship] += log['teu']
|
||||||
|
|
||||||
|
return {
|
||||||
|
'date': date,
|
||||||
|
'ships': ships,
|
||||||
|
'total_teu': sum(ships.values()),
|
||||||
|
'ship_count': len(ships)
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_monthly_stats(self, date: str) -> Dict:
|
||||||
|
"""获取月度统计(截止到指定日期)"""
|
||||||
|
year_month = date[:7] # YYYY-MM
|
||||||
|
target_date = datetime.strptime(date, '%Y-%m-%d').date()
|
||||||
|
|
||||||
|
logs = self.db.query_all(limit=10000)
|
||||||
|
|
||||||
|
# 只统计当月且在指定日期之前的数据
|
||||||
|
monthly_logs = [
|
||||||
|
log for log in logs
|
||||||
|
if log['date'].startswith(year_month)
|
||||||
|
and datetime.strptime(log['date'], '%Y-%m-%d').date() <= target_date
|
||||||
|
]
|
||||||
|
|
||||||
|
# 按日期汇总
|
||||||
|
daily_totals = {}
|
||||||
|
for log in monthly_logs:
|
||||||
|
d = log['date']
|
||||||
|
if d not in daily_totals:
|
||||||
|
daily_totals[d] = 0
|
||||||
|
if log.get('teu'):
|
||||||
|
daily_totals[d] += log['teu']
|
||||||
|
|
||||||
|
# 计算当月天数(已过的天数)
|
||||||
|
current_date = datetime.strptime(date, '%Y-%m-%d')
|
||||||
|
if current_date.day == 1:
|
||||||
|
days_passed = 1
|
||||||
|
else:
|
||||||
|
days_passed = current_date.day
|
||||||
|
|
||||||
|
# 获取未统计数据
|
||||||
|
unaccounted = self.db.get_unaccounted(year_month)
|
||||||
|
|
||||||
|
planned = days_passed * self.DAILY_TARGET
|
||||||
|
actual = sum(daily_totals.values()) + unaccounted
|
||||||
|
|
||||||
|
return {
|
||||||
|
'year_month': year_month,
|
||||||
|
'days_passed': days_passed,
|
||||||
|
'planned': planned,
|
||||||
|
'actual': actual,
|
||||||
|
'unaccounted': unaccounted,
|
||||||
|
'completion': round(actual / planned * 100, 2) if planned > 0 else 0,
|
||||||
|
'daily_totals': daily_totals
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_shift_personnel(self, date: str) -> Dict:
|
||||||
|
"""获取班次人员(从日志文本中解析,需要配合 parser 使用)"""
|
||||||
|
# 目前数据库中没有人员信息,返回空
|
||||||
|
# 可以后续扩展添加人员追踪功能
|
||||||
|
return {
|
||||||
|
'day_shift': '',
|
||||||
|
'night_shift': '',
|
||||||
|
'duty_phone': '13107662315'
|
||||||
|
}
|
||||||
|
|
||||||
|
def generate_report(self, date: str = None) -> str:
|
||||||
|
"""生成日报"""
|
||||||
|
if not date:
|
||||||
|
date = self.get_latest_date()
|
||||||
|
|
||||||
|
# 转换日期格式 2025-12-28 -> 12/28,同时确保查询格式正确
|
||||||
|
try:
|
||||||
|
# 尝试解析各种日期格式
|
||||||
|
parsed = datetime.strptime(date, '%Y-%m-%d')
|
||||||
|
display_date = parsed.strftime('%m/%d')
|
||||||
|
query_date = parsed.strftime('%Y-%m-%d') # 标准化为双数字格式
|
||||||
|
except ValueError:
|
||||||
|
# 如果已经是标准格式,直接使用
|
||||||
|
display_date = datetime.strptime(date, '%Y-%m-%d').strftime('%m/%d')
|
||||||
|
query_date = date
|
||||||
|
|
||||||
|
daily_data = self.get_daily_data(query_date)
|
||||||
|
monthly_data = self.get_monthly_stats(query_date)
|
||||||
|
personnel = self.get_shift_personnel(query_date)
|
||||||
|
|
||||||
|
# 月度统计
|
||||||
|
month_display = date[5:7] + '/' + date[:4] # MM/YYYY
|
||||||
|
|
||||||
|
lines = []
|
||||||
|
lines.append(f"日期:{display_date}")
|
||||||
|
lines.append("")
|
||||||
|
|
||||||
|
# 船次信息(紧凑格式,不留空行)
|
||||||
|
ship_lines = []
|
||||||
|
for ship, teu in sorted(daily_data['ships'].items(), key=lambda x: -x[1]):
|
||||||
|
ship_lines.append(f"船名:{ship}")
|
||||||
|
ship_lines.append(f"作业量:{teu}TEU")
|
||||||
|
lines.extend(ship_lines)
|
||||||
|
lines.append("")
|
||||||
|
|
||||||
|
# 当日实际作业量
|
||||||
|
lines.append(f"当日实际作业量:{daily_data['total_teu']}TEU")
|
||||||
|
lines.append("")
|
||||||
|
|
||||||
|
# 月度统计
|
||||||
|
lines.append(f"当月计划作业量:{monthly_data['planned']}TEU (用天数*{self.DAILY_TARGET}TEU)")
|
||||||
|
if monthly_data.get('unaccounted', 0) > 0:
|
||||||
|
lines.append(f"当月未统计数据:{monthly_data['unaccounted']}TEU")
|
||||||
|
lines.append(f"当月实际作业量:{monthly_data['actual']}TEU")
|
||||||
|
lines.append(f"当月完成比例:{monthly_data['completion']}%")
|
||||||
|
lines.append("")
|
||||||
|
|
||||||
|
# 人员信息(需要配合 Confluence 日志中的班次人员信息)
|
||||||
|
day_personnel = personnel['day_shift']
|
||||||
|
night_personnel = personnel['night_shift']
|
||||||
|
duty_phone = personnel['duty_phone']
|
||||||
|
|
||||||
|
# 班次日期使用次日
|
||||||
|
next_day = (parsed + timedelta(days=1)).strftime('%m/%d')
|
||||||
|
lines.append(f"{next_day} 白班人员:{day_personnel}")
|
||||||
|
lines.append(f"{next_day} 夜班人员:{night_personnel}")
|
||||||
|
lines.append(f"24小时值班手机:{duty_phone}")
|
||||||
|
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
def print_report(self, date: str = None):
|
||||||
|
"""打印日报"""
|
||||||
|
report = self.generate_report(date)
|
||||||
|
print(report)
|
||||||
|
return report
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
"""关闭数据库连接"""
|
||||||
|
self.db.close()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
generator = DailyReportGenerator()
|
||||||
|
generator.print_report()
|
||||||
|
generator.close()
|
||||||
Reference in New Issue
Block a user