1
0
forked from erp-dev/erp

feat: added fields to api_v2.printing

This commit is contained in:
2025-12-25 18:22:20 +08:00
parent ff1ea2482d
commit 6f6bcee761

View File

@@ -13,6 +13,7 @@ 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 stateflow import models as stateflow_models
from stateflow import services as stateflow_services
@@ -722,42 +723,24 @@ class PlateOrderByProcessSerializer(serializers.ModelSerializer):
return result
class PlateOrderByStateStatusSerializer(serializers.ModelSerializer):
"""按单个节点状态过滤 PlateOrder 的轻量序列化器"""
class PlateOrderByStateStatusSerializer(PlateOrderListV1Serializer):
"""按单个节点状态过滤 PlateOrder,并扩展状态流信息"""
design_code = serializers.SerializerMethodField()
customer_name = serializers.CharField(source='customer.name', read_only=True)
business_object_id = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
state_parameters = serializers.SerializerMethodField()
state_log = serializers.SerializerMethodField()
state_status = serializers.SerializerMethodField()
class Meta:
model = printing_models.PlateOrder
fields = [
'id',
'design_code',
'customer',
'customer_name',
'style_name',
'urgency_level',
'is_invalid',
'business_object_id',
'created_by',
class Meta(PlateOrderListV1Serializer.Meta):
fields = list(PlateOrderListV1Serializer.Meta.fields) + [
'state_status',
'state_parameters',
'state_log',
]
read_only_fields = list(PlateOrderListV1Serializer.Meta.read_only_fields) + [
'state_status',
'state_parameters',
'state_log',
'created_at',
'updated_at',
]
read_only_fields = fields
def get_design_code(self, obj: printing_models.PlateOrder) -> str | None:
return obj.design_code or (str(obj.id) if obj.id else None)
def get_business_object_id(self, obj: printing_models.PlateOrder) -> int | None:
return obj.business_object_id
def get_state_status(self, obj: printing_models.PlateOrder) -> str:
return self.context.get('requested_status', '')