fix: wpr oinfo bug

This commit is contained in:
caoqianming 2025-03-21 12:15:05 +08:00
parent 8867e76701
commit 23ad849e36
1 changed files with 3 additions and 2 deletions

View File

@ -5,6 +5,7 @@ from apps.utils.models import BaseModel
from apps.mtm.models import Material from apps.mtm.models import Material
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from apps.wpm.models import WmStateOption from apps.wpm.models import WmStateOption
from apps.utils.tools import update_dict
# Create your models here. # Create your models here.
class Wpr(BaseModel): class Wpr(BaseModel):
@ -50,6 +51,7 @@ class Wpr(BaseModel):
except cls.DoesNotExist: except cls.DoesNotExist:
ins = cls(number=number) ins = cls(number=number)
ins.version = -1 ins.version = -1
ins.oinfo = {}
if old_mb and ins.mb != old_mb: if old_mb and ins.mb != old_mb:
raise ParseError(f"请检查-{ins.number}-所属仓库批次") raise ParseError(f"请检查-{ins.number}-所属仓库批次")
@ -72,7 +74,6 @@ class Wpr(BaseModel):
if wm.defect: if wm.defect:
WprDefect.objects.create(wpr=ins, defect=wm.defect, is_main=True) WprDefect.objects.create(wpr=ins, defect=wm.defect, is_main=True)
ins.version = ins.version + 1 ins.version = ins.version + 1
ins.oinfo = ins.oinfo if ins.oinfo else {}
ins.save() ins.save()
if ftest: if ftest:
# 通过检验变更其缺陷项 # 通过检验变更其缺陷项
@ -84,7 +85,7 @@ class Wpr(BaseModel):
for ftestitem in FtestItem.objects.filter(ftest=ftest, addto_wpr=True): for ftestitem in FtestItem.objects.filter(ftest=ftest, addto_wpr=True):
if ftestitem.test_val_json: if ftestitem.test_val_json:
oinfo[ftestitem.id] = {"name": ftestitem.testitem.name, "val": 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.oinfo = update_dict(ins.oinfo, oinfo)
ins.save() ins.save()
# if ins.mb and ins.wm: # if ins.mb and ins.wm:
# raise ParseError("所属仓库批次和车间批次不可同时存在2") # raise ParseError("所属仓库批次和车间批次不可同时存在2")