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