141 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| from django.db import models
 | |
| from django.utils import timezone 
 | |
| import uuid  
 | |
| from apps.system.models import CommonBDModel
 | |
| 
 | |
| 
 | |
| class Qualification(CommonBDModel):
 | |
|     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)
 | |
|     change_date = models.DateField(verbose_name='变更日期',default=timezone.now() ,null=True, blank=True)
 | |
|         
 | |
|     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 = models.ForeignKey(Qualification, on_delete=models.CASCADE, verbose_name='实例ID')
 | |
|     change_reason = models.CharField('变更原因', null=True ,blank=True ,max_length=50)
 | |
|     change_user = models.ForeignKey('system.user', on_delete=models.SET_NULL, verbose_name='操作人', null=True, blank=True)
 | |
|     change_time = models.DateField('变更时间')
 | |
|     val_new = models.JSONField('变更后完整数据', default=dict)
 | |
|     difference = models.JSONField('变更情况', default=list)
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = '资质变更情况'
 | |
|         db_table = 'qfn_change_info'
 | |
| 
 | |
| 
 | |
| class AbilityReview(CommonBDModel):
 | |
|     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='资质名称', null=True, blank=True)
 | |
|     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='新增场所数量')
 | |
|     quali = models.ForeignKey(Qualification, on_delete=models.SET_NULL, null=True, verbose_name='资质情况')
 | |
|         
 | |
|     class Meta:
 | |
|         verbose_name = '评审情况'
 | |
|         db_table = 'ability_review'
 | |
| 
 | |
| 
 | |
| class QualityCommendation(CommonBDModel):
 | |
|     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, blank=True)
 | |
|     awardee_people = models.CharField(max_length=20, verbose_name='获奖人', null=True, blank=True)
 | |
|     awarded_by = models.CharField(max_length=20, verbose_name='颁奖单位')
 | |
|     awarded_date = models.DateField(verbose_name='获奖日期', null=True)
 | |
|  
 | |
|     class Meta:
 | |
|         verbose_name = '质量表彰'
 | |
|         db_table = 'quality_commendation'
 | |
| 
 | |
| class QualityActivities(CommonBDModel):
 | |
|     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) 
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = '质量活动'
 | |
|         db_table = 'quality_activities'
 | |
| 
 | |
| 
 | |
| class Contact(CommonBDModel):
 | |
|     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='质量负责人电话') 
 | |
|     email_quality = models.CharField(max_length=50, verbose_name='质量负责人邮箱', null=True, blank=True)
 | |
|     
 | |
|     class Meta:
 | |
|         verbose_name = '实验室联系方式'
 | |
|         db_table = 'contact'
 | |
| 
 | |
| class ExternalAuditors(CommonBDModel):
 | |
|     name_company = models.CharField(max_length=20, unique=True, verbose_name='公司名称')
 | |
|     name = models.CharField(max_length=20, verbose_name='姓名')
 | |
|     review_types = models.CharField(max_length=20, verbose_name='评审类型')
 | |
|     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)
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = '外审员情况'
 | |
|         db_table = 'externalauditors'
 | |
| 
 | |
| class Parsepdf(CommonBDModel):
 | |
|     choice_status= (
 | |
|         ('执行中', '执行中'),
 | |
|         ('完成', '完成'),
 | |
|         ('未完成', '未完成'))
 | |
|     pdf_path = models.CharField(max_length=100, verbose_name='pdf路径')
 | |
|     excel_path = models.CharField(max_length=100, verbose_name='excel路径')
 | |
|     parse_excel = models.CharField(max_length=100, verbose_name='解析后excel路径')
 | |
|     annual = models.IntegerField(verbose_name='年份', blank=True, null=True)
 | |
|     excel_name = models.CharField(max_length=100, verbose_name='excel名称', null=True, blank=True)
 | |
|     pdf_name = models.CharField(max_length=100,  verbose_name='pdf名称', null=True, blank=True)
 | |
|     status = models.CharField(max_length=100, choices=choice_status, verbose_name='状态', default='完成')
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = '解析pdf'
 | |
|         db_table = 'parsepdf'
 |