Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory
This commit is contained in:
commit
f66e5bd9df
|
|
@ -343,14 +343,6 @@ class Ftest(CommonBDModel):
|
|||
FtestWork, verbose_name='关联检验工作', on_delete=models.CASCADE, null=True, blank=True)
|
||||
defect_main = models.ForeignKey(Defect, verbose_name='主要缺陷', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
|
||||
@property
|
||||
def ftestitems(self):
|
||||
return FtestItem.objects.filter(ftest=self)
|
||||
|
||||
@property
|
||||
def ftestdefects(self):
|
||||
return FtestDefect.objects.filter(ftest=self)
|
||||
|
||||
@classmethod
|
||||
def init_by_qct(cls, qct, test_user, test_date):
|
||||
ftest = Ftest.objects.create(qct=qct, test_user=test_user, test_date=test_date)
|
||||
|
|
@ -385,7 +377,7 @@ class FtestItem(BaseModel):
|
|||
TN:检测明细
|
||||
"""
|
||||
ftest = models.ForeignKey(
|
||||
Ftest, verbose_name='关联检验', on_delete=models.CASCADE)
|
||||
Ftest, verbose_name='关联检验', on_delete=models.CASCADE, related_name='items_ftest')
|
||||
testitem = models.ForeignKey(
|
||||
TestItem, verbose_name='质检项目', on_delete=models.CASCADE)
|
||||
test_equip = models.ForeignKey(Equipment, verbose_name='检测设备', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
|
|
|
|||
|
|
@ -347,8 +347,8 @@ class FtestItemProcessSerializer(CustomModelSerializer):
|
|||
class FtestProcessSerializer(CustomModelSerializer):
|
||||
test_user_name = serializers.CharField(
|
||||
source='test_user.name', read_only=True)
|
||||
ftestitems = FtestItemProcessSerializer(label='检验明细', many=True)
|
||||
ftestdefects = FtestDefectSerializer(label='缺陷明细', many=True)
|
||||
ftestitems = FtestItemProcessSerializer(source='items_ftest', many=True)
|
||||
ftestdefects = FtestDefectSerializer(source='defects_ftest', many=True)
|
||||
|
||||
class Meta:
|
||||
model = Ftest
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ from drf_yasg.utils import swagger_auto_schema
|
|||
from drf_yasg import openapi
|
||||
from django.db import connection
|
||||
from django.db.models.functions import Substr, Length
|
||||
|
||||
from apps.qm.models import FtestDefect, FtestItem
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
|
@ -1076,14 +1076,26 @@ class MlogbwViewSet(CustomModelViewSet):
|
|||
serializer_class = MlogbwCreateUpdateSerializer
|
||||
filterset_class = MlogbwFilter
|
||||
select_related_fields = ["ftest", "equip", "wpr", "mlogb"]
|
||||
prefetch_related_fields = [
|
||||
Prefetch(
|
||||
"ftest__items_ftest",
|
||||
queryset=FtestItem.objects.select_related(
|
||||
"testitem",
|
||||
"test_user",
|
||||
"test_equip",
|
||||
)
|
||||
),
|
||||
Prefetch(
|
||||
"ftest__defects_ftest",
|
||||
queryset=FtestDefect.objects.select_related(
|
||||
"defect",
|
||||
"test_user",
|
||||
)
|
||||
),
|
||||
]
|
||||
ordering = ["mlogb", "number", "create_time"]
|
||||
ordering_fields = ["number", "create_time", "mlogb"]
|
||||
|
||||
# def filter_queryset(self, queryset):
|
||||
# if not self.detail and not self.request.query_params.get('mlogb', None):
|
||||
# raise ParseError('请指定所属消耗/产出明细')
|
||||
# return super().filter_queryset(queryset)
|
||||
|
||||
def perform_create(self, serializer):
|
||||
ins: Mlogbw = serializer.save()
|
||||
mlog: Mlog = None
|
||||
|
|
|
|||
Loading…
Reference in New Issue