本功能为 Issue #58 "[集抄] 远传集抄(批量抄表 + 大表监控 DN80+)" 的实现,提供了完整的远传集抄解决方案。
根据水表管径设置合理的最大月增量,超出范围标记为异常:
主要业务逻辑实现:
enhancedBatchRead(): 批量抄表主方法readSingleMeter(): 单表抄表与校验validateReading(): 读数校验逻辑largeMeterEnhancedMonitor(): 大表监控checkLargeMeterAlerts(): 大表预警检查REST API 接口:
/revenue/enhanced/reading/batch/multi-area: 多区域批量抄表/revenue/enhanced/reading/batch/{area}: 单区域批量抄表/revenue/enhanced/meter/large/enhanced: 大表监控查询/revenue/enhanced/reading/report/{reportId}: 报表查询POST /revenue/enhanced/reading/batch/multi-area
Content-Type: application/json
{
"areas": ["区域A", "区域B", "区域C"],
"generateReport": true,
"validateOnly": false
}
POST /revenue/enhanced/reading/batch/{area}
Content-Type: application/json
GET /revenue/enhanced/meter/large/enhanced
{
"areas": ["区域A"],
"totalCount": 150,
"successCount": 145,
"failedCount": 5,
"abnormalCount": 8,
"period": "2026-06",
"reportId": "BATCH_READ_2026-06_1678901234567",
"generatedAt": "2026-06-15T08:30:00",
"area_区域A": {
"totalCount": 150,
"successCount": 145,
"failedCount": 5,
"abnormalCount": 8,
"abnormalReasons": {
"读数递减": 2,
"零读数": 3,
"增量异常": 3
}
}
}
{
"totalCount": 25,
"monitors": [
{
"meterNo": "M001",
"caliber": "DN80",
"customerName": "客户A",
"area": "区域A",
"deviceSn": "DEV001",
"deviceStatus": "online",
"currentReading": 1250.50,
"lastReadingDate": "2026-06-01",
"consumption": 150.30
}
],
"alarms": [
{
"meterNo": "M001",
"title": "突增预警",
"type": "MONITORING_HIGH_CONSUMPTION",
"description": "月用量150.30异常高,建议检查水表状态",
"severity": "HIGH",
"status": "PENDING",
"createdAt": "2026-06-15T08:30:00"
}
]
}
不同管径对应的最大合理月增量:
| 管径 | 最大月增量(立方米) | 适用场景 |
|---|---|---|
| DN15 | 10 | 小用户住宅 |
| DN20 | 20 | 小用户住宅 |
| DN25 | 30 | 小用户住宅 |
| DN32 | 50 | 小商业用户 |
| DN40 | 80 | 中等商业 |
| DN50 | 150 | 大商业 |
| DN65 | 300 | 工业用户 |
| DN80 | 500 | 工业大户 |
| DN100 | 800 | 大工业用户 |
| DN150 | 1500 | 超大用户 |
| DN200+ | 2000 | 特大型用户 |