From 70e98704dc1d5691d8c2f1b54eb8000c1f2899c5 Mon Sep 17 00:00:00 2001 From: colaftc Date: Tue, 13 Jan 2026 18:51:28 +0800 Subject: [PATCH] check --- printing/apps.py | 8 ++++++++ printing/handlers.py | 6 ++++++ stateflow/services.py | 13 +++++++++++++ 3 files changed, 27 insertions(+) diff --git a/printing/apps.py b/printing/apps.py index 73c20c6..9fac506 100644 --- a/printing/apps.py +++ b/printing/apps.py @@ -1,5 +1,8 @@ +import logging from django.apps import AppConfig +logger = logging.getLogger(__name__) + class PrintingConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' @@ -16,4 +19,9 @@ class PrintingConfig(AppConfig): process_completed.connect( handlers.on_printing_job_process_completed, sender=PrintingJob + ) + + logger.info( + f'[printing.apps] 已注册 process_completed 信号处理器, ' + f'sender={PrintingJob}, handler={handlers.on_printing_job_process_completed}' ) \ No newline at end of file diff --git a/printing/handlers.py b/printing/handlers.py index 88c66ae..89d280f 100644 --- a/printing/handlers.py +++ b/printing/handlers.py @@ -33,6 +33,11 @@ def on_printing_job_process_completed(sender, **kwargs): """ from shipment.models import SalesItem, UnitChoices + logger.info( + f'[printing.handlers] 收到 process_completed 信号: ' + f'sender={sender}, kwargs keys={list(kwargs.keys())}' + ) + content_object = kwargs.get('content_object') business_object = kwargs.get('business_object') last_completed_by = kwargs.get('last_completed_by') @@ -42,6 +47,7 @@ def on_printing_job_process_completed(sender, **kwargs): return printing_job = content_object + logger.info(f'[printing.handlers] 处理 PrintingJob #{printing_job.id}') # 从 settings 获取配置 source_state_id = getattr(settings, 'PRINTING_SALES_ITEM_SOURCE_STATE_ID', None) diff --git a/stateflow/services.py b/stateflow/services.py index e1c2bf7..150239f 100644 --- a/stateflow/services.py +++ b/stateflow/services.py @@ -2,6 +2,7 @@ Stateflow业务逻辑服务层 """ import copy +import logging from typing import Iterable, List, Optional, Tuple from django.contrib.auth import get_user_model from django.contrib.contenttypes.models import ContentType @@ -10,6 +11,7 @@ from django.db import transaction from django.db.models import Exists, OuterRef, QuerySet from . import models +logger = logging.getLogger(__name__) User = get_user_model() def ensure_business_object_bound_to_instance( @@ -265,6 +267,13 @@ def advance_to_next_state(business_object: 'models.BusinessObject', user, **para content_object = business_object.content_object sender_class = content_object.__class__ if content_object else None + logger.info( + f'[stateflow] 发送 state_advanced 信号: ' + f'sender={sender_class} (module={sender_class.__module__ if sender_class else None}), ' + f'business_object_id={business_object.id}, ' + f'state={next_state.name}, is_process_completed={is_process_completed}' + ) + signals.state_advanced.send( sender=sender_class, process_id=business_object.process_id, @@ -281,6 +290,10 @@ def advance_to_next_state(business_object: 'models.BusinessObject', user, **para if is_process_completed: # 流程全部完成,发送流程完成信号 + logger.info( + f'[stateflow] 发送 process_completed 信号: ' + f'sender={sender_class}, business_object_id={business_object.id}' + ) signals.process_completed.send( sender=sender_class, process_id=business_object.process_id,