1
0
forked from erp-dev/erp

feat: added plate order clone

This commit is contained in:
2025-12-16 08:42:53 +08:00
parent 4c9b8e6a42
commit 0638dd1ad3
25 changed files with 46174 additions and 8 deletions

View File

@@ -8,7 +8,7 @@ from rest_framework.permissions import BasePermission
from rest_framework.pagination import LimitOffsetPagination
from rest_framework.permissions import DjangoModelPermissions
from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
from django.db.models import CharField
from django.db.models import CharField, Prefetch
from django.db.models.functions import Cast, Coalesce
from django_filters.rest_framework import DjangoFilterBackend
from django_filters import rest_framework as django_filters
@@ -306,6 +306,14 @@ class PrintingJobViewSet(viewsets.ModelViewSet):
queryset = super().get_queryset()
if self.action in ['list', 'retrieve']:
queryset = queryset.select_related('printing_order', 'product')
# 预取批量推进记录(避免 serializer 产生 N+1
queryset = queryset.prefetch_related(
Prefetch(
'batch_advance_records',
queryset=models.PrintingJobBatchAdvanceRecord.objects.select_related('state', 'created_by')
.order_by('-created_at', '-id'),
)
)
return queryset
def destroy(self, request, *args, **kwargs):