feat: 添加mlog和handover的锁

This commit is contained in:
caoqianming 2025-08-26 16:34:49 +08:00
parent 8a039094cf
commit 316931fb40
2 changed files with 8 additions and 6 deletions

View File

@ -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('该交接单未提交!')

View File

@ -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: