1
0
forked from erp-dev/erp

feat: added plate_image into query param and nodes of plate_orders

This commit is contained in:
2026-02-06 18:52:57 +08:00
parent a8c61667a9
commit e3536e0b1a

View File

@@ -13,7 +13,10 @@ from rest_framework.views import APIView
from basic_info import models as basic_models from basic_info import models as basic_models
from printing import models as printing_models from printing import models as printing_models
from api_man.serializers import ProductSerializer from api_man.serializers import ProductSerializer
from api_v1.views.printing.serializers import PlateOrderListSerializer as PlateOrderListV1Serializer from api_v1.views.printing.serializers import (
PlateOrderListSerializer as PlateOrderListV1Serializer,
_serialize_plate_images,
)
from stateflow import models as stateflow_models from stateflow import models as stateflow_models
from stateflow import services as stateflow_services from stateflow import services as stateflow_services
@@ -31,6 +34,13 @@ class IsPrintingFactory(permissions.BasePermission):
return False return False
def _serialize_plate_image_first(raw_value, request):
images = _serialize_plate_images(raw_value, request)
if not images:
return []
return images[:1]
class PrintingJobV2Serializer(serializers.ModelSerializer): class PrintingJobV2Serializer(serializers.ModelSerializer):
"""v2 独立的印染任务序列化器,包含开单数量""" """v2 独立的印染任务序列化器,包含开单数量"""
@@ -384,6 +394,7 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
business_object_id = serializers.SerializerMethodField() business_object_id = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True) created_by = serializers.IntegerField(source='created_by_id', read_only=True)
process_parameters = serializers.SerializerMethodField() process_parameters = serializers.SerializerMethodField()
plate_image = serializers.SerializerMethodField()
class Meta: class Meta:
model = printing_models.PlateOrder model = printing_models.PlateOrder
@@ -391,6 +402,7 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
'id', 'id',
'original_id', 'original_id',
'design_code', 'design_code',
'plate_image',
'customer', 'customer',
'customer_name', 'customer_name',
'style_name', 'style_name',
@@ -446,6 +458,9 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
return [{'key': k, 'value': summary.get(k)} for k in keys] return [{'key': k, 'value': summary.get(k)} for k in keys]
def get_plate_image(self, obj: printing_models.PlateOrder) -> list[dict]:
return _serialize_plate_image_first(getattr(obj, 'plate_image', None), self.context.get('request'))
class PlateOrderByProcessNodeView(APIView): class PlateOrderByProcessNodeView(APIView):
""" """
@@ -627,6 +642,7 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
business_object_id = serializers.SerializerMethodField() business_object_id = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True) created_by = serializers.IntegerField(source='created_by_id', read_only=True)
process_params = serializers.SerializerMethodField() process_params = serializers.SerializerMethodField()
plate_image = serializers.SerializerMethodField()
class Meta: class Meta:
model = printing_models.PlateOrder model = printing_models.PlateOrder
@@ -634,6 +650,7 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
'id', 'id',
'original_id', 'original_id',
'design_code', 'design_code',
'plate_image',
'customer', 'customer',
'customer_name', 'customer_name',
'style_name', 'style_name',
@@ -722,6 +739,9 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
}) })
return result return result
def get_plate_image(self, obj: printing_models.PlateOrder) -> list[dict]:
return _serialize_plate_image_first(getattr(obj, 'plate_image', None), self.context.get('request'))
class PlateOrderByStateStatusSerializer(PlateOrderListV1Serializer): class PlateOrderByStateStatusSerializer(PlateOrderListV1Serializer):
"""按单个节点状态过滤 PlateOrder并扩展状态流信息""" """按单个节点状态过滤 PlateOrder并扩展状态流信息"""
@@ -800,6 +820,13 @@ class PlateOrderByStateStatusSerializer(PlateOrderListV1Serializer):
'is_cancelled': log.is_cancelled, 'is_cancelled': log.is_cancelled,
} }
def to_representation(self, instance):
data = super().to_representation(instance)
plate_image = data.get('plate_image')
if isinstance(plate_image, list):
data['plate_image'] = plate_image[:1]
return data
class PlateOrderByProcessView(APIView): class PlateOrderByProcessView(APIView):
""" """