Files
4an-workorder/app/utils/lzmx.py
T
2025-08-08 10:38:10 +08:00

102 lines
3.4 KiB
Python
Executable File

# utils\lzmx.py
import requests
import json
from datetime import datetime
# 推送系统工单处理信息到量子密信
def send_lzmx_message(webhook_url, handler, device_id, device_type, distance_from_branch, restore_time):
headers = {'Content-Type': 'application/json'}
message = {
"type": "text",
"textMsg": {
"content":
f"📢 故障处理通知\n"
f"故障设备:{device_id}\n"
f"处理时间:{restore_time.strftime('%Y-%m-%d %H:%M:%S')}\n"
f"故障类型:{device_type}\n"
f"距离支局:{distance_from_branch}公里\n"
f"处理人:{handler}"
}
}
try:
response = requests.post(
webhook_url,
headers=headers,
data=json.dumps(message)
)
response.raise_for_status()
return True
except Exception as e:
print(f"发送量子密信消息失败: {str(e)}")
return False
# 推送手工申报工单信息到量子密信
def send_manual_lzmx_message(webhook_url, handler, device_id, fault_type, distance_from_branch, fault_time, project_type, device_location):
headers = {'Content-Type': 'application/json'}
message = {
"type": "text",
"textMsg": {
"content":
f"📝 故障处理通知\n"
f"项目类型:{project_type}\n"
f"故障设备:{device_id}\n"
f"设备位置:{device_location}\n"
f"故障时间:{fault_time.strftime('%Y-%m-%d %H:%M:%S')}\n"
f"故障类型:{fault_type}\n"
f"距离支局:{distance_from_branch}公里\n"
f"处理人:{handler}"
}
}
try:
response = requests.post(
webhook_url,
headers=headers,
data=json.dumps(message)
)
response.raise_for_status()
return True
except Exception as e:
print(f"发送量子密信消息失败: {str(e)}")
return False
# 每周五统计本周情况推送量子密信
def send_weekly_stats_message(webhook_url, stats):
headers = {'Content-Type': 'application/json'}
# 格式化前三名处理人信息
top_handlers = []
for handler, amount in stats['top_handlers']:
top_handlers.append(f"👤 {handler}: {amount}元")
message = {
"type": "text",
"textMsg": {
"content":
f"📊 本周工单统计报告\n"
f"—————————————————\n"
f" 本周派单:{stats['total_orders']}\n"
f" 已处理数:{stats['completed_orders']}\n"
f" 未处理数:{stats['pending_orders']}\n"
f" 手工故障:{stats['manual_orders']}\n\n"
f"🏆 前三名预计奖励:\n"
f"{chr(10).join(top_handlers)}\n"
f"—————————————————\n"
f"统计时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
}
}
try:
response = requests.post(
webhook_url,
headers=headers,
data=json.dumps(message)
)
response.raise_for_status()
return True
except Exception as e:
print(f"发送量子密信消息失败: {str(e)}")
return False