feat: ftest添加主要缺陷字段

This commit is contained in:
caoqianming 2025-01-17 16:38:15 +08:00
parent 805d4ac4fe
commit d9a5720cc6
3 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# Generated by Django 3.2.12 on 2025-01-17 08:37
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('qm', '0038_auto_20250116_1000'),
]
operations = [
migrations.AddField(
model_name='ftest',
name='defect_main',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='qm.defect', verbose_name='主要缺陷'),
),
]

View File

@ -283,6 +283,7 @@ class Ftest(CommonBDModel):
note = models.TextField('备注', default='', blank=True)
ftest_work = models.ForeignKey(
FtestWork, verbose_name='关联检验工作', on_delete=models.CASCADE, null=True, blank=True)
defect_main = models.ForeignKey(Defect, verbose_name='主要缺陷', on_delete=models.SET_NULL, null=True, blank=True)
@property
def ftestitems(self):

View File

@ -332,6 +332,7 @@ class FtestProcessSerializer(CustomModelSerializer):
for item in ftestitems:
FtestItem.objects.create(ftest=instance, **item)
is_ok = True
defect_main = None
has_is_main = False
for item2 in ftestdefects:
defect:Defect = item2["defect"]
@ -340,9 +341,11 @@ class FtestProcessSerializer(CustomModelSerializer):
if not has_is_main:
item2["is_main"] = True
has_is_main = True
defect_main = defect
else:
item2["is_main"] = False
FtestDefect.objects.create(ftest=instance, **item2)
instance.defect_main = defect_main
instance.is_ok = is_ok
instance.save()
return instance
@ -361,6 +364,7 @@ class FtestProcessSerializer(CustomModelSerializer):
setattr(ins, k, v)
ins.save()
is_ok = True
defect_main = None
has_is_main = False
for item2 in ftestdefects:
try:
@ -372,14 +376,17 @@ class FtestProcessSerializer(CustomModelSerializer):
ins.save()
if ins.is_main:
has_is_main = True
defect_main = ins.defect
if ins.has and ins.defect.okcate in [Defect.DEFECT_NOTOK]:
is_ok = False
if not has_is_main:
ins.is_main = True
has_is_main = True
defect_main = ins.defect
else:
ins.is_main = False
ins.save()
instance.defect_main = defect_main
instance.is_ok = is_ok
instance.save()
return instance