fix: 增加检测模板功能字段 bug

This commit is contained in:
caoqianming 2024-12-19 11:04:16 +08:00
parent e7c08dc16c
commit 1647b2f06e
4 changed files with 19 additions and 14 deletions

View File

@ -1,5 +1,6 @@
from django_filters import rest_framework as filters
from apps.qm.models import QuaStat, TestItem, FtestWork
from apps.qm.models import QuaStat, TestItem, FtestWork, Qct
from apps.utils.filters import MyJsonListFilter
class QuaStatFilter(filters.FilterSet):
@ -14,6 +15,12 @@ class QuaStatFilter(filters.FilterSet):
"sflog__end_time": ["day", "month", "year", "lt"],
}
class QctFilter(filters.FilterSet):
tags = MyJsonListFilter(label="tags查询,分隔")
class Meta:
model = Qct
fields = ["testitems", "defects"]
class TestItemFilter(filters.FilterSet):
tags__contains = filters.CharFilter(field_name='tags', lookup_expr='contains')

View File

@ -1,4 +1,4 @@
# Generated by Django 3.2.12 on 2024-12-19 02:06
# Generated by Django 3.2.12 on 2024-12-19 02:34
from django.conf import settings
from django.db import migrations, models
@ -9,8 +9,8 @@ import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('mtm', '0048_auto_20241218_1431'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('mtm', '0048_auto_20241218_1431'),
('qm', '0028_defect'),
]
@ -40,7 +40,7 @@ class Migration(migrations.Migration):
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
('tracing', models.CharField(choices=[('test', '检测项'), ('defect', '缺陷项')], default='test', help_text="(('test', '检测项'), ('defect', '缺陷项'))", max_length=20, verbose_name='追溯层级')),
('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mtm.material', verbose_name='物料')),
('qc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='qm.qct', verbose_name='质检模板')),
('qct', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='qm.qct', verbose_name='质检模板')),
],
options={
'abstract': False,
@ -57,7 +57,7 @@ class Migration(migrations.Migration):
('rule_expression', models.TextField(blank=True, null=True, verbose_name='判定表达式')),
('sort', models.FloatField(default=1, verbose_name='排序')),
('defect', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='qm.defect', verbose_name='缺陷项')),
('qc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='qm.qct', verbose_name='质检模板')),
('qct', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='qm.qct', verbose_name='质检模板')),
('testitem', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='qm.testitem', verbose_name='检测项')),
],
options={

View File

@ -143,7 +143,7 @@ class Qct(CommonAModel):
materials = models.ManyToManyField(Material, verbose_name="物料", blank=True, through='qm.qctmat')
class QctItem(BaseModel):
qc = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE)
qct = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE)
testitem = models.ForeignKey(TestItem, verbose_name="检测项", on_delete=models.CASCADE, null=True, blank=True)
note = models.TextField('备注', null=True, blank=True)
rule_expression = models.TextField('判定表达式', null=True, blank=True)
@ -151,7 +151,7 @@ class QctItem(BaseModel):
sort = models.FloatField('排序', default=1)
class QctMat(BaseModel):
qc = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE)
qct = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE)
material = models.ForeignKey(Material, verbose_name="物料", on_delete=models.CASCADE)
tracing = models.CharField('追溯层级', default=QC_T, choices=QC_TRACE_CHOICES, max_length=20, help_text=str(QC_TRACE_CHOICES))

View File

@ -14,7 +14,7 @@ import datetime
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from apps.wpm.models import SfLog
from apps.qm.filters import QuaStatFilter, TestItemFilter, FtestWorkFilter
from apps.qm.filters import QuaStatFilter, TestItemFilter, FtestWorkFilter, QctFilter
from django.db import transaction
from apps.qm.models import NotOkOption, Defect, Qct, QctItem, QctMat
from apps.qm.services import ftestwork_submit
@ -43,12 +43,11 @@ class QctViewSet(CustomModelViewSet):
queryset = Qct.objects.all()
serializer_class = QctSerializer
retrieve_serializer_class = QctDetailSerializer
filterset_fields = ["tags", "testitems", "defects"]
filterset_class = QctFilter
search_fields = ["name", "number"]
class QctItemViewSet(CustomModelViewSet):
"""
list: 检测模板项
"""检测模板项
检测模板项
"""
@ -56,11 +55,10 @@ class QctItemViewSet(CustomModelViewSet):
queryset = QctItem.objects.all()
serializer_class = QctItemSerializer
filterset_fields = ["qct", "testitem", "defect"]
ordering = ["qc", "sort"]
ordering = ["qct", "sort"]
class QctMatViewSet(CustomModelViewSet):
"""
list: 检测物料
"""检测物料
检测物料
"""