From cf6633592a8848da57e3d8da930a6c63974edf93 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 12 Jan 2026 13:44:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A4=E6=8E=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=AD=90=E9=A1=B9=E9=9C=80=E4=BF=9D=E8=AF=81=E5=B7=A5=E6=AE=B5?= =?UTF-8?q?/=E8=BD=A6=E9=97=B4=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/models.py | 4 ++++ apps/wpm/serializers.py | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/wpm/models.py b/apps/wpm/models.py index a00b2557..cbaf639d 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -654,6 +654,10 @@ class Handover(CommonADModel): @property def handoverb(self): return Handoverb.objects.filter(handover=self) + + @property + def belong_dept_or_mgroup_id(self): + return self.mgroup.id if self.mgroup else self.belong_dept.id class Handoverb(BaseModel): """TN: 子级交接记录 diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index f306bccc..a724afd7 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -1261,12 +1261,18 @@ class HandoverSerializer(CustomModelSerializer): next_mat = new_wm.material next_state = new_wm.state next_defect = new_wm.defect + deptOrmgroupId = None for ind, item in enumerate(attrs['handoverb']): if item["count"] > 0: pass else: raise ParseError(f'第{ind+1}行-交接数量必须大于0') - wm = item["wm"] + wm: WMaterial = item["wm"] + current_mdept_id = wm.belong_dept_or_mgroup_id + if deptOrmgroupId is None: + deptOrmgroupId = current_mdept_id + elif deptOrmgroupId != current_mdept_id: + raise ParseError(f'第{ind+1}行-交接物料所属工段/车间不一致') if mtype == Handover.H_MERGE: if next_mat is None: next_mat = wm.material