diff --git a/hb_server/apps/wpm/models.py b/hb_server/apps/wpm/models.py index a525ae8..fd3fe4a 100644 --- a/hb_server/apps/wpm/models.py +++ b/hb_server/apps/wpm/models.py @@ -211,6 +211,7 @@ class OperationWproduct(BaseModel): material = models.ForeignKey(Material, verbose_name='操作时的物料状态', on_delete=models.CASCADE) subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='当前子生产计划', on_delete=models.CASCADE, related_name='ow_subplan') ng_sign = models.PositiveSmallIntegerField('当时的不合格标记', choices= WProduct.ng_choices, null=True, blank=True) + place = models.CharField('摆放位置', null=True, blank=True) class Meta: unique_together = ( ('operation','wproduct') diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 01846d5..8d5c9fe 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -365,6 +365,10 @@ class OperationWproductListSerializer(serializers.ModelSerializer): model = OperationWproduct fields = '__all__' +class OperationWproductUpdateSerializer(serializers.ModelSerializer): + class Meta: + model = OperationWproduct + fields = ['place'] class OperationSubmitSerializer(serializers.Serializer): step = serializers.PrimaryKeyRelatedField(queryset=Step.objects.all(), label="子工序ID") diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index f3aa832..87310eb 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -22,7 +22,7 @@ from apps.wf.serializers import WorkflowSimpleSerializer from apps.wpm.filters import CuttingFilterSet, OperationRecordFilterSet, WMaterialFilterSet, WProductFilterSet from apps.wpm.models import OperationEquip, OperationWproduct, Pick, PickWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem, WprouctTicket -from apps.wpm.serializers import CuttingListSerializer, OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1ListSerailizer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2ListSerailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordDetailSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickHalfsSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, ScrapSerializer, WMaterialListSerializer, WProductCardSerializer, WProductDetailSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestFormInitSerializer, WpmTestRecordCreateSerializer, WproductMtestSerializer, WproductPutInSerializer, WproductPutInsSerializer, WproductTicketListSerializer +from apps.wpm.serializers import CuttingListSerializer, OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1ListSerailizer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2ListSerailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordDetailSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, OperationWproductUpdateSerializer, PickHalfSerializer, PickHalfsSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, ScrapSerializer, WMaterialListSerializer, WProductCardSerializer, WProductDetailSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestFormInitSerializer, WpmTestRecordCreateSerializer, WproductMtestSerializer, WproductPutInSerializer, WproductPutInsSerializer, WproductTicketListSerializer from rest_framework.response import Response from django.db import transaction from rest_framework import exceptions, serializers @@ -621,7 +621,7 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd else: raise exceptions.APIException('消耗与产出不一致') # 实际消耗物料校验 - + # 检查自定义表单填写 if OperationRecord.objects.filter(operation=op, is_filled=False).exists(): raise exceptions.APIException('存在自定义表单未填写') @@ -724,7 +724,7 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd -class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): +class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet): """ 操作使用的半成品 """ @@ -735,6 +735,11 @@ class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet ordering_fields = ['id'] ordering = ['-id'] + def get_serializer_class(self): + if self.action == 'update': + return OperationWproductUpdateSerializer + return super().get_serializer_class() + @transaction.atomic() def destroy(self, request, *args, **kwargs): instance = self.get_object()