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", [])
|
||||
with transaction.atomic():
|
||||
ins: FtestWork = super().create(validated_data)
|
||||
qct = Qct.get(ins.material, "inm")
|
||||
if qct:
|
||||
ins.qct = qct
|
||||
ins.save()
|
||||
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:
|
||||
ins.cal_count()
|
||||
return ins
|
||||
|
@ -213,15 +210,19 @@ class FtestWorkCreateUpdateSerializer(CustomModelSerializer):
|
|||
ftestworkdefect = validated_data.pop("ftestworkdefect", [])
|
||||
ins:FtestWork = super().update(instance, validated_data)
|
||||
with transaction.atomic():
|
||||
fd_ids = []
|
||||
for item in ftestworkdefect:
|
||||
try:
|
||||
ins = FtestworkDefect.objects.get(ftestwork=ins, defect=item["defect"])
|
||||
except FtestworkDefect.DoesNotExist:
|
||||
raise ParseError("新的缺陷项!")
|
||||
except FtestworkDefect.MultipleObjectsReturned:
|
||||
raise ParseError("缺陷项重复!")
|
||||
ins.count = item["count"]
|
||||
ins.save()
|
||||
if item["count"] > 0:
|
||||
try:
|
||||
ins = FtestworkDefect.objects.get(ftestwork=ins, defect=item["defect"])
|
||||
except FtestworkDefect.DoesNotExist:
|
||||
raise ParseError("新的缺陷项!")
|
||||
except FtestworkDefect.MultipleObjectsReturned:
|
||||
raise ParseError("缺陷项重复!")
|
||||
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:
|
||||
ins.cal_count()
|
||||
return ins
|
||||
|
|
Loading…
Reference in New Issue