diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 5c0f8489..dcd66916 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -1149,6 +1149,12 @@ class HandoverbSerializer(CustomModelSerializer): read_only_fields = EXCLUDE_FIELDS_BASE + ['handover'] extra_kwargs = {'wm': {'required': True}} +class HandoverbListSerializer(serializers.Serializer): + defect_name = serializers.CharField(source="wm.defect.name", read_only=True) + class Meta: + model = Handoverb + fields = "__all__" + class HandoverSerializer(CustomModelSerializer): # wm = serializers.PrimaryKeyRelatedField( # label='车间库存ID', queryset=WMaterial.objects.all()) @@ -1363,6 +1369,8 @@ class HandoverUpdateSerializer(CustomModelSerializer): model = Handover fields = ['id', 'send_date', 'send_user', 'count', 'count_eweight', 'recive_user', 'note'] +class HandoverListSerializer(HandoverSerializer): + handoverb = HandoverbListSerializer(many=True, required=False) class GenHandoverSerializer(serializers.Serializer): diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 8944e409..e2aaec22 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -15,7 +15,7 @@ from apps.utils.mixins import CustomListModelMixin, BulkCreateModelMixin, Comple from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter, MlogbwFilter from .models import (SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, - Mlogbw, AttLog, OtherLog, Fmlog, BatchSt, MlogbDefect, MlogUser, BatchLog) + Mlogbw, AttLog, OtherLog, Fmlog, BatchSt, MlogbDefect, MlogUser, BatchLog, Handoverb) from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogRevertSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, @@ -25,7 +25,8 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer, MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer, MlogbwCreateUpdateSerializer, HandoverMgroupSerializer, MlogListSerializer, - MlogbSerializer, MlogUserSerializer, BatchLogSerializer, MlogQuickSerializer, MlogbwStartTestSerializer) + MlogbSerializer, MlogUserSerializer, BatchLogSerializer, MlogQuickSerializer, + MlogbwStartTestSerializer, HandoverListSerializer) from .services import mlog_submit, handover_submit, mlog_revert, get_batch_dag, handover_revert from apps.wpm.services import mlog_submit_validate, generate_new_batch from apps.wf.models import State, Ticket @@ -493,12 +494,15 @@ class HandoverViewSet(CustomModelViewSet): 交接记录 """ queryset = Handover.objects.all() + list_serializer_class = HandoverListSerializer serializer_class = HandoverSerializer select_related_fields = ['send_user', 'send_mgroup', 'send_dept', 'recive_user', 'recive_mgroup', 'recive_dept', 'wm'] filterset_class = HandoverFilter search_fields = ['id', 'material__name', 'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch", "wm__batch"] - prefetch_related_fields = ["b_handover"] + prefetch_related_fields = [ + Prefetch('b_handover', queryset=Handoverb.objects.select_related('wm__defect')) + ] def perform_destroy(self, instance): user = self.request.user