From 56afccf0a4117afe84c51a6524c248f6b97281f0 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 12 May 2025 16:47:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20wpr=E8=8E=B7=E5=8F=96=E6=96=B0=E7=BC=96?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpmw/serializers.py | 8 +++++++- apps/wpmw/views.py | 21 ++++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/apps/wpmw/serializers.py b/apps/wpmw/serializers.py index 3f06ebd2..926ee60b 100644 --- a/apps/wpmw/serializers.py +++ b/apps/wpmw/serializers.py @@ -17,4 +17,10 @@ class WprSerializer(CustomModelSerializer): class Meta: model = Wpr - fields = '__all__' \ No newline at end of file + fields = '__all__' + + +class WprNewSerializer(serializers.Serializer): + year = serializers.IntegerField() + month = serializers.IntegerField() + material_start = serializers.CharField(label="物料ID") \ No newline at end of file diff --git a/apps/wpmw/views.py b/apps/wpmw/views.py index 9cb96a98..c6acf360 100644 --- a/apps/wpmw/views.py +++ b/apps/wpmw/views.py @@ -1,9 +1,11 @@ - +from rest_framework.decorators import action from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet from apps.utils.mixins import CustomListModelMixin, RetrieveModelMixin from apps.wpmw.models import Wpr, WprDefect -from apps.wpmw.serializers import WprSerializer +from apps.wpmw.serializers import WprSerializer, WprNewSerializer +from rest_framework.response import Response +from apps.mtm.models import Material class WprViewSet(CustomListModelMixin, RetrieveModelMixin, CustomGenericViewSet): @@ -34,4 +36,17 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, CustomGenericViewSet) pass else: qs.exclude(mb=None, wm=None) - return qs \ No newline at end of file + return qs + + @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=WprNewSerializer) + def new_number(self, request, *args, **kwargs): + """获取新的编号""" + data = request.data + year = data.get("year") + month = data.get("month") + material_start = data.get("material_start") + wps_qs = Wpr.objects.filter(material_start=material_start, create_time__year=year, create_time__month=month).order_by("create_time") + count = wps_qs.count() + last_number = wps_qs.last().number if count > 0 else None + mat = Material.objects.get(id=material_start) + return Response({"count": count, "last_number": last_number, "material_model":mat.model}) \ No newline at end of file