46 lines
2.4 KiB
Python
46 lines
2.4 KiB
Python
from email.policy import default
|
|
from rest_framework import serializers
|
|
from apps.pm.models import ProductionPlan, SubProductionPlan
|
|
from apps.mtm.serializers import MaterialSimpleSerializer, ProcessSimpleSerializer
|
|
from apps.system.models import Organization
|
|
|
|
class SubplanGanttSerializer(serializers.ModelSerializer):
|
|
process_ = ProcessSimpleSerializer(source='process', read_only=True)
|
|
product_ = MaterialSimpleSerializer(source='product', read_only=True)
|
|
class Meta:
|
|
model = SubProductionPlan
|
|
fields = ['id', 'number', 'start_date', 'end_date', 'count', 'count_real', 'count_ok', 'start_date_real', 'end_date_real', 'process_', 'product_']
|
|
|
|
class PlanGanttSerializer(serializers.ModelSerializer):
|
|
children = serializers.SerializerMethodField()
|
|
product_ = MaterialSimpleSerializer(source='product', read_only=True)
|
|
class Meta:
|
|
model = ProductionPlan
|
|
fields = ['id', 'number', 'start_date', 'end_date', 'children', 'count', 'count_real',
|
|
'count_ok', 'product', 'product_']
|
|
|
|
def get_children(self, obj):
|
|
subplans = SubProductionPlan.objects.filter(production_plan=obj).order_by('process__number')
|
|
return SubplanGanttSerializer(instance=subplans, many=True).data
|
|
|
|
class ProcessYieldSerializer(serializers.Serializer):
|
|
datetime_start = serializers.DateField(label='开始时间', required=False, allow_null=True)
|
|
datetime_end = serializers.DateField(label='结束时间', required=False, allow_null=True)
|
|
|
|
class SrmCountSerializer(serializers.Serializer):
|
|
datetime_start = serializers.DateField(label='开始时间', required=False, allow_null=True)
|
|
datetime_end = serializers.DateField(label='结束时间', required=False, allow_null=True)
|
|
|
|
class ProductCountSerializer(serializers.Serializer):
|
|
tag_choices=(
|
|
(1, '统计成品'),
|
|
(2, '统计全部')
|
|
)
|
|
datetime_start = serializers.DateField(label='开始时间', required=False, allow_null=True)
|
|
datetime_end = serializers.DateField(label='结束时间', required=False, allow_null=True)
|
|
tag = serializers.ChoiceField(choices=tag_choices, label='统计范围1成品2全部', default=1)
|
|
dept = serializers.PrimaryKeyRelatedField(queryset=Organization.objects.all(), label="车间", required=False)
|
|
|
|
class AtWorkCountSerializer(serializers.Serializer):
|
|
year = serializers.IntegerField(label='年')
|
|
month = serializers.IntegerField(label='月') |