feat:工艺路线新增validate接口,供拖拽画布实时校验DAG结构(不存盘,返回valid/error)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
caoqianming 2026-07-22 16:29:53 +08:00
parent ea0fe7c312
commit c08b220d17
1 changed files with 17 additions and 1 deletions

View File

@ -369,6 +369,22 @@ class RoutePackViewSet(CustomModelViewSet):
qs = Material.objects.filter(id__in=matIds) qs = Material.objects.filter(id__in=matIds)
res = [{"id": x.id, "name": str(x)} for x in qs] res = [{"id": x.id, "name": str(x)} for x in qs]
return Response(res) return Response(res)
@action(methods=['get'], detail=True, perms_map={'get': '*'})
def validate(self, request, *args, **kwargs):
"""校验工艺图是否合法(不存盘)
供拖拽画布实时校验DAG结构,返回 {valid, error},不修改gjson
"""
ins:RoutePack = self.get_object()
try:
ins.validate_and_return_gjson()
return Response({"valid": True, "error": ""})
except ParseError as e:
detail = e.detail
if isinstance(detail, (list, tuple)):
detail = detail[0] if detail else ""
return Response({"valid": False, "error": str(detail)})
class RouteViewSet(CustomModelViewSet): class RouteViewSet(CustomModelViewSet):
queryset = Route.objects.all() queryset = Route.objects.all()
serializer_class = RouteSerializer serializer_class = RouteSerializer