From fa9721762cd1ee3775c2d5cd17b0fda8710aaa81 Mon Sep 17 00:00:00 2001 From: colaftc Date: Fri, 20 Mar 2026 20:18:30 +0800 Subject: [PATCH] feat: fix setting --- api_v1/admin.py | 34 ++++++++++++++++++++++++++++++++++ flower/settings.py | 1 + printing/handlers.py | 14 ++++++-------- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/api_v1/admin.py b/api_v1/admin.py index e47e534..6d35e57 100644 --- a/api_v1/admin.py +++ b/api_v1/admin.py @@ -5,6 +5,7 @@ from api_v1.models import ( DataSync, MDYPlateOrderStaging, MDYPlateOrderStagingTiiaUploadFailure, + PrintingExternalSyncFailure, ApiAuditLog, ) from .tasks import backup_database @@ -67,6 +68,39 @@ class MDYPlateOrderStagingTiiaUploadFailureAdmin(admin.ModelAdmin): ordering = ['-created_at'] +@admin.register(PrintingExternalSyncFailure) +class PrintingExternalSyncFailureAdmin(admin.ModelAdmin): + list_display = [ + 'id', + 'run_date', + 'external_record_id', + 'external_order_id', + 'product_name', + 'attempts', + 'last_attempt_at', + 'created_at', + ] + list_filter = ['run_date', 'created_at'] + search_fields = ['external_record_id', 'external_order_id', 'product_name', 'error'] + readonly_fields = [ + 'run_date', + 'external_record_id', + 'external_order_id', + 'product_name', + 'error', + 'raw', + 'attempts', + 'last_attempt_at', + 'created_at', + 'updated_at', + ] + date_hierarchy = 'created_at' + ordering = ['-created_at'] + + def has_add_permission(self, request): + return False + + @admin.register(ApiAuditLog) class ApiAuditLogAdmin(admin.ModelAdmin): """API审计日志管理""" diff --git a/flower/settings.py b/flower/settings.py index 76ac131..b3e92c3 100644 --- a/flower/settings.py +++ b/flower/settings.py @@ -85,6 +85,7 @@ TENCENTCLOUD_TIIA_QPS = env.int('TENCENTCLOUD_TIIA_QPS', default=10) # Tencent WECOM_WEBHOOK_BASE_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send' WECOM_WEBHOOK_KEY = env('WECOM_WEBHOOK_KEY', default='') SPEAK_ENDPOINT = env('SPEAK_ENDPOINT', default='http://8.148.215.233:9004/speak') +PRINTING_ORDER_CREATED_SPEECH_ENABLED = False # CORS 配置 diff --git a/printing/handlers.py b/printing/handlers.py index 0fc9f65..726f4b1 100644 --- a/printing/handlers.py +++ b/printing/handlers.py @@ -326,15 +326,13 @@ def on_printing_order_created(sender, **kwargs): except Exception: logger.exception("[printing.handlers] 发送 WeCom webhook 失败(已忽略,不影响主流程)") - # Just for testing - # ============================================================== - try: - from flower.utils import play_speech + if getattr(settings, "PRINTING_ORDER_CREATED_SPEECH_ENABLED", False): + try: + from flower.utils import play_speech - play_speech(text=f"生产订单 {order_id} 已创建") - except Exception: - logger.exception("[printing.handlers] 发送语音播报失败(已忽略,不影响主流程)") - # =================================== + play_speech(text=f"生产订单 {order_id} 已创建") + except Exception: + logger.exception("[printing.handlers] 发送语音播报失败(已忽略,不影响主流程)") # 在事务提交后再发送,避免事务回滚但通知已发出 transaction.on_commit(_send_wecom)