93 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
from django.db import models
 | 
						|
from apps.utils.models import CommonBModel, CommonADModel, CommonAModel
 | 
						|
from apps.system.models import User
 | 
						|
 | 
						|
# Create your models here.
 | 
						|
class Equipment(CommonBModel):
 | 
						|
    """
 | 
						|
    设备台账信息
 | 
						|
    其中belong_dept是责任部门
 | 
						|
    """
 | 
						|
    EQUIP_STATE_OK = 10
 | 
						|
    EQUIP_STATE_LIMIT = 20
 | 
						|
    EQUIP_STATE_FIX = 30
 | 
						|
    EQUIP_STATE_DISABLE = 40
 | 
						|
    EQUIP_STATE_SCRAP = 50
 | 
						|
    state_choices = (
 | 
						|
          (EQUIP_STATE_OK, '完好'),
 | 
						|
          (EQUIP_STATE_LIMIT, '限用'),
 | 
						|
          (EQUIP_STATE_FIX, '在修'),
 | 
						|
          (EQUIP_STATE_DISABLE, '禁用'),
 | 
						|
          (EQUIP_STATE_SCRAP, '报废')
 | 
						|
          
 | 
						|
    )
 | 
						|
    EQUIP_TYPE_PRO = 10
 | 
						|
    EQUIP_TYPE_MEA = 20
 | 
						|
    type_choices = (
 | 
						|
        (10, '生产设备'),
 | 
						|
        (20, '计量检测工具')
 | 
						|
    )
 | 
						|
    # mgmtype_choices = (
 | 
						|
    #      (1, 'A'),
 | 
						|
    #      (2, 'B'),
 | 
						|
    #      (3, 'C')
 | 
						|
    # )
 | 
						|
    # way_choices = (
 | 
						|
    #      (1, '外检'),
 | 
						|
    #      (2, '自检'),
 | 
						|
        
 | 
						|
    # )
 | 
						|
    # usetype_choices = (
 | 
						|
    #      (1, '专用'),
 | 
						|
    #      (2, '公用'),
 | 
						|
    # )
 | 
						|
    type = models.PositiveSmallIntegerField('类型', choices=type_choices, default=10)
 | 
						|
    name = models.CharField('设备名称', max_length=50)
 | 
						|
    number_factory = models.CharField('出厂编号', max_length=50)
 | 
						|
    number = models.CharField('设备编号', max_length=50, unique=True)
 | 
						|
    model = models.CharField('规格型号', max_length=60, default='', blank=True)
 | 
						|
    factory = models.CharField('生产厂', max_length=50, default='', blank=True)
 | 
						|
    production_date = models.DateField('生产日期', null=True, blank=True)
 | 
						|
    buy_date = models.DateField('购置日期', null=True, blank=True)
 | 
						|
    state = models.PositiveIntegerField('设备状态', choices=state_choices, default=EQUIP_STATE_OK)
 | 
						|
    parameter = models.TextField('技术参数', default='', blank=True)
 | 
						|
    place = models.CharField('安装/存放位置', max_length=50, default='', blank=True)
 | 
						|
    count = models.PositiveIntegerField('数量', default=1)
 | 
						|
    keeper = models.ForeignKey(User, verbose_name='责任人', on_delete=models.CASCADE, null=True, blank=True)
 | 
						|
    description = models.CharField('描述', max_length=200, default='', null=True)
 | 
						|
 | 
						|
    # 以下是计量检测设备单独字段
 | 
						|
    # mgmtype  = models.IntegerField('管理类别', choices=mgmtype_choices, default=1)
 | 
						|
    # usetype  = models.IntegerField('使用类别', choices=usetype_choices, default=1)
 | 
						|
    # way  = models.IntegerField('校准或检定方式', choices=way_choices, default=1)
 | 
						|
    # standard = models.CharField('溯源标准或依据', max_length=200, default='', blank=True)
 | 
						|
    meter_type = models.CharField('仪表类型', max_length=100, null=True, blank=True)
 | 
						|
    management_level = models.CharField('管理等级', max_length=10, default='A')
 | 
						|
    measurement_range = models.CharField('量程范围', max_length=100, default='', blank=True)
 | 
						|
    use_date = models.DateField('启用日期', null=True, blank=True)
 | 
						|
    cycle = models.PositiveSmallIntegerField('校准或检定周期(月)', null=True, blank=True)
 | 
						|
    check_date = models.DateField('最近校准检查日期', blank=True, null=True)
 | 
						|
    next_check_date = models.DateField('预计下次校准检查日期',blank=True, null=True)
 | 
						|
    power_kw = models.PositiveSmallIntegerField('功率', null=True, blank=True)
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        verbose_name = '设备信息'
 | 
						|
        verbose_name_plural = verbose_name
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return self.number + '-' + self.name
 | 
						|
 | 
						|
 | 
						|
class EcheckRecord(CommonADModel):
 | 
						|
    """
 | 
						|
    校准检定记录
 | 
						|
    """
 | 
						|
    CHECK_CHOICES = (
 | 
						|
        (10, '正常'),
 | 
						|
        (20, '异常')
 | 
						|
    )
 | 
						|
    equipment = models.ForeignKey(Equipment, verbose_name='关联设备', on_delete=models.CASCADE)
 | 
						|
    check_organization = models.CharField('校准/检定机构', max_length=10)
 | 
						|
    check_date = models.DateField('校准/检定日期')
 | 
						|
    note = models.TextField('备注', null=True, blank=True)
 | 
						|
    result = models.PositiveSmallIntegerField('结果', default=10, choices=CHECK_CHOICES, help_text=str(CHECK_CHOICES)) |