feat: 优化handover list接口

This commit is contained in:
caoqianming 2025-09-18 14:48:28 +08:00
parent f6720ad7ce
commit f6668b5d38
2 changed files with 15 additions and 3 deletions

View File

@ -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):

View File

@ -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