feat: 交接记录子项需保证工段/车间一致

This commit is contained in:
caoqianming 2026-01-12 13:44:08 +08:00
parent b39b0e7923
commit cf6633592a
2 changed files with 11 additions and 1 deletions

View File

@ -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: 子级交接记录

View File

@ -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