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)
|
|
|