fix:MlogbwCreateUpdateSerializer bug3
This commit is contained in:
parent
ef4a31c3a5
commit
58aa629648
|
@ -4,7 +4,7 @@ from apps.qm.models import (QuaStat, TestItem, Ftest, FtestItem, FtestWork, Ptes
|
||||||
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.exceptions import ValidationError
|
from rest_framework.exceptions import ValidationError, ParseError
|
||||||
from apps.wpm.models import SfLog, WMaterial
|
from apps.wpm.models import SfLog, WMaterial
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from apps.inm.serializers import MaterialBatchDetailSerializer
|
from apps.inm.serializers import MaterialBatchDetailSerializer
|
||||||
|
@ -300,19 +300,21 @@ class FtestProcessSerializer(CustomModelSerializer):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
instance = super().update(instance, validated_data)
|
instance = super().update(instance, validated_data)
|
||||||
for item in ftestitems:
|
for item in ftestitems:
|
||||||
if "id" in item and item["id"]:
|
ins, is_create = FtestItem.objects.get_or_create(
|
||||||
FtestItem.objects.filter(id=item["id"]).update(
|
testitem = item["testitem"], ftest=instance, defaults=item)
|
||||||
test_user = item["test_user"],
|
if is_create:
|
||||||
test_val_json = item["test_val_json"])
|
raise ParseError("新的检测项!")
|
||||||
else:
|
for k, v in item.items():
|
||||||
FtestItem.objects.create(ftest=instance, **item)
|
setattr(ins, k, v)
|
||||||
|
ins.save()
|
||||||
is_ok = True
|
is_ok = True
|
||||||
for item2 in ftestdefects:
|
for item2 in ftestdefects:
|
||||||
if "id" in item2 and item2["id"]:
|
ins, is_create = FtestDefect.objects.get_or_create(
|
||||||
ins: FtestDefect = FtestDefect.objects.get(id=item2["id"])
|
ftest=instance, defect=item2["defect"], defaults=item2)
|
||||||
else:
|
if is_create:
|
||||||
ins = FtestDefect.objects.create(ftest=instance, **item2)
|
raise ParseError("新的缺陷项!")
|
||||||
ins.has = item2["has"]
|
for k, v in item2.items():
|
||||||
|
setattr(ins, k, v)
|
||||||
ins.save()
|
ins.save()
|
||||||
if ins.has and ins.defect.okcate in [Defect.DEFECT_NOTOK]:
|
if ins.has and ins.defect.okcate in [Defect.DEFECT_NOTOK]:
|
||||||
is_ok = False
|
is_ok = False
|
||||||
|
|
Loading…
Reference in New Issue