54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
| from apps.wpmw.models import Wpr, WprDefect
 | |
| from apps.utils.serializers import CustomModelSerializer
 | |
| from rest_framework import serializers
 | |
| from apps.inm.serializers import MaterialBatchSerializer
 | |
| from apps.wpm.serializers import WMaterialSerializer
 | |
| 
 | |
| class WprDefectSerializer(CustomModelSerializer):
 | |
|     defect_name = serializers.CharField(source="defect.name", read_only=True)
 | |
| 
 | |
|     class Meta:
 | |
|         model = WprDefect
 | |
|         fields = "__all__"
 | |
| 
 | |
| 
 | |
| class WprSerializer(CustomModelSerializer):
 | |
|     wm_batch = serializers.CharField(source="wm.batch", read_only=True)
 | |
|     mb_batch = serializers.CharField(source="mb.batch", read_only=True)
 | |
|     material_name = serializers.StringRelatedField(
 | |
|         source='material', read_only=True) 
 | |
|     # material_start_name = serializers.StringRelatedField(source='material_start', read_only=True)
 | |
|     wm_material_ofrom_name = serializers.StringRelatedField(source="wm.material_ofrom", read_only=True)
 | |
|     wprdefect = WprDefectSerializer(many=True, read_only=True)  
 | |
| 
 | |
|     class Meta:
 | |
|         model = Wpr
 | |
|         fields = '__all__'
 | |
|     
 | |
|     def to_representation(self, instance):
 | |
|         ret = super().to_representation(instance)
 | |
|         material_name = ret.get("material_name", "")
 | |
|         if material_name:
 | |
|             ret["process_name"] = material_name.split("|")[-1]
 | |
|         return ret
 | |
| 
 | |
| class WprDetailSerializer(WprSerializer):
 | |
|     mb_ = MaterialBatchSerializer(source='mb', read_only=True)
 | |
|     wm_ = WMaterialSerializer(source='wm', read_only=True)
 | |
| 
 | |
| 
 | |
| class WprNewSerializer(serializers.Serializer):
 | |
|     year = serializers.IntegerField()
 | |
|     month = serializers.IntegerField()
 | |
|     material_start = serializers.CharField(label="物料ID")
 | |
| 
 | |
| 
 | |
| class WproutSerializer(serializers.Serializer):
 | |
|     id = serializers.CharField(label="wprId")
 | |
|     number_out = serializers.CharField(label="对外编号", allow_null=True)
 | |
| 
 | |
| 
 | |
| class WproutListSerializer(serializers.Serializer):
 | |
|     items = WproutSerializer(many=True)
 | |
| 
 |