66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
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)
|