fix:MlogbwCreateUpdateSerializer bug3

This commit is contained in:
caoqianming 2025-01-09 11:36:18 +08:00
parent ef4a31c3a5
commit 58aa629648
1 changed files with 14 additions and 12 deletions

View File

@ -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