fix:wpr更新添加pre_info字段
This commit is contained in:
parent
dab1da0b05
commit
53f6082071
|
|
@ -0,0 +1,16 @@
|
|||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wpmw', '0009_alter_wpr_number'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='wpr',
|
||||
name='pre_info',
|
||||
field=models.JSONField(blank=True, default=dict, verbose_name='预处理信息'),
|
||||
),
|
||||
]
|
||||
|
|
@ -30,6 +30,7 @@ class Wpr(BaseModel):
|
|||
oinfo = models.JSONField(verbose_name="其他信息", default=dict, blank=True)
|
||||
wpr_from = models.ForeignKey("self", verbose_name="来源于", on_delete=models.CASCADE, null=True, blank=True)
|
||||
data = models.JSONField(verbose_name="数据", default=dict, blank=True)
|
||||
pre_info = models.JSONField(verbose_name="预处理信息", default=dict, blank=True)
|
||||
|
||||
@classmethod
|
||||
def change_or_new(cls, wpr=None, number=None, mb=None, wm=None, old_mb=None, old_wm=None, ftest=None, wpr_from=None, add_version=True, number_out=None):
|
||||
|
|
|
|||
|
|
@ -55,3 +55,7 @@ class WproutListSerializer(serializers.Serializer):
|
|||
class WprChangeNumberSerializer(serializers.Serializer):
|
||||
old_number = serializers.CharField(label="原编号")
|
||||
new_number = serializers.CharField(label="新编号")
|
||||
|
||||
|
||||
class WprPreInfoSerializer(serializers.Serializer):
|
||||
pre_info = serializers.JSONField(label="预处理信息")
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
from rest_framework.decorators import action
|
||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||
from apps.utils.mixins import CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin
|
||||
from apps.utils.mixins import CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin, BulkUpdateModelMixin
|
||||
|
||||
from apps.wpmw.models import Wpr, WprDefect
|
||||
from apps.wpmw.serializers import WprSerializer, WprNewSerializer, WprDetailSerializer, WproutListSerializer, WprChangeNumberSerializer
|
||||
from apps.wpmw.serializers import WprSerializer, WprNewSerializer, WprDetailSerializer, WproutListSerializer, WprChangeNumberSerializer, WprPreInfoSerializer
|
||||
from rest_framework.response import Response
|
||||
from apps.mtm.models import Material
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
|
@ -13,13 +13,13 @@ from apps.utils.sql import query_one_dict
|
|||
from django.db.models.expressions import RawSQL
|
||||
|
||||
|
||||
class WprViewSet(CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
||||
class WprViewSet(BulkUpdateModelMixin, CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
||||
"""动态产品
|
||||
|
||||
动态产品
|
||||
"""
|
||||
|
||||
perms_map = {"get": "*"}
|
||||
perms_map = {"get": "*", "put": "*", "patch": "*"}
|
||||
select_related_fields = ["wm", "mb", "material", "wm__material_ofrom"]
|
||||
prefetch_related_fields = ["defects"]
|
||||
queryset = Wpr.objects.all()
|
||||
|
|
@ -148,6 +148,16 @@ class WprViewSet(CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMix
|
|||
else:
|
||||
return Response({"number_out_last": None})
|
||||
|
||||
@action(methods=["patch"], detail=True, perms_map={"patch": "*"}, serializer_class=WprPreInfoSerializer)
|
||||
def update_pre_info(self, request, *args, **kwargs):
|
||||
"""更新预处理信息"""
|
||||
wpr = self.get_object()
|
||||
sr = WprPreInfoSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
wpr.pre_info = sr.validated_data["pre_info"]
|
||||
wpr.save(update_fields=["pre_info"])
|
||||
return Response({"pre_info": wpr.pre_info})
|
||||
|
||||
@action(methods=["post"], detail=False, perms_map={"post": "*"}, serializer_class=WproutListSerializer)
|
||||
@transaction.atomic
|
||||
def assgin_number_out(self, request, *args, **kwargs):
|
||||
|
|
|
|||
Loading…
Reference in New Issue