forked from erp-dev/erp
feat: added created_by and created_by_name into printing order and printing job
This commit is contained in:
@@ -138,6 +138,8 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
|
|||||||
process_name = serializers.CharField(source='process.name', read_only=True)
|
process_name = serializers.CharField(source='process.name', read_only=True)
|
||||||
progress = serializers.IntegerField(read_only=True)
|
progress = serializers.IntegerField(read_only=True)
|
||||||
jobs_status_summary = serializers.SerializerMethodField()
|
jobs_status_summary = serializers.SerializerMethodField()
|
||||||
|
created_by = serializers.IntegerField(source='created_by_id', read_only=True)
|
||||||
|
created_by_name = serializers.SerializerMethodField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.PrintingOrder
|
model = models.PrintingOrder
|
||||||
@@ -147,9 +149,17 @@ class PrintingOrderListSerializer(serializers.ModelSerializer):
|
|||||||
'is_fabric_received', 'outgoing_date', 'is_invalid', 'new_curve',
|
'is_fabric_received', 'outgoing_date', 'is_invalid', 'new_curve',
|
||||||
'process', 'process_name', 'progress', 'position', 'print_count',
|
'process', 'process_name', 'progress', 'position', 'print_count',
|
||||||
'jobs_status_summary',
|
'jobs_status_summary',
|
||||||
|
'created_by', 'created_by_name',
|
||||||
'created_at', 'updated_at',
|
'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):
|
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)
|
customer_area = serializers.CharField(source='customer.area', read_only=True)
|
||||||
process_name = serializers.CharField(source='process.name', read_only=True)
|
process_name = serializers.CharField(source='process.name', read_only=True)
|
||||||
progress = serializers.IntegerField(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:
|
class Meta:
|
||||||
model = models.PrintingOrder
|
model = models.PrintingOrder
|
||||||
@@ -196,9 +208,17 @@ class PrintingOrderDetailSerializer(serializers.ModelSerializer):
|
|||||||
'curve', 'new_curve', 'position',
|
'curve', 'new_curve', 'position',
|
||||||
'printing_warn', 'rolling_warn', 'production_warn',
|
'printing_warn', 'rolling_warn', 'production_warn',
|
||||||
'is_invalid', 'process', 'process_name', 'progress', 'print_count',
|
'is_invalid', 'process', 'process_name', 'progress', 'print_count',
|
||||||
|
'created_by', 'created_by_name',
|
||||||
'created_at', 'updated_at'
|
'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):
|
class PrintingOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||||
@@ -266,6 +286,8 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
|||||||
last_completed_state = serializers.CharField(read_only=True)
|
last_completed_state = serializers.CharField(read_only=True)
|
||||||
business_object_id = serializers.SerializerMethodField()
|
business_object_id = serializers.SerializerMethodField()
|
||||||
batch_advance_records = 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:
|
class Meta:
|
||||||
model = models.PrintingJob
|
model = models.PrintingJob
|
||||||
@@ -278,12 +300,14 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
|||||||
'progress_percentage', 'last_completed_state',
|
'progress_percentage', 'last_completed_state',
|
||||||
'business_object_id',
|
'business_object_id',
|
||||||
'batch_advance_records',
|
'batch_advance_records',
|
||||||
|
'created_by', 'created_by_name',
|
||||||
'created_at', 'updated_at'
|
'created_at', 'updated_at'
|
||||||
]
|
]
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
'id', 'created_at', 'updated_at',
|
'id', 'created_at', 'updated_at',
|
||||||
'status', 'status_id', 'is_completed', 'has_started',
|
'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):
|
def get_business_object_id(self, obj):
|
||||||
@@ -330,6 +354,13 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
|||||||
records = list(obj.batch_advance_records.all())
|
records = list(obj.batch_advance_records.all())
|
||||||
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
|
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):
|
class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
||||||
"""印染款式明细详情序列化器"""
|
"""印染款式明细详情序列化器"""
|
||||||
@@ -343,6 +374,8 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
|||||||
has_started = serializers.BooleanField(read_only=True)
|
has_started = serializers.BooleanField(read_only=True)
|
||||||
business_object_id = serializers.SerializerMethodField()
|
business_object_id = serializers.SerializerMethodField()
|
||||||
batch_advance_records = 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:
|
class Meta:
|
||||||
model = models.PrintingJob
|
model = models.PrintingJob
|
||||||
@@ -352,11 +385,13 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
|||||||
'work_state', 'work_state_display',
|
'work_state', 'work_state_display',
|
||||||
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id',
|
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id',
|
||||||
'batch_advance_records',
|
'batch_advance_records',
|
||||||
|
'created_by', 'created_by_name',
|
||||||
'created_at', 'updated_at'
|
'created_at', 'updated_at'
|
||||||
]
|
]
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
'id', 'created_at', 'updated_at',
|
'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):
|
def get_business_object_id(self, obj):
|
||||||
@@ -371,6 +406,13 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
|||||||
records = list(obj.batch_advance_records.all())
|
records = list(obj.batch_advance_records.all())
|
||||||
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
|
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):
|
class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
|
||||||
"""印染款式明细创建/更新序列化器"""
|
"""印染款式明细创建/更新序列化器"""
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ class PrintingOrderService:
|
|||||||
if default_process:
|
if default_process:
|
||||||
data['process'] = default_process
|
data['process'] = default_process
|
||||||
|
|
||||||
|
# 绑定创建人
|
||||||
|
data['created_by'] = user
|
||||||
|
|
||||||
order = printing_models.PrintingOrder.objects.create(**data)
|
order = printing_models.PrintingOrder.objects.create(**data)
|
||||||
return order
|
return order
|
||||||
|
|
||||||
@@ -122,6 +125,9 @@ class PrintingJobService:
|
|||||||
"""
|
"""
|
||||||
printing_order = data.get('printing_order')
|
printing_order = data.get('printing_order')
|
||||||
|
|
||||||
|
# 绑定创建人
|
||||||
|
data['created_by'] = user
|
||||||
|
|
||||||
# 创建 PrintingJob
|
# 创建 PrintingJob
|
||||||
job = printing_models.PrintingJob.objects.create(**data)
|
job = printing_models.PrintingJob.objects.create(**data)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Generated by Django 5.2.8 on 2026-01-06 12:32
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('printing', '0026_plateorder_printingjob_original_id'),
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='printingjob',
|
||||||
|
name='created_by',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='printing_jobs', to=settings.AUTH_USER_MODEL, verbose_name='创建人'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='printingorder',
|
||||||
|
name='created_by',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='printing_orders', to=settings.AUTH_USER_MODEL, verbose_name='创建人'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -277,6 +277,14 @@ class PrintingOrder(ModelBase):
|
|||||||
related_name='printing_orders',
|
related_name='printing_orders',
|
||||||
verbose_name='印染流程',
|
verbose_name='印染流程',
|
||||||
)
|
)
|
||||||
|
created_by = models.ForeignKey(
|
||||||
|
settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
related_name='printing_orders',
|
||||||
|
verbose_name='创建人',
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.human_id
|
return self.human_id
|
||||||
@@ -355,6 +363,14 @@ class PrintingJob(ModelBase):
|
|||||||
related_name='printing_job',
|
related_name='printing_job',
|
||||||
verbose_name='流程实例',
|
verbose_name='流程实例',
|
||||||
)
|
)
|
||||||
|
created_by = models.ForeignKey(
|
||||||
|
settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
related_name='printing_jobs',
|
||||||
|
verbose_name='创建人',
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.printing_order.human_id
|
return self.printing_order.human_id
|
||||||
|
|||||||
Reference in New Issue
Block a user