diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 2b2aefbe..cd95d8c8 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -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图数据 diff --git a/apps/wpmw/views.py b/apps/wpmw/views.py index 6a7256b3..b6985558 100644 --- a/apps/wpmw/views.py +++ b/apps/wpmw/views.py @@ -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): """分配出库对外编号