feat:wpr中添加工装(喷码工段需要)

This commit is contained in:
shijing 2026-05-22 15:36:50 +08:00
parent aa8e411a1b
commit 1807004129
3 changed files with 18 additions and 9 deletions

View File

@ -2,7 +2,7 @@ from django.db import models
from apps.qm.models import FtestDefect, FtestItem
from apps.utils.models import BaseModel
from apps.mtm.models import Material
from apps.mtm.models import Material, Tooling
from rest_framework.exceptions import ParseError
from apps.wpm.models import WmStateOption, Mlogbw, Handoverbw
from apps.utils.tools import update_dict
@ -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)
tooling = models.ForeignKey(Tooling, verbose_name="工装", on_delete=models.SET_NULL, null=True, 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):

View File

@ -20,6 +20,7 @@ class WprSerializer(CustomModelSerializer):
# material_start_name = serializers.StringRelatedField(source='material_start', read_only=True)
wm_material_ofrom_name = serializers.StringRelatedField(source="wm.material_ofrom", read_only=True)
wprdefect = WprDefectSerializer(many=True, read_only=True)
tooling_name = serializers.CharField(source="tooling.name", read_only=True, default=None)
class Meta:
model = Wpr
@ -55,3 +56,9 @@ class WproutListSerializer(serializers.Serializer):
class WprChangeNumberSerializer(serializers.Serializer):
old_number = serializers.CharField(label="原编号")
new_number = serializers.CharField(label="新编号")
class WprPartialUpdateSerializer(CustomModelSerializer):
class Meta:
model = Wpr
fields = ['tooling']

View File

@ -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, CustomUpdateModelMixin
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, WprPartialUpdateSerializer
from rest_framework.response import Response
from apps.mtm.models import Material
from rest_framework.exceptions import ParseError
@ -13,14 +13,15 @@ from apps.utils.sql import query_one_dict
from django.db.models.expressions import RawSQL
class WprViewSet(CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
class WprViewSet(CustomUpdateModelMixin, CustomListModelMixin, CustomRetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
"""动态产品
动态产品
"""
perms_map = {"get": "*"}
select_related_fields = ["wm", "mb", "material", "wm__material_ofrom"]
perms_map = {"get": "*", "patch": "*"}
partial_update_serializer_class = WprPartialUpdateSerializer
select_related_fields = ["wm", "mb", "material", "wm__material_ofrom", "tooling"]
prefetch_related_fields = ["defects"]
queryset = Wpr.objects.all()
serializer_class = WprSerializer