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