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.serializers import CustomModelSerializer
|
||||
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 django.db import transaction
|
||||
from apps.inm.serializers import MaterialBatchDetailSerializer
|
||||
|
@ -300,19 +300,21 @@ class FtestProcessSerializer(CustomModelSerializer):
|
|||
with transaction.atomic():
|
||||
instance = super().update(instance, validated_data)
|
||||
for item in ftestitems:
|
||||
if "id" in item and item["id"]:
|
||||
FtestItem.objects.filter(id=item["id"]).update(
|
||||
test_user = item["test_user"],
|
||||
test_val_json = item["test_val_json"])
|
||||
else:
|
||||
FtestItem.objects.create(ftest=instance, **item)
|
||||
ins, is_create = FtestItem.objects.get_or_create(
|
||||
testitem = item["testitem"], ftest=instance, defaults=item)
|
||||
if is_create:
|
||||
raise ParseError("新的检测项!")
|
||||
for k, v in item.items():
|
||||
setattr(ins, k, v)
|
||||
ins.save()
|
||||
is_ok = True
|
||||
for item2 in ftestdefects:
|
||||
if "id" in item2 and item2["id"]:
|
||||
ins: FtestDefect = FtestDefect.objects.get(id=item2["id"])
|
||||
else:
|
||||
ins = FtestDefect.objects.create(ftest=instance, **item2)
|
||||
ins.has = item2["has"]
|
||||
ins, is_create = FtestDefect.objects.get_or_create(
|
||||
ftest=instance, defect=item2["defect"], defaults=item2)
|
||||
if is_create:
|
||||
raise ParseError("新的缺陷项!")
|
||||
for k, v in item2.items():
|
||||
setattr(ins, k, v)
|
||||
ins.save()
|
||||
if ins.has and ins.defect.okcate in [Defect.DEFECT_NOTOK]:
|
||||
is_ok = False
|
||||
|
|
Loading…
Reference in New Issue