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)
|
oinfo = models.JSONField(verbose_name="其他信息", default=dict, blank=True)
|
||||||
wpr_from = models.ForeignKey("self", verbose_name="来源于", on_delete=models.CASCADE, null=True, 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)
|
data = models.JSONField(verbose_name="数据", default=dict, blank=True)
|
||||||
|
pre_info = models.JSONField(verbose_name="预处理信息", default=dict, blank=True)
|
||||||
|
|
||||||
@classmethod
|
@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):
|
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):
|
||||||
|
|
|
||||||
|
|
@ -54,4 +54,8 @@ class WproutListSerializer(serializers.Serializer):
|
||||||
|
|
||||||
class WprChangeNumberSerializer(serializers.Serializer):
|
class WprChangeNumberSerializer(serializers.Serializer):
|
||||||
old_number = serializers.CharField(label="原编号")
|
old_number = serializers.CharField(label="原编号")
|
||||||
new_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 rest_framework.decorators import action
|
||||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
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.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 rest_framework.response import Response
|
||||||
from apps.mtm.models import Material
|
from apps.mtm.models import Material
|
||||||
from rest_framework.exceptions import ParseError
|
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
|
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"]
|
select_related_fields = ["wm", "mb", "material", "wm__material_ofrom"]
|
||||||
prefetch_related_fields = ["defects"]
|
prefetch_related_fields = ["defects"]
|
||||||
queryset = Wpr.objects.all()
|
queryset = Wpr.objects.all()
|
||||||
|
|
@ -148,6 +148,16 @@ class WprViewSet(CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMix
|
||||||
else:
|
else:
|
||||||
return Response({"number_out_last": None})
|
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)
|
@action(methods=["post"], detail=False, perms_map={"post": "*"}, serializer_class=WproutListSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def assgin_number_out(self, request, *args, **kwargs):
|
def assgin_number_out(self, request, *args, **kwargs):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue