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 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):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user