55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
| from django.db import models
 | |
| from apps.utils.models import BaseModel, CommonBModel
 | |
| from apps.wpm.models import SfLog
 | |
| from apps.mtm.models import Material
 | |
| 
 | |
| 
 | |
| class Mpoint(CommonBModel):
 | |
|     """测点
 | |
|     """
 | |
|     name = models.CharField('测点名称', max_length=50)
 | |
|     code = models.CharField('测点编号', max_length=50, unique=True)
 | |
|     unit = models.CharField('单位', max_length=50)
 | |
|     cate = models.CharField('分类', max_length=50, default='material')
 | |
|     material = models.ForeignKey(Material, verbose_name='计量某种物料', on_delete=models.CASCADE, null=True, blank=True)
 | |
|     ep_monitored = models.ForeignKey('em.equipment', verbose_name='监测哪个设备', related_name='mp_ep_monitored', on_delete=models.SET_NULL, null=True, blank=True)
 | |
|     ep_belong = models.ForeignKey('em.equipment', verbose_name='属于哪个设备', related_name='mp_ep_belong', on_delete=models.SET_NULL, null=True, blank=True)
 | |
|     mgroup = models.ForeignKey('mtm.mgroup', verbose_name='所在集合', on_delete=models.SET_NULL, null=True, blank=True)
 | |
| 
 | |
| 
 | |
| class MpLog(BaseModel):
 | |
|     """测点原始记录
 | |
|     """
 | |
|     mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.SET_NULL, null=True, blank=True)
 | |
|     tag_id = models.BigIntegerField('记录ID', db_index=True)
 | |
|     tag_code = models.CharField('测点编号', max_length=50)
 | |
|     tag_update = models.DateTimeField('更新时间')
 | |
|     tag_val = models.FloatField('当前值')
 | |
|     
 | |
| 
 | |
| class MpointStat(BaseModel):
 | |
|     """测点统计表
 | |
|     """
 | |
|     type = models.CharField('统计维度', max_length=50, default='hour', help_text='year/month/day/year_s/month_s/day_s/sflog/hour')
 | |
|     year = models.PositiveSmallIntegerField('年', null=True, blank=True)
 | |
|     month = models.PositiveSmallIntegerField('月', null=True, blank=True)
 | |
|     day = models.PositiveSmallIntegerField('日', null=True, blank=True)
 | |
| 
 | |
|     year_s = models.PositiveSmallIntegerField('班年', null=True, blank=True)
 | |
|     month_s = models.PositiveSmallIntegerField('班月', null=True, blank=True)
 | |
|     day_s = models.PositiveSmallIntegerField('班日', null=True, blank=True)
 | |
| 
 | |
|     hour = models.PositiveSmallIntegerField('时', null=True, blank=True)
 | |
|     sflog = models.ForeignKey(SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE, null=True, blank=True)
 | |
|     mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.CASCADE)
 | |
|     val = models.FloatField('统计值', default=0)
 | |
| 
 | |
| 
 | |
| # class EnStat(BaseModel):
 | |
| #     """
 | |
| #     能源数据统计表
 | |
| #     """
 | |
| #     type = models.CharField('统计种类', max_length=50, default='elec', help_text='year_s/month_s/day_s/sflog')
 | |
| #     sflog = models.ForeignKey(SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE, null=True, blank=True)
 | |
| #     mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.CASCADE)
 |