cma_search/server/apps/quality/models.py

93 lines
3.0 KiB
Python

from django.db import models
from utils.model import BaseModel
from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File
# Create your models here.
class InspectItem(CommonAModel):
"""
检查条款
"""
type_choices = (
('合规', '合规'),
('体系', '体系'),
)
name = models.TextField('名称')
cate = models.ForeignKey(Dict, on_delete=models.SET_NULL, null=True, blank=True)
type = models.CharField('类型', max_length=50, choices=type_choices, default='合规')
require = models.TextField('取证要求', null=True, blank=True)
sortnum = models.IntegerField('序号', default=1)
class Meta:
verbose_name = '检查清单'
verbose_name_plural = verbose_name
class InspectTask(CommonAModel):
"""
巡查任务
"""
name = models.CharField('任务名', max_length=100)
start_date = models.DateField('巡查开始日期')
end_date = models.DateField('巡查结束日期')
class Meta:
verbose_name = '巡查任务'
verbose_name_plural = verbose_name
class SubInspectTask(CommonAModel):
"""
巡查子任务
"""
name = models.CharField('子任务名', max_length=100)
inspecttask = models.ForeignKey(InspectTask, on_delete=models.CASCADE, verbose_name='所属任务')
leader = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='组长')
class Meta:
verbose_name = '巡查子任务'
verbose_name_plural = verbose_name
class InspectTeam(CommonAModel):
"""
巡查组构成
"""
type_choices = (
('组长', '组长'),
('组员', '组员'),
)
member = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='成员')
type = models.CharField('成员类型', max_length=50, choices=type_choices, default='组员')
subtask = models.ForeignKey(SubInspectTask, on_delete=models.CASCADE, verbose_name='关联子任务')
class Meta:
verbose_name = '巡查组'
verbose_name_plural = verbose_name
class InspectDept(CommonAModel):
"""
受巡查组织
"""
dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受巡查组织')
subtask = models.ForeignKey(SubInspectTask, on_delete=models.CASCADE, verbose_name='关联子任务')
class Meta:
verbose_name = '巡查组'
verbose_name_plural = verbose_name
class InspectRecord(CommonAModel):
"""
巡查记录
"""
result_choices = (
('发现', '发现'),
('未发现', '未发现'),
('不适用', '不适用')
)
item = models.ForeignKey(InspectItem, on_delete=models.CASCADE, verbose_name='检查项')
dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受检查单位')
result = models.CharField('检查结果', max_length=50, choices=result_choices, null=True, blank=True)
note = models.TextField('检查说明', null=True, blank=True)
class Meta:
verbose_name = '巡查记录'
verbose_name_plural = verbose_name