|
|
63a8d5a8f2
|
告警-工单解耦:企微交互+Agent全面切换到工单驱动
Part A: 数据层
- 新增 WechatCardState 模型(order_id ↔ alarm_id 映射 + response_code)
- 新建 models_iot.py(IoT 工单只读 ORM:ops_order + security_ext + clean_ext)
- config.py 新增 IOT_DATABASE_URL 配置
Part B: 企微解耦(alarm_id → order_id)
- wechat_service: response_code 存储迁移到 wechat_card_state,集中 helper
- 卡片发送/更新方法改用 order_id,按钮 key: confirm_{order_id}
- wechat_callback: 按钮解析改 order_id,反查 alarm_id(可空)
- wechat_notify_api: send-card/sync-status 以 orderId 为主键
- yudao_aiot_alarm: 卡片操作改用 order_id,删重复 helper
Part C: Agent 工具全面改为工单驱动
- 新建 order_query.py(查 IoT ops_order,支持安保+保洁工单)
- 新建 order_action.py(操作工单状态 + 提交处理结果)
- 更新 prompts.py 为工单助手
- 更新工具注册(__init__.py)
Part D: 日报改为工单驱动
- daily_report_service 从查 alarm_event 改为查 IoT ops_order + 扩展表
- 支持安保+保洁工单统计
|
2026-03-31 10:49:42 +08:00 |
|
|
|
9513951b1b
|
修复:企微群聊不发送告警截图
根因:_get_presigned_url 对完整 COS 永久 URL 直接原样返回,
未重新生成预签名 URL,导致私有桶的图片下载失败(403)。
修复:
1. _get_presigned_url 增加 COS URL 识别,提取 object key 重新签名
2. 新增 _extract_cos_object_key 解析两种 COS URL 格式
3. send-card 增加截图诊断日志(追踪 IoT/DB 来源和最终 URL)
4. upload_media_from_url 增加下载/上传诊断日志
|
2026-03-30 14:30:01 +08:00 |
|
|
|
afa463ac65
|
修复:send-card 群聊通知三个问题
1. 告警告警重复:用 alarm_type_code 映射而非 IoT 的 title
2. 摄像头未知:从告警表查 device_id 获取摄像头名称
3. 截图403:从告警表取 object key 生成预签名 URL(IoT 传的永久URL无签名)
|
2026-03-30 11:17:21 +08:00 |
|
|
|
3a62202406
|
修复:恢复 send-card 接口,dispatched 只记录日志不发企微
|
2026-03-27 14:11:03 +08:00 |
|
|
|
e6fd316036
|
重构 sync-status 接口:按状态分流处理,删除 send-card 接口
- dispatched: 发企微群聊+私发卡片(不更新告警)
- confirmed: 仅更新卡片到第二步(不更新告警)
- 终态(completed/false_alarm/auto_resolved): 更新告警+卡片
- 删除 send-card 接口和 SendCardRequest 类(企微由 dispatched 触发)
|
2026-03-27 13:12:29 +08:00 |
|
|
|
e7c9ee126f
|
移除调试代码,清理 send-card/wechat_service 调试日志和端点
|
2026-03-26 13:39:20 +08:00 |
|
|
|
e874a35c12
|
调试:添加 IoT 回调请求详细日志,排查 body 为空问题
|
2026-03-25 17:11:25 +08:00 |
|
|
|
6fcd8f68bf
|
修复 IoT 回调 send-card/sync-status 返回 422 的问题
IoT Java 客户端发送的请求体格式不被 FastAPI Pydantic 自动解析,
改为手动解析 request body,兼容 JSON/form/query params 三种格式。
同时添加 dispatched 状态映射,记录请求日志便于调试。
|
2026-03-25 17:04:30 +08:00 |
|
|
|
3a9595de7c
|
切换到 IoT 工单驱动模式:所有状态变更由 IoT 回调驱动
1. notify_dispatch: 工单优先于卡片发送,创建成功则跳过直发卡片(等IoT回调send-card)
2. wechat_callback: IoT API 成功后直接返回,等 sync-status 回调更新告警+卡片
3. edge_compat: 启用工单自动结单,成功后等 sync-status 回调
4. yudao_aiot_alarm: 前端操作优先调 IoT 工单 API,降级直接更新卡片
5. wechat_notify_api: 修复 confirmed 的 card_action 为 None 导致卡片不更新的 bug
所有路径均保留降级逻辑:IoT 失败或工单未启用时直接处理告警+更新卡片
|
2026-03-25 15:38:52 +08:00 |
|
|
|
7d4c916055
|
修复:IoT回调接口422错误,字段改为Optional兼容null值
|
2026-03-25 10:56:12 +08:00 |
|
|
|
50f016e9fb
|
功能:添加日报手动触发接口 POST /api/wechat/notify/daily-report
|
2026-03-25 09:21:36 +08:00 |
|
|
|
96856574ca
|
功能:新增 IoT 回调接口 send-card 和 sync-status
- POST /api/wechat/notify/send-card — IoT 派单后发企微卡片
- POST /api/wechat/notify/sync-status — IoT 状态变更后同步告警+卡片
- 支持 confirmed/completed/false_alarm/auto_resolved 四种状态
|
2026-03-23 11:51:16 +08:00 |
|