feat: 简化validate dag 的报错提示
This commit is contained in:
parent
eaa5d75b99
commit
2d7183f8dd
|
@ -294,9 +294,10 @@ class Route(CommonADModel):
|
|||
# 3. 检查final_material_out是否是终点
|
||||
final_id = final_material_out.id
|
||||
if final_id in reverse_graph:
|
||||
raise ParseError(
|
||||
f"最终物料 {final_material_out.name}(ID:{final_id}) 不能作为任何Route的输入"
|
||||
)
|
||||
# raise ParseError(
|
||||
# f"最终物料 {final_material_out.name}(ID:{final_id}) 不能作为任何Route的输入"
|
||||
# )
|
||||
raise ParseError("最终物料不可作为输入")
|
||||
|
||||
# 4. BFS检查路径可达性(使用material_id操作)
|
||||
visited = set()
|
||||
|
@ -313,10 +314,11 @@ class Route(CommonADModel):
|
|||
# 5. 检查未到达的物料
|
||||
unreachable_ids = all_material_ids - visited
|
||||
if unreachable_ids:
|
||||
unreachable_materials = Material.objects.filter(id__in=unreachable_ids).values_list('name', flat=True)
|
||||
raise ParseError(
|
||||
f"以下物料无法到达最终物料: {list(unreachable_materials)}"
|
||||
)
|
||||
# unreachable_materials = Material.objects.filter(id__in=unreachable_ids).values_list('name', flat=True)
|
||||
# raise ParseError(
|
||||
# f"以下物料无法到达最终物料: {list(unreachable_materials)}"
|
||||
# )
|
||||
raise ParseError("存在无法到达的节点")
|
||||
|
||||
# 6. DFS检查循环依赖
|
||||
visited_cycle = set()
|
||||
|
@ -337,8 +339,9 @@ class Route(CommonADModel):
|
|||
|
||||
for material_id in all_material_ids:
|
||||
if has_cycle(material_id):
|
||||
cycle_material = Material.objects.get(id=material_id)
|
||||
raise ParseError(f"循环依赖涉及物料: {cycle_material.name}(ID:{material_id})")
|
||||
# cycle_material = Material.objects.get(id=material_id)
|
||||
# raise ParseError(f"循环依赖涉及物料: {cycle_material.name}(ID:{material_id})")
|
||||
raise ParseError('存在循环依赖')
|
||||
|
||||
return True
|
||||
|
||||
|
|
Loading…
Reference in New Issue