177 lines
9.3 KiB
Python
177 lines
9.3 KiB
Python
from django.db import models
|
||
from django.utils import timezone
|
||
from apps.system.models import Organization
|
||
import uuid
|
||
|
||
class Qualification(models.Model):
|
||
quali_options = (('国家级','国家级'),('省级','省级'))
|
||
company_name = models.CharField(max_length=20, verbose_name='公司名称', null=True, blank=True)
|
||
name = models.CharField(max_length=20, verbose_name='资质名称',null=True, blank=True)
|
||
quali_type = models.CharField(max_length=20, choices=quali_options, verbose_name='资质类型')
|
||
org = models.CharField(max_length=20, verbose_name='发证单位', null=True, blank=True)
|
||
org_date = models.DateField(verbose_name='发证日期', null=True, blank=True)
|
||
expiration_date = models.DateField(verbose_name='截至日期', null=True, blank=True)
|
||
scope = models.TextField(verbose_name='资质范围', null=True, blank=True)
|
||
number = models.IntegerField(verbose_name='参数数量', null=True, blank=True)
|
||
cie_path = models.CharField(max_length=100, verbose_name='证书路径', null=True, blank=True)
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='所属单位')
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(Qualification, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '资质情况'
|
||
db_table = 'qfn_info'
|
||
|
||
|
||
class AuditLog(models.Model):
|
||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||
action = models.CharField('动作', max_length=20)
|
||
instance_id = models.CharField('记录ID', max_length=20, editable=False)
|
||
change_reason = models.CharField('变更原因', default='', max_length=50)
|
||
change_user = models.ForeignKey('system.user', on_delete=models.SET_NULL, verbose_name='操作人', null=True, blank=True)
|
||
change_time = models.DateTimeField('变更时间')
|
||
val_new = models.JSONField('变更后完整数据', default=dict)
|
||
difference = models.JSONField('变更情况', default=list)
|
||
|
||
class Meta:
|
||
verbose_name = '资质变更情况'
|
||
db_table = 'qfn_change_info'
|
||
|
||
|
||
class AbilityReview(models.Model):
|
||
type_method = (
|
||
(0, '文审'),
|
||
(10, '现场'))
|
||
|
||
juge_type = ( (0, '初次'),
|
||
(10, '扩项'),
|
||
(20, '变更'),
|
||
(30, '复评'),
|
||
(40, '迁址'))
|
||
name = models.CharField(max_length=20, unique=True, verbose_name='公司名称')
|
||
qualification_name = models.CharField(max_length=20, verbose_name='资质名称')
|
||
judging_method = models.PositiveSmallIntegerField(max_length=20, choices=type_method, verbose_name='评审方法')
|
||
judging_type = models.PositiveSmallIntegerField(max_length=20, choices=juge_type, verbose_name='评审类型')
|
||
add_param = models.IntegerField(default=0, verbose_name='新增参数')
|
||
review_date = models.DateField(verbose_name='评审日期', null=True)
|
||
now_count = models.IntegerField(default=0, verbose_name='现有场所数量')
|
||
add_count = models.IntegerField(default=0, verbose_name='新增场所数量')
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='所属单位')
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(AbilityReview, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '评审情况'
|
||
db_table = 'ability_review'
|
||
|
||
|
||
class QualityCommendation(models.Model):
|
||
name = models.CharField(max_length=20, unique=True, verbose_name='项目名称')
|
||
commendation_name = models.CharField(max_length=20, verbose_name='表彰名称')
|
||
Awards_level = models.CharField(max_length=20, verbose_name='获奖等级')
|
||
awardee_company = models.CharField(max_length=20, verbose_name='获奖单位', null=True)
|
||
awardee_people = models.CharField(max_length=20, verbose_name='获奖人', null=True)
|
||
awarded_by = models.CharField(max_length=20, verbose_name='颁奖单位')
|
||
awarded_date = models.DateField(verbose_name='获奖日期', null=True)
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='所属单位')
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(QualityCommendation, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '质量表彰'
|
||
db_table = 'quality_commendation'
|
||
|
||
class QualityActivities(models.Model):
|
||
role = ((0,'组织方'),(1,'活动方'))
|
||
name = models.CharField(max_length=20, unique=True, verbose_name='活动名称')
|
||
roles = models.PositiveSmallIntegerField(max_length=20, choices=role, verbose_name='参与角色')
|
||
collaborators = models.CharField(max_length=20, verbose_name='合作方')
|
||
orgunits = models.CharField(max_length=20, verbose_name='组织单位')
|
||
place = models.CharField(max_length=50, verbose_name='活动地点')
|
||
activate_time = models.DateField(verbose_name='活动时间', null=True)
|
||
participations = models.IntegerField(verbose_name='活动参与单位数量', null=True, blank=True)
|
||
function = models.CharField(max_length=100, verbose_name='活动中发挥的作用', null=True)
|
||
earnings = models.FloatField(verbose_name='活动收益', null=True)
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='组织单位')
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(QualityActivities, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '质量活动'
|
||
db_table = 'quality_activities'
|
||
|
||
|
||
class Contact(models.Model):
|
||
name = models.CharField(max_length=20, unique=True, verbose_name='姓名')
|
||
address = models.CharField(max_length=100, verbose_name='地址')
|
||
header = models.CharField(max_length=20, verbose_name='负责人')
|
||
tel = models.CharField(max_length=20, verbose_name='负责人电话')
|
||
email = models.CharField(max_length=50, verbose_name='负责人邮箱', null=True, blank=True)
|
||
head_technology = models.CharField(max_length=50, verbose_name='技术负责人')
|
||
tel_technology = models.CharField(max_length=20, verbose_name='技术负责人电话')
|
||
email_technology = models.CharField(max_length=50, verbose_name='技术负责人邮箱', null=True, blank=True)
|
||
head_quality = models.CharField(max_length=50, verbose_name='质量负责人')
|
||
tel_quality = models.CharField(max_length=20, verbose_name='质量负责人电话')
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
email_quality = models.CharField(max_length=50, verbose_name='质量负责人邮箱', null=True, blank=True)
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(Contact, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '实验室联系方式'
|
||
db_table = 'contact'
|
||
|
||
class ExternalAuditors(models.Model):
|
||
review_type = ( (0, 'CNAS'),
|
||
(1, 'CMA'),
|
||
(2, 'DICA'))
|
||
name_company = models.CharField(max_length=20, unique=True, verbose_name='公司名称')
|
||
name = models.CharField(max_length=20, verbose_name='姓名')
|
||
review_types = models.PositiveSmallIntegerField(max_length=20, choices=review_type,verbose_name='评审类型', default=0)
|
||
certificate_expiration = models.DateField(verbose_name='证书有效期')
|
||
contact = models.CharField(max_length=20, verbose_name='联系方式')
|
||
judging_areas = models.CharField(max_length=20, verbose_name='评审领域')
|
||
remark = models.CharField(max_length=20, verbose_name='备注', null=True, blank=True)
|
||
create_date = models.DateTimeField(auto_now_add=True, null=True)
|
||
update_date = models.DateTimeField(auto_now=True, null=True)
|
||
department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='单位名称')
|
||
|
||
def save(self, *args, **kwargs):
|
||
if not self.id:
|
||
self.create_date = timezone.now()
|
||
# update_date将自动设置为当前时间,因为auto_now=True
|
||
super(ExternalAuditors, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = '外审员情况'
|
||
db_table = 'externalauditors'
|