feat: 修改wpm事务

This commit is contained in:
caoqianming 2025-09-12 12:41:00 +08:00
parent 674f62a05a
commit 5e8e72cee9
2 changed files with 26 additions and 14 deletions

View File

@ -11,7 +11,7 @@ from django.utils import timezone
from apps.system.models import User
from apps.mtm.models import Material, Process, Route, Mgroup, RoutePack, RouteMat
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, enable_transaction
from apps.utils.mixins import CustomListModelMixin, BulkCreateModelMixin, ComplexQueryMixin
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter, MlogbwFilter
@ -316,7 +316,8 @@ class MlogViewSet(CustomModelViewSet):
@action(methods=['post'], detail=True,
perms_map={'post': 'mlog.update'},
serializer_class=MlogChangeSerializer, requires_transaction=True)
serializer_class=MlogChangeSerializer)
@enable_transaction
def change(self, request, *args, **kwargs):
"""修改日志
@ -333,7 +334,8 @@ class MlogViewSet(CustomModelViewSet):
return Response(MlogSerializer(ins).data)
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'},
serializer_class=Serializer, requires_transaction=True)
serializer_class=Serializer)
@enable_transaction
def submit(self, request, *args, **kwargs):
"""日志提交(变动车间库存)
@ -352,7 +354,8 @@ class MlogViewSet(CustomModelViewSet):
vdata_new = MlogSerializer(ins).data
return Response(vdata_new)
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=MlogRevertSerializer, requires_transaction=True)
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=MlogRevertSerializer)
@enable_transaction
def revert(self, request, *args, **kwargs):
"""撤回日志提交
@ -433,7 +436,8 @@ class MlogViewSet(CustomModelViewSet):
res[i] = 0
return Response(res)
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.create'}, serializer_class=MlogQuickSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.create'}, serializer_class=MlogQuickSerializer)
@enable_transaction
def quick(self, request, *args, **kwargs):
"""快速创建日志
@ -507,7 +511,8 @@ class HandoverViewSet(CustomModelViewSet):
raise ParseError("该交接记录存在审批,不可修改")
serializer.save()
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=HandoverSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=HandoverSerializer)
@enable_transaction
def create_and_submit(self, request, *args, **kwargs):
user = request.user
sr = HandoverSerializer(data=request.data, context={'request': request})
@ -522,7 +527,8 @@ class HandoverViewSet(CustomModelViewSet):
handover_submit(ins, user, None)
return Response({"id": ins.id})
@action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer, requires_transaction=True)
@action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer)
@enable_transaction
def submit(self, request, *args, **kwargs):
"""交接记录提交(变动车间库存)
@ -542,7 +548,8 @@ class HandoverViewSet(CustomModelViewSet):
handover_submit(ins, user, None)
return Response()
@action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer, requires_transaction=True)
@action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer)
@enable_transaction
def revert(self, request, *args, **kwargs):
"""交接记录撤回(变动车间库存)
@ -575,7 +582,8 @@ class HandoverViewSet(CustomModelViewSet):
m_qs = m_qs.filter(process=None)
return Response(list(m_qs.values('id', 'name').distinct()))
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverWmSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverWmSerializer)
@enable_transaction
def gen_by_wm(self, request):
"""从车间库存生成交接记录(废弃)
@ -604,7 +612,8 @@ class HandoverViewSet(CustomModelViewSet):
)
return Response({'handover': handover.id})
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverSerializer)
@enable_transaction
def gen_by_mlog(self, request):
"""从生产日志生成交接记录(废弃)
@ -1074,7 +1083,8 @@ class MlogbwViewSet(CustomModelViewSet):
mlog = mlogb.mlog
mlog.cal_mlog_count_from_mlogb()
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.update'}, serializer_class=MlogbwStartTestSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.update'}, serializer_class=MlogbwStartTestSerializer)
@enable_transaction
def start_test(self, request, *args, **kwargs):
sr = MlogbwStartTestSerializer(data=request.data)
sr.is_valid(raise_exception=True)
@ -1107,7 +1117,8 @@ class BatchLogViewSet(ListModelMixin, CustomGenericViewSet):
serializer_class = BatchLogSerializer
select_related_fields = ["source", "target"]
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=Serializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=Serializer)
@enable_transaction
def dag(self, request):
"""
获取该批次的DAG图数据

View File

@ -1,5 +1,5 @@
from rest_framework.decorators import action
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet, enable_transaction
from apps.utils.mixins import CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin
from apps.wpmw.models import Wpr, WprDefect
@ -97,7 +97,8 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu
return Response({"number_out_last": None})
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=WproutListSerializer, requires_transaction=True)
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=WproutListSerializer)
@enable_transaction
def assgin_number_out(self, request, *args, **kwargs):
"""分配出库对外编号