From 18c66eee7a8d4d0882f5bbf582727cf653a7389b Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 9 Dec 2025 09:41:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20validate=5Fdag=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BC=A0=E5=85=A5=E5=8F=82=E6=95=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mtm/models.py | 6 +++--- apps/pm/services.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/mtm/models.py b/apps/mtm/models.py index f6fb10eb..4d8cc0ed 100644 --- a/apps/mtm/models.py +++ b/apps/mtm/models.py @@ -476,7 +476,7 @@ class Route(CommonADModel): return rqs @classmethod - def validate_dag(cls, final_material_out:Material, rqs, check_input=True): + def validate_dag(cls, final_material_out:Material, rqs, check_final=True): """ TN:校验工艺路线是否正确: - 所有 Route 必须有 material_in 和 material_out @@ -507,7 +507,7 @@ class Route(CommonADModel): # 3. 检查final_material_out是否是终点 final_id = final_material_out.id - if check_input and final_id in reverse_graph: + if check_final and final_id in reverse_graph: # raise ParseError( # f"最终物料 {final_material_out.name}(ID:{final_id}) 不能作为任何Route的输入" # ) @@ -527,7 +527,7 @@ class Route(CommonADModel): # 5. 检查未到达的物料 unreachable_ids = all_material_ids - visited - if unreachable_ids: + if check_final and unreachable_ids: # unreachable_materials = Material.objects.filter(id__in=unreachable_ids).values_list('name', flat=True) # raise ParseError( # f"以下物料无法到达最终物料: {list(unreachable_materials)}" diff --git a/apps/pm/services.py b/apps/pm/services.py index ac51ade9..aeb33821 100644 --- a/apps/pm/services.py +++ b/apps/pm/services.py @@ -218,7 +218,7 @@ class PmService: rqs = Route.get_routes(material=product) if not rqs.exists(): raise ParseError('未配置工艺路线') - Route.validate_dag(product, rqs, check_input=False) + Route.validate_dag(product, rqs, check_final=False)