feat: mlogbdefect添加字段floor

This commit is contained in:
caoqianming 2025-03-03 14:50:26 +08:00
parent 6ad6670a90
commit bbed6fa646
3 changed files with 23 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2025-03-03 06:49
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wpm', '0089_mlogbdefect'),
]
operations = [
migrations.AddField(
model_name='mlogbdefect',
name='floor',
field=models.IntegerField(blank=True, null=True, verbose_name='层数'),
),
]

View File

@ -367,6 +367,7 @@ class Mlogb(BaseModel):
class MlogbDefect(BaseModel):
mlogb = models.ForeignKey(Mlogb, verbose_name='生产记录', on_delete=models.CASCADE)
defect = models.ForeignKey("qm.Defect", verbose_name='缺陷', on_delete=models.CASCADE)
floor = models.IntegerField("层数", null=True, blank=True)
count = models.PositiveIntegerField('数量', default=0)
class Mlogbw(BaseModel):

View File

@ -265,7 +265,8 @@ class MlogbDefectSerializer(CustomModelSerializer):
defect_name = serializers.CharField(source="defect.name", read_only=True)
class Meta:
model = MlogbDefect
fields = ["id", "defect_name", "count", "mlogb", "defect"]
fields = ["id", "defect_name", "count", "mlogb", "defect", "floor"]
read_only_fields = EXCLUDE_FIELDS_BASE + ["mlogb"]
class MlogbDetailSerializer(CustomModelSerializer):
@ -716,7 +717,7 @@ class MlogbOutUpdateSerializer(CustomModelSerializer):
mlogbdefect_new = [item for item in mlogbdefect if item["count"] > 0]
for item in mlogbdefect_new:
defect:Defect = item["defect"]
Mlogb.objects.create(mlogb=ins, defect=defect, count=item["count"])
MlogbDefect.objects.create(mlogb=ins, **item)
if defect.cate == Defect.DEFECT_NOTOK:
count_notok +=1
ins.count_notok = count_notok
@ -736,7 +737,7 @@ class MlogbOutUpdateSerializer(CustomModelSerializer):
md_ids = []
for item in mlogbdefect:
defect = item["defect"]
insb, _ = MlogbDefect.objects.get_or_create(mlogb=ins, defect=defect)
insb, _ = MlogbDefect.objects.get_or_create(mlogb=ins, defect=defect, floor=item.get('floor', None))
insb.count = item["count"]
insb.save(update_fields=["count"])
if defect.cate == Defect.DEFECT_NOTOK: