From 2fcfae518d40fa732b2c3378a1e61c2e150adaff Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 26 Nov 2025 09:55:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0055_alter_ftestitem_ftest.py | 19 ++++++++++++++ .../wpm/migrations/0125_auto_20251126_0953.py | 26 +++++++++++++++++++ apps/wpm/models.py | 16 +++++++++++- apps/wpmw/migrations/0009_alter_wpr_number.py | 18 +++++++++++++ apps/wpmw/models.py | 2 +- 5 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 apps/qm/migrations/0055_alter_ftestitem_ftest.py create mode 100644 apps/wpm/migrations/0125_auto_20251126_0953.py create mode 100644 apps/wpmw/migrations/0009_alter_wpr_number.py diff --git a/apps/qm/migrations/0055_alter_ftestitem_ftest.py b/apps/qm/migrations/0055_alter_ftestitem_ftest.py new file mode 100644 index 00000000..e10e0194 --- /dev/null +++ b/apps/qm/migrations/0055_alter_ftestitem_ftest.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2025-11-26 01:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('qm', '0054_alter_ptest_val_xj'), + ] + + operations = [ + migrations.AlterField( + model_name='ftestitem', + name='ftest', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items_ftest', to='qm.ftest', verbose_name='关联检验'), + ), + ] diff --git a/apps/wpm/migrations/0125_auto_20251126_0953.py b/apps/wpm/migrations/0125_auto_20251126_0953.py new file mode 100644 index 00000000..6539cab9 --- /dev/null +++ b/apps/wpm/migrations/0125_auto_20251126_0953.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2.12 on 2025-11-26 01:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpm', '0124_auto_20251020_1009'), + ] + + operations = [ + migrations.AlterField( + model_name='mlogbw', + name='number', + field=models.TextField(db_index=True, verbose_name='单个编号'), + ), + migrations.AddIndex( + model_name='mlogb', + index=models.Index(condition=models.Q(('material_out__isnull', False)), fields=['material_out'], name='mlogb_mat_out_not_null'), + ), + migrations.AddIndex( + model_name='mlogb', + index=models.Index(condition=models.Q(('material_in__isnull', False)), fields=['material_in'], name='mlogb_mat_in_not_null'), + ), + ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index a5b905df..56460adb 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -441,6 +441,20 @@ class Mlogb(BaseModel): need_inout = models.BooleanField('是否需要出入库', default=True) number_from = models.TextField('来源个编号', null=True, blank=True) + class Meta: + indexes = [ + models.Index( + fields=["material_out"], + name="mlogb_mat_out_not_null", + condition=Q(material_out__isnull=False), + ), + models.Index( + fields=["material_in"], + name="mlogb_mat_in_not_null", + condition=Q(material_in__isnull=False), + ), + ] + def get_tracking(self): if self.material_in: @@ -502,7 +516,7 @@ class MlogbDefect(BaseModel): class Mlogbw(BaseModel): """TN: 单个产品生产/检验日志 """ - number = models.TextField('单个编号') + number = models.TextField('单个编号', db_index=True) mlogb = models.ForeignKey(Mlogb, verbose_name='生产记录', on_delete=models.CASCADE, related_name="w_mlogb") mlogbw_from = models.ForeignKey("self", verbose_name='来源个', on_delete=models.CASCADE, null=True, blank=True, related_name="w_mlogbw_from") wpr = models.ForeignKey("wpmw.wpr", verbose_name='关联产品', on_delete=models.SET_NULL diff --git a/apps/wpmw/migrations/0009_alter_wpr_number.py b/apps/wpmw/migrations/0009_alter_wpr_number.py new file mode 100644 index 00000000..033dc7e0 --- /dev/null +++ b/apps/wpmw/migrations/0009_alter_wpr_number.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-11-26 01:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpmw', '0008_wpr_data'), + ] + + operations = [ + migrations.AlterField( + model_name='wpr', + name='number', + field=models.CharField(blank=True, db_index=True, max_length=50, null=True, verbose_name='编号'), + ), + ] diff --git a/apps/wpmw/models.py b/apps/wpmw/models.py index af092087..8478da90 100644 --- a/apps/wpmw/models.py +++ b/apps/wpmw/models.py @@ -16,7 +16,7 @@ class Wpr(BaseModel): TN: 动态产品 """ - number = models.CharField("编号", max_length=50, null=True, blank=True) + number = models.CharField("编号", max_length=50, null=True, blank=True, db_index=True) number_out = models.CharField("对外编号", max_length=50, null=True, blank=True, unique=True) version = models.PositiveIntegerField("版本号", default=9999) state = models.PositiveSmallIntegerField('状态', default=10, choices=WmStateOption.choices)