feat: 增加addto_wpr字段配置以在wpr表里添加额外信息
This commit is contained in:
parent
3e93fce213
commit
f88689cc1e
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 3.2.12 on 2025-01-22 05:47
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('qm', '0040_quastat_rate_pass_t'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='ftestitem',
|
||||
name='addto_wpr',
|
||||
field=models.BooleanField(default=False, verbose_name='加入WPR作为信息'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='qcttestitem',
|
||||
name='addto_wpr',
|
||||
field=models.BooleanField(default=False, verbose_name='加入WPR作为信息'),
|
||||
),
|
||||
]
|
|
@ -170,6 +170,7 @@ class Qct(CommonAModel):
|
|||
class QctTestItem(BaseModel):
|
||||
qct = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE, related_name="qcttestitem")
|
||||
testitem = models.ForeignKey(TestItem, verbose_name="检测项", on_delete=models.CASCADE, null=True, blank=True)
|
||||
addto_wpr = models.BooleanField('加入WPR作为信息', default=False)
|
||||
note = models.TextField('备注', null=True, blank=True)
|
||||
sort = models.FloatField('排序', default=1)
|
||||
|
||||
|
@ -315,6 +316,7 @@ class FtestItem(BaseModel):
|
|||
TestItem, verbose_name='质检项目', on_delete=models.CASCADE)
|
||||
test_user = models.ForeignKey(User, verbose_name='操作人', on_delete=models.CASCADE, null=True, blank=True)
|
||||
test_val = models.FloatField('测量值', null=True, blank=True)
|
||||
addto_wpr = models.BooleanField('加入WPR作为信息', default=False)
|
||||
check_val = models.FloatField('专检测量值', null=True, blank=True)
|
||||
test_val_json = models.JSONField('测量值', null=True, blank=True)
|
||||
check_val_json = models.JSONField('专检测量值', null=True, blank=True)
|
||||
|
|
|
@ -306,7 +306,7 @@ class FtestItemProcessSerializer(CustomModelSerializer):
|
|||
source='testitem.description', read_only=True)
|
||||
class Meta:
|
||||
model = FtestItem
|
||||
fields = ["id", "testitem", "test_user", "test_val_json", "testitem_name", "testitem_description"]
|
||||
fields = ["id", "testitem", "test_user", "test_val_json", "testitem_name", "testitem_description", "addto_wpr"]
|
||||
|
||||
class FtestProcessSerializer(CustomModelSerializer):
|
||||
test_user_name = serializers.CharField(
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2025-01-22 05:48
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wpmw', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='wpr',
|
||||
name='oinfo',
|
||||
field=models.JSONField(blank=True, default=dict, verbose_name='其他信息'),
|
||||
),
|
||||
]
|
|
@ -1,6 +1,6 @@
|
|||
from django.db import models
|
||||
|
||||
from apps.qm.models import FtestDefect
|
||||
from apps.qm.models import FtestDefect, FtestItem
|
||||
from apps.utils.models import BaseModel
|
||||
from apps.mtm.models import Material
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
@ -19,6 +19,7 @@ class Wpr(BaseModel):
|
|||
|
||||
mb = models.ForeignKey("inm.materialbatch", verbose_name="仓库物料", on_delete=models.CASCADE, null=True, blank=True)
|
||||
wm = models.ForeignKey("wpm.wmaterial", verbose_name="车间物料", on_delete=models.CASCADE, null=True, blank=True)
|
||||
oinfo = models.JSONField(verbose_name="其他信息", default=dict, blank=True)
|
||||
|
||||
@classmethod
|
||||
def change_or_new(cls, wpr=None, number=None, mb=None, wm=None, old_mb=None, old_wm=None, ftest=None):
|
||||
|
@ -57,10 +58,18 @@ class Wpr(BaseModel):
|
|||
if wm.defect:
|
||||
WprDefect.objects.create(wpr=ins, defect=wm.defect, is_main=True)
|
||||
ins.save()
|
||||
if ftest: # 通过检验变更其缺陷项
|
||||
if ftest:
|
||||
# 通过检验变更其缺陷项
|
||||
WprDefect.objects.filter(wpr=ins).delete()
|
||||
for ftestdefect in FtestDefect.objects.filter(ftest=ftest, has=True):
|
||||
WprDefect.objects.create(wpr=ins, defect=ftestdefect.defect, is_main=ftestdefect.is_main)
|
||||
# 携带某些检测信息
|
||||
oinfo = {}
|
||||
for ftestitem in FtestItem.objects.filter(ftest=ftest, addto_wpr=True):
|
||||
if ftestitem.test_val_json:
|
||||
oinfo[ftestitem.id] = {"name": ftestitem.testitem.name, "val": ftestitem.test_val_json}
|
||||
ins.oinfo = ins.oinfo.update(oinfo) if ins.oinfo else oinfo
|
||||
ins.save()
|
||||
return ins
|
||||
|
||||
@classmethod
|
||||
|
|
Loading…
Reference in New Issue