diff --git a/apps/mtm/models.py b/apps/mtm/models.py index d68d90e0..c81b87ed 100644 --- a/apps/mtm/models.py +++ b/apps/mtm/models.py @@ -119,6 +119,10 @@ class Material(CommonAModel): def __str__(self): return f'{self.name}|{self.specification if self.specification else ""}|{self.model if self.model else ""}|{self.process.name if self.process else ""}' + @property + def fname(self): + return f'{self.name}|{self.specification if self.specification else ""}|{self.model if self.model else ""}|{self.process.name if self.process else ""}' + class Shift(CommonBModel): """TN:班次 diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 107d0909..4e2dd35e 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -1182,6 +1182,7 @@ class HandoverSerializer(CustomModelSerializer): material_ = MaterialSimpleSerializer(source='material', read_only=True) material_name = serializers.StringRelatedField( source='material', read_only=True) + material_changed_fname = serializers.CharField(source='material_changed.fname', read_only=True) wm_notok_sign = serializers.CharField(source='wm.notok_sign', read_only=True) handoverb = HandoverbSerializer(many=True, required=False) ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) @@ -1196,8 +1197,9 @@ class HandoverSerializer(CustomModelSerializer): attrs["mtype"] = Handover.H_MERGE if "material_changed" not in attrs: raise ParseError("必须指定改版后的物料") - - if attrs["mtype"] == Handover.H_MERGE: + + mtype = attrs["mtype"] + if mtype == Handover.H_MERGE: new_state = None new_wm:WMaterial = attrs.get("new_wm", None) if new_wm: diff --git a/apps/wpm/views.py b/apps/wpm/views.py index fe600205..91222c14 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -524,7 +524,7 @@ 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"] + select_related_fields = ["send_user", "send_mgroup", "send_dept", "recive_user", "recive_mgroup", "recive_dept", "wm", "material_changed"] 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 = [Prefetch("b_handover", queryset=Handoverb.objects.select_related("wm__defect"))]