1
0
forked from erp-dev/erp

feat: app verion && some field modify (printing & shipment)

This commit is contained in:
2026-07-08 20:36:51 +08:00
parent ddbf798665
commit 36e4bb6de6
32 changed files with 3465 additions and 26 deletions

View File

@@ -33,6 +33,30 @@ def _build_absolute_media_url(url: str | None, request):
return build_public_media_url(url, request=request)
def _resolve_printing_order_external_first_record_field(obj, field_name):
if not getattr(obj, 'external_order_id', None):
return None
try:
raw = obj.external_raw or {}
first_record = raw.get('first_record') or {}
value = first_record.get(field_name)
except AttributeError:
return None
value = str(value or '').strip()
return value or None
def resolve_printing_order_bianhao_kd(obj):
return _resolve_printing_order_external_first_record_field(obj, 'BianHaoKD')
def resolve_printing_order_kd_riqi(obj):
value = getattr(obj, 'kd_riqi', None)
if value is not None:
return serializers.DateTimeField().to_representation(value)
return _resolve_printing_order_external_first_record_field(obj, 'KdRiQi')
def _serialize_plate_images(raw_value, request):
if not raw_value:
return []
@@ -163,6 +187,8 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
external_customer_id = serializers.CharField(read_only=True)
external_customer_name = serializers.CharField(read_only=True)
external_employee_name = serializers.CharField(read_only=True)
bianhao_kd = serializers.SerializerMethodField()
kd_riqi = serializers.SerializerMethodField()
class Meta:
model = models.PrintingOrder
@@ -172,7 +198,7 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
'is_fabric_received', 'outgoing_date', 'is_invalid', 'new_curve',
'process', 'process_name', 'progress', 'position', 'print_count',
'jobs_status_summary', 'jobs_last_status_summary',
'external_order_id', 'external_customer_id', 'external_customer_name', 'external_employee_name',
'external_order_id', 'bianhao_kd', 'kd_riqi', 'external_customer_id', 'external_customer_name', 'external_employee_name',
'created_by', 'created_by_name',
'created_at', 'updated_at',
]
@@ -260,6 +286,12 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
def get_bianhao_kd(self, obj):
return resolve_printing_order_bianhao_kd(obj)
def get_kd_riqi(self, obj):
return resolve_printing_order_kd_riqi(obj)
class PrintingOrderDetailSerializer(serializers.ModelSerializer):
"""印染订单详情序列化器"""
@@ -274,6 +306,8 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
external_customer_id = serializers.CharField(read_only=True)
external_customer_name = serializers.CharField(read_only=True)
external_employee_name = serializers.CharField(read_only=True)
bianhao_kd = serializers.SerializerMethodField()
kd_riqi = serializers.SerializerMethodField()
class Meta:
model = models.PrintingOrder
@@ -283,7 +317,7 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
'is_fabric_received', 'craft', 'description', 'outgoing_date',
'curve', 'new_curve', 'position', 'created_by_name',
'printing_warn', 'rolling_warn', 'production_warn',
'external_order_id', 'external_customer_id', 'external_customer_name', 'external_employee_name',
'external_order_id', 'bianhao_kd', 'kd_riqi', 'external_customer_id', 'external_customer_name', 'external_employee_name',
'is_invalid', 'process', 'process_name', 'progress', 'print_count',
'created_at', 'updated_at'
]
@@ -297,6 +331,12 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
def get_bianhao_kd(self, obj):
return resolve_printing_order_bianhao_kd(obj)
def get_kd_riqi(self, obj):
return resolve_printing_order_kd_riqi(obj)
class PrintingOrderCreateUpdateSerializer(serializers.ModelSerializer):
"""印染订单创建/更新序列化器"""