forked from erp-dev/erp
feat: added plate_image into query param and nodes of plate_orders
This commit is contained in:
@@ -13,7 +13,10 @@ from rest_framework.views import APIView
|
||||
from basic_info import models as basic_models
|
||||
from printing import models as printing_models
|
||||
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 services as stateflow_services
|
||||
|
||||
@@ -31,6 +34,13 @@ class IsPrintingFactory(permissions.BasePermission):
|
||||
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):
|
||||
"""v2 独立的印染任务序列化器,包含开单数量"""
|
||||
|
||||
@@ -384,6 +394,7 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
|
||||
business_object_id = serializers.SerializerMethodField()
|
||||
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
|
||||
process_parameters = serializers.SerializerMethodField()
|
||||
plate_image = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = printing_models.PlateOrder
|
||||
@@ -391,6 +402,7 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
|
||||
'id',
|
||||
'original_id',
|
||||
'design_code',
|
||||
'plate_image',
|
||||
'customer',
|
||||
'customer_name',
|
||||
'style_name',
|
||||
@@ -446,6 +458,9 @@ class PlateOrderByProcessNodeSerializer(serializers.ModelSerializer):
|
||||
|
||||
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):
|
||||
"""
|
||||
@@ -627,6 +642,7 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
|
||||
business_object_id = serializers.SerializerMethodField()
|
||||
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
|
||||
process_params = serializers.SerializerMethodField()
|
||||
plate_image = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = printing_models.PlateOrder
|
||||
@@ -634,6 +650,7 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
|
||||
'id',
|
||||
'original_id',
|
||||
'design_code',
|
||||
'plate_image',
|
||||
'customer',
|
||||
'customer_name',
|
||||
'style_name',
|
||||
@@ -722,6 +739,9 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
|
||||
})
|
||||
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):
|
||||
"""按单个节点状态过滤 PlateOrder,并扩展状态流信息"""
|
||||
@@ -800,6 +820,13 @@ class PlateOrderByStateStatusSerializer(PlateOrderListV1Serializer):
|
||||
'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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user