96 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Python
		
	
	
	
| from apps.mtm.models import RecordForm
 | |
| from apps.pm.models import ProductionPlan, SubProductionPlan, SubProductionProgress
 | |
| from rest_framework import serializers
 | |
| from apps.qm.models import TestRecord
 | |
| from apps.qm.serializers import TestRecordShortSerializer
 | |
| from apps.sam.serializers import OrderSerializer, OrderSimpleSerializer
 | |
| from apps.mtm.serializers import MaterialSimpleSerializer, ProcessSimpleSerializer, RecordFormSimpleSerializer, SubProductionSimpleSerializer
 | |
| from apps.system.serializers import OrganizationSimpleSerializer, UserSimpleSerializer
 | |
| from utils.mixins import DynamicFieldsSerializerMixin
 | |
| 
 | |
| 
 | |
| class ProductionPlanCreateFromOrderSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = ProductionPlan
 | |
|         fields = ['order', 'count', 'start_date', 'end_date']
 | |
| 
 | |
| class ProductionPlanSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):
 | |
|     order_ = OrderSimpleSerializer(source='order', read_only=True)
 | |
|     product_ = MaterialSimpleSerializer(source='product', read_only=True)
 | |
|     class Meta:
 | |
|         model = ProductionPlan
 | |
|         fields ='__all__'
 | |
| 
 | |
| class ResourceCalSerializer(serializers.Serializer):
 | |
|     id = serializers.IntegerField(label='产品ID')
 | |
|     count = serializers.IntegerField(label='生产数量')
 | |
| 
 | |
| class ResourceConvertSerializer(serializers.Serializer):
 | |
|     id = serializers.IntegerField(label='半成品ID')
 | |
|     count = serializers.IntegerField(label='折合数量')
 | |
| 
 | |
| class ResourceConvertListSerializer(serializers.ListSerializer):
 | |
|     child = ResourceConvertSerializer()
 | |
| 
 | |
| class ResourceCalListSerializer(serializers.ListSerializer):
 | |
|     child = ResourceCalSerializer()
 | |
| 
 | |
| class SubProductionPlanListSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):
 | |
|     workshop_ = OrganizationSimpleSerializer(source='workshop', read_only=True)
 | |
|     process_ = ProcessSimpleSerializer(source='process', read_only=True)
 | |
|     subproduction_ = SubProductionSimpleSerializer(source='subproduction', read_only=True)
 | |
|     product_ = MaterialSimpleSerializer(source='product', read_only=True)
 | |
|     plan_product_ = serializers.SerializerMethodField()
 | |
|     leader_1_ = UserSimpleSerializer(source='leader_1', read_only=True)
 | |
|     leader_2_ = UserSimpleSerializer(source='leader_2', read_only=True)
 | |
|     leader_3_ = UserSimpleSerializer(source='leader_3', read_only=True)
 | |
|     first_test_ = TestRecordShortSerializer(source='first_test', read_only=True)
 | |
|     # first_test_ = serializers.SerializerMethodField()
 | |
|     class Meta:
 | |
|         model=SubProductionPlan
 | |
|         fields = '__all__'
 | |
|     
 | |
|     def get_plan_product_(self, obj):
 | |
|         return MaterialSimpleSerializer(instance=obj.production_plan.product).data
 | |
| 
 | |
|     # def get_first_test_(self, obj):
 | |
|     #     if obj.first_test:
 | |
|     #         return TestRecordShortSerializer(instance=obj.first_test).data
 | |
|     #     return None
 | |
| 
 | |
| 
 | |
| class SubProductionPlanUpdateSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = SubProductionPlan
 | |
|         fields = ['start_date', 'end_date']
 | |
| 
 | |
| class GenSubPlanSerializer(serializers.Serializer):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| 
 | |
| class PickNeedSerializer(serializers.Serializer):
 | |
|     warehouse = serializers.IntegerField(label="仓库ID")
 | |
| 
 | |
| class PlanDestorySerializer(serializers.Serializer):
 | |
|     ids = serializers.ListField(child=serializers.IntegerField(), label='主计划ID列表')
 | |
| 
 | |
| class SubproductionPlanSimpleSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = SubProductionPlan
 | |
|         fields = ['id', 'number']
 | |
| 
 | |
| class SubProductionProgressSerializer(serializers.ModelSerializer):
 | |
|     material_ = MaterialSimpleSerializer(source='material', read_only=True)
 | |
|     subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
 | |
|     class Meta:
 | |
|         model = SubProductionProgress
 | |
|         fields = '__all__'
 | |
| 
 | |
| 
 | |
| class FirstTestInitSerializer(serializers.Serializer):
 | |
|     form = serializers.PrimaryKeyRelatedField(queryset=RecordForm.objects.all(), required=True)
 | |
| 
 | |
| 
 | |
| class FirstTestAuditSerializer(serializers.Serializer):
 | |
|     leader = serializers.CharField() |