1
0
forked from erp-dev/erp

feat: added created_by and created_by_name into printing order and printing job

This commit is contained in:
2026-01-06 20:34:11 +08:00
parent df25b70521
commit 941f797e35
4 changed files with 94 additions and 4 deletions

View File

@@ -138,6 +138,8 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
process_name = serializers.CharField(source='process.name', read_only=True)
progress = serializers.IntegerField(read_only=True)
jobs_status_summary = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
created_by_name = serializers.SerializerMethodField()
class Meta:
model = models.PrintingOrder
@@ -147,9 +149,17 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
'is_fabric_received', 'outgoing_date', 'is_invalid', 'new_curve',
'process', 'process_name', 'progress', 'position', 'print_count',
'jobs_status_summary',
'created_by', 'created_by_name',
'created_at', 'updated_at',
]
read_only_fields = ['id', 'human_id', 'created_at', 'updated_at', 'progress', 'print_count']
read_only_fields = ['id', 'human_id', 'created_at', 'updated_at', 'progress', 'print_count', 'created_by']
def get_created_by_name(self, obj):
user = getattr(obj, 'created_by', None)
if not user:
return None
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
def get_jobs_status_summary(self, obj):
"""
@@ -186,6 +196,8 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
customer_area = serializers.CharField(source='customer.area', read_only=True)
process_name = serializers.CharField(source='process.name', read_only=True)
progress = serializers.IntegerField(read_only=True)
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
created_by_name = serializers.SerializerMethodField()
class Meta:
model = models.PrintingOrder
@@ -196,9 +208,17 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
'curve', 'new_curve', 'position',
'printing_warn', 'rolling_warn', 'production_warn',
'is_invalid', 'process', 'process_name', 'progress', 'print_count',
'created_by', 'created_by_name',
'created_at', 'updated_at'
]
read_only_fields = ['id', 'human_id', 'created_at', 'updated_at', 'progress', 'print_count']
read_only_fields = ['id', 'human_id', 'created_at', 'updated_at', 'progress', 'print_count', 'created_by']
def get_created_by_name(self, obj):
user = getattr(obj, 'created_by', None)
if not user:
return None
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
class PrintingOrderCreateUpdateSerializer(serializers.ModelSerializer):
@@ -266,6 +286,8 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
last_completed_state = serializers.CharField(read_only=True)
business_object_id = serializers.SerializerMethodField()
batch_advance_records = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
created_by_name = serializers.SerializerMethodField()
class Meta:
model = models.PrintingJob
@@ -278,12 +300,14 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
'progress_percentage', 'last_completed_state',
'business_object_id',
'batch_advance_records',
'created_by', 'created_by_name',
'created_at', 'updated_at'
]
read_only_fields = [
'id', 'created_at', 'updated_at',
'status', 'status_id', 'is_completed', 'has_started',
'progress_percentage', 'last_completed_state', 'business_object_id'
'progress_percentage', 'last_completed_state', 'business_object_id',
'created_by'
]
def get_business_object_id(self, obj):
@@ -330,6 +354,13 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
records = list(obj.batch_advance_records.all())
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
def get_created_by_name(self, obj):
user = getattr(obj, 'created_by', None)
if not user:
return None
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
class PrintingJobDetailSerializer(serializers.ModelSerializer):
"""印染款式明细详情序列化器"""
@@ -343,6 +374,8 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
has_started = serializers.BooleanField(read_only=True)
business_object_id = serializers.SerializerMethodField()
batch_advance_records = serializers.SerializerMethodField()
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
created_by_name = serializers.SerializerMethodField()
class Meta:
model = models.PrintingJob
@@ -352,11 +385,13 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
'work_state', 'work_state_display',
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id',
'batch_advance_records',
'created_by', 'created_by_name',
'created_at', 'updated_at'
]
read_only_fields = [
'id', 'created_at', 'updated_at',
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id'
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id',
'created_by'
]
def get_business_object_id(self, obj):
@@ -371,6 +406,13 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
records = list(obj.batch_advance_records.all())
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
def get_created_by_name(self, obj):
user = getattr(obj, 'created_by', None)
if not user:
return None
emp = getattr(user, 'employee', None)
return getattr(emp, 'name', None)
class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
"""印染款式明细创建/更新序列化器"""

View File

@@ -43,6 +43,9 @@ class PrintingOrderService:
if default_process:
data['process'] = default_process
# 绑定创建人
data['created_by'] = user
order = printing_models.PrintingOrder.objects.create(**data)
return order
@@ -122,6 +125,9 @@ class PrintingJobService:
"""
printing_order = data.get('printing_order')
# 绑定创建人
data['created_by'] = user
# 创建 PrintingJob
job = printing_models.PrintingJob.objects.create(**data)