feat: ftestwork create update serializer
This commit is contained in:
parent
8fdd56555f
commit
5245689ec2
|
@ -199,12 +199,9 @@ class FtestWorkCreateUpdateSerializer(CustomModelSerializer):
|
||||||
ftestworkdefect = validated_data.pop("ftestworkdefect", [])
|
ftestworkdefect = validated_data.pop("ftestworkdefect", [])
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
ins: FtestWork = super().create(validated_data)
|
ins: FtestWork = super().create(validated_data)
|
||||||
qct = Qct.get(ins.material, "inm")
|
|
||||||
if qct:
|
|
||||||
ins.qct = qct
|
|
||||||
ins.save()
|
|
||||||
for ftestworkdefect in ftestworkdefect:
|
for ftestworkdefect in ftestworkdefect:
|
||||||
FtestworkDefect.objects.create(ftestwork=ins, **ftestworkdefect)
|
if ftestworkdefect['count'] > 0:
|
||||||
|
FtestworkDefect.objects.create(ftestwork=ins, **ftestworkdefect)
|
||||||
if ins.qct or ftestworkdefect:
|
if ins.qct or ftestworkdefect:
|
||||||
ins.cal_count()
|
ins.cal_count()
|
||||||
return ins
|
return ins
|
||||||
|
@ -213,15 +210,19 @@ class FtestWorkCreateUpdateSerializer(CustomModelSerializer):
|
||||||
ftestworkdefect = validated_data.pop("ftestworkdefect", [])
|
ftestworkdefect = validated_data.pop("ftestworkdefect", [])
|
||||||
ins:FtestWork = super().update(instance, validated_data)
|
ins:FtestWork = super().update(instance, validated_data)
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
|
fd_ids = []
|
||||||
for item in ftestworkdefect:
|
for item in ftestworkdefect:
|
||||||
try:
|
if item["count"] > 0:
|
||||||
ins = FtestworkDefect.objects.get(ftestwork=ins, defect=item["defect"])
|
try:
|
||||||
except FtestworkDefect.DoesNotExist:
|
ins = FtestworkDefect.objects.get(ftestwork=ins, defect=item["defect"])
|
||||||
raise ParseError("新的缺陷项!")
|
except FtestworkDefect.DoesNotExist:
|
||||||
except FtestworkDefect.MultipleObjectsReturned:
|
raise ParseError("新的缺陷项!")
|
||||||
raise ParseError("缺陷项重复!")
|
except FtestworkDefect.MultipleObjectsReturned:
|
||||||
ins.count = item["count"]
|
raise ParseError("缺陷项重复!")
|
||||||
ins.save()
|
ins.count = item["count"]
|
||||||
|
ins.save()
|
||||||
|
fd_ids.append(ins.id)
|
||||||
|
FtestworkDefect.objects.filter(ftestwork=ins).exclude(id__in=fd_ids).delete()
|
||||||
if ins.qct or ftestworkdefect:
|
if ins.qct or ftestworkdefect:
|
||||||
ins.cal_count()
|
ins.cal_count()
|
||||||
return ins
|
return ins
|
||||||
|
|
Loading…
Reference in New Issue