from django.db import models from apps.system.models import CommonAModel, User from apps.utils.models import CommonBDModel, BaseModel from apps.mtm.models import Material, Mgroup, Team from apps.wpm.models import SfLog class TestItem(CommonAModel): """ 检验项目 """ name = models.CharField('名称', max_length=100) sort = models.PositiveSmallIntegerField('排序', default=1) description = models.TextField('描述', default='') class Meta: ordering = ['sort', '-create_time'] # Create your models here. class QuaStat(CommonBDModel): """ 质量数据表 """ material = models.ForeignKey( Material, verbose_name='关联产物', on_delete=models.CASCADE) sflog = models.ForeignKey( SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE, null=True, blank=True) testitem = models.ForeignKey( TestItem, verbose_name='质检项目', on_delete=models.CASCADE) val_avg = models.FloatField('平均值', null=True, blank=True) num_test = models.PositiveSmallIntegerField('检测次数', null=True, blank=True) num_ok = models.PositiveSmallIntegerField('合格次数', null=True, blank=True) rate_pass = models.FloatField('合格率', null=True, blank=True) class Ftest(CommonBDModel): """ 首件检验 """ test_date = models.DateField('检验日期') test_group = models.CharField('检验工序集', max_length=20, default='') test_user = models.ForeignKey( User, verbose_name='操作人', on_delete=models.CASCADE, related_name='ftest_test_user') check_user = models.ForeignKey( User, verbose_name='专检人', on_delete=models.CASCADE, related_name='ftest_check_user') is_ok = models.BooleanField('是否合格', default=False) note = models.TextField('备注', default='', blank=True) @property def ftestitems(self): return FtestItem.objects.filter(ftest=self) class FtestItem(BaseModel): """ 检测明细 """ ftest = models.ForeignKey( Ftest, verbose_name='关联检验', on_delete=models.CASCADE) testitem = models.ForeignKey( TestItem, verbose_name='质检项目', on_delete=models.CASCADE) test_val = models.FloatField('测量值', default=0, blank=True) check_val = models.FloatField('专检测量值', null=True, blank=True)