diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 4617285b..7f191dee 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -107,6 +107,9 @@ class RouteSerializer(CustomModelSerializer): # return super().validate(attrs) def gen_material_out(self, instance): + """ + 废弃不用了 + """ name = f'{instance.material.name}-中' instance.material_out, _ = Material.objects.get_or_create(type=Material.MA_TYPE_HALFGOOD, parent=instance.material, process=instance.process, defaults={'parent': instance.material, 'process': instance.process, @@ -120,15 +123,15 @@ class RouteSerializer(CustomModelSerializer): instance.save() def create(self, validated_data): - process = validated_data['process'] - if Route.objects.filter(material=validated_data['material'], process=process).exists(): + process = validated_data.get('process', None) + if process and Route.objects.filter(material=validated_data['material'], process=process).exists(): raise ValidationError('已选择该工序') with transaction.atomic(): instance = super().create(validated_data) - if 'material_out' in validated_data and validated_data['material_out']: - pass - else: - self.gen_material_out(instance) + # if 'material_out' in validated_data and validated_data['material_out'] and instance.material: + # pass + # else: + # self.gen_material_out(instance) return instance def update(self, instance, validated_data): @@ -136,8 +139,8 @@ class RouteSerializer(CustomModelSerializer): validated_data.pop('process', None) with transaction.atomic(): instance = super().update(instance, validated_data) - if 'material_out' in validated_data and validated_data['material_out']: - pass - else: - self.gen_material_out(instance) + # if 'material_out' in validated_data and validated_data['material_out'] and instance.material: + # pass + # else: + # self.gen_material_out(instance) return instance diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 86126460..924a40a6 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -145,7 +145,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]): else: material_has.count = material_has.count - mlog.count_use material_has.save() - if material_out.is_hidden is False: # 需要入车间库存 + if material_out and material_out.is_hidden is False: # 需要入车间库存 # 有多个产物的情况 if material_out.brothers and Mlogb.objects.filter(mlog=mlog).exists(): for item in Mlogb.objects.filter(mlog=mlog):