From 316931fb402858bf6edf2074bdbdacd87d3d9582 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 26 Aug 2025 16:34:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0mlog=E5=92=8Chandover?= =?UTF-8?q?=E7=9A=84=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/services.py | 9 +++++---- apps/wpm/views.py | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 2c27ca51..a142719c 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -24,6 +24,7 @@ from django.db.models import Count, Q from apps.utils.tasks import ctask_run from apps.mtm.models import Process from apps.mtm.services_2 import cal_material_count +from apps.utils.lock import lock_model_record_d_func myLogger = logging.getLogger('log') @@ -146,7 +147,7 @@ def get_pcoal_heat(year_s: int, month_s: int, day_s: int): myLogger.error(f'获取煤粉热值失败,{e}, {year_s}, {month_s}, {day_s}', exc_info=True) return 25000 - +@lock_model_record_d_func(Mlog) def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]): """ 生产日志提交后需要执行的操作 @@ -398,7 +399,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]): if wprIds: ana_wpr_thread(wprIds, mlog.mgroup) - +@lock_model_record_d_func(Mlog) def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]): """日志撤回 """ @@ -710,7 +711,7 @@ def update_mtask(mtask: Mtask, fill_way: int = 10): utask.state = Utask.UTASK_SUBMIT utask.save() - +@lock_model_record_d_func(Handover) def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, None]): """ 交接提交后需要执行的操作 @@ -938,7 +939,7 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, ana_batch_thread(xbatchs=batches) - +@lock_model_record_d_func(Handover) def handover_revert(handover:Handover, handler:User=None): if handover.submit_time is None: raise ParseError('该交接单未提交!') diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 17a18828..b3bcd1c3 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -37,6 +37,7 @@ from django.db.models import Q from apps.utils.tools import convert_ordereddict, update_dict from django.db.models import Count from datetime import datetime, timedelta +from apps.utils.lock import lock_model_record_d_method # Create your views here. @@ -226,7 +227,7 @@ class MlogViewSet(CustomModelViewSet): # data = list(data_dict.values()) return data - @transaction.atomic + @lock_model_record_d_method(Mlog) def perform_destroy(self, instance): if instance.submit_time is not None: raise ParseError('日志已提交不可变动') @@ -438,7 +439,7 @@ class HandoverViewSet(CustomModelViewSet): 'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch", "wm__batch"] prefetch_related_fields = ["b_handover"] - @transaction.atomic + @lock_model_record_d_method(Handover) def perform_destroy(self, instance:Handover): user = self.request.user if instance.submit_time is not None: