factory/apps/qm/models.py

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)