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'] read_only_fields = EXCLUDE_FIELDS_BASE + ['handover']
extra_kwargs = {'wm': {'required': True}} 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): class HandoverSerializer(CustomModelSerializer):
# wm = serializers.PrimaryKeyRelatedField( # wm = serializers.PrimaryKeyRelatedField(
# label='车间库存ID', queryset=WMaterial.objects.all()) # label='车间库存ID', queryset=WMaterial.objects.all())
@ -1363,6 +1369,8 @@ class HandoverUpdateSerializer(CustomModelSerializer):
model = Handover model = Handover
fields = ['id', 'send_date', 'send_user', 'count', 'count_eweight', 'recive_user', 'note'] 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): 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 .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter, MlogbwFilter
from .models import (SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, 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, from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer,
MlogRevertSerializer, MlogRevertSerializer,
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer,
@ -25,7 +25,8 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer,
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer, MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer, MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
MlogbwCreateUpdateSerializer, HandoverMgroupSerializer, MlogListSerializer, 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 .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.wpm.services import mlog_submit_validate, generate_new_batch
from apps.wf.models import State, Ticket from apps.wf.models import State, Ticket
@ -493,12 +494,15 @@ class HandoverViewSet(CustomModelViewSet):
交接记录 交接记录
""" """
queryset = Handover.objects.all() queryset = Handover.objects.all()
list_serializer_class = HandoverListSerializer
serializer_class = HandoverSerializer serializer_class = HandoverSerializer
select_related_fields = ['send_user', 'send_mgroup', 'send_dept', 'recive_user', 'recive_mgroup', 'recive_dept', 'wm'] select_related_fields = ['send_user', 'send_mgroup', 'send_dept', 'recive_user', 'recive_mgroup', 'recive_dept', 'wm']
filterset_class = HandoverFilter filterset_class = HandoverFilter
search_fields = ['id', 'material__name', search_fields = ['id', 'material__name',
'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch", "wm__batch"] '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): def perform_destroy(self, instance):
user = self.request.user user = self.request.user