From a0346f00bf00fb748159ad5349fc4722e7a74591 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 28 Apr 2025 09:17:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20wpr=E5=A4=8D=E7=94=A8number=E7=9A=84bug2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpmw/models.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/wpmw/models.py b/apps/wpmw/models.py index 2c0df756..7ca50929 100644 --- a/apps/wpmw/models.py +++ b/apps/wpmw/models.py @@ -38,30 +38,34 @@ class Wpr(BaseModel): wpr.delete() return elif number: - try: - ins_x = cls.objects.get(number=number) + ins_x = cls.objects.filter(number=number).order_by("-version").first() + if ins_x: if ins_x.wm is None and ins_x.mb is None: if ins_x.version > 1: # 说明被复用了 if wpr_from is None: wpr_from = ins_x + # 创建新的wpr + ins = cls(number=number) + ins.version = -1 + ins.oinfo = {} else: raise ParseError(f"该物料编号{number}-已存在不可使用") else: raise ParseError(f"该物料编号{number}-已存在不可使用") - except cls.DoesNotExist: + else: ins = cls(number=number) ins.version = -1 ins.oinfo = {} if batch_from: # 尝试从批号追踪来源 - try: - ins_from = cls.objects.get(number=number) + ins_from = cls.objects.filter(number=batch_from).order_by("-version").first() + if ins_from: if ins_from.wm is None and ins_from.mb is None: if ins_from.version > 1: # 说明被复用了 wpr_from = ins_from else: raise ParseError(f"该物料编号{number}-已存在不可使用") - except cls.DoesNotExist: - pass + elif wpr_from is None: + raise ParseError(f"该物料编号{number}-尝试从批号追踪来源失败") if old_mb and ins.mb != old_mb: raise ParseError(f"请检查-{ins.number}-所属仓库批次")