From d9a5720cc6761cb72e91b74a8f01393bc85b82d6 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 17 Jan 2025 16:38:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ftest=E6=B7=BB=E5=8A=A0=E4=B8=BB?= =?UTF-8?q?=E8=A6=81=E7=BC=BA=E9=99=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/qm/migrations/0039_ftest_defect_main.py | 19 +++++++++++++++++++ apps/qm/models.py | 1 + apps/qm/serializers.py | 7 +++++++ 3 files changed, 27 insertions(+) create mode 100644 apps/qm/migrations/0039_ftest_defect_main.py diff --git a/apps/qm/migrations/0039_ftest_defect_main.py b/apps/qm/migrations/0039_ftest_defect_main.py new file mode 100644 index 00000000..f531f007 --- /dev/null +++ b/apps/qm/migrations/0039_ftest_defect_main.py @@ -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='主要缺陷'), + ), + ] diff --git a/apps/qm/models.py b/apps/qm/models.py index 989a3dd1..cdccc39d 100644 --- a/apps/qm/models.py +++ b/apps/qm/models.py @@ -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): diff --git a/apps/qm/serializers.py b/apps/qm/serializers.py index 54782d51..231f8e58 100644 --- a/apps/qm/serializers.py +++ b/apps/qm/serializers.py @@ -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 \ No newline at end of file