55 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
| from django.db import models
 | |
| from apps.system.models import BaseModel
 | |
| from apps.utils.models import CommonADModel, CommonBDModel
 | |
| from apps.mtm.models import Mgroup, Team, Shift
 | |
| from django.utils.timezone import localtime
 | |
| 
 | |
| # Create your models here.
 | |
| class StLog(CommonADModel):
 | |
|     """
 | |
|     停机记录
 | |
|     """
 | |
|     mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE)
 | |
|     start_time = models.DateTimeField('停机开始')
 | |
|     end_time = models.DateTimeField('停机结束', null=True, blank=True)
 | |
|     duration = models.FloatField('停机时长(h)', null=True, blank=True)
 | |
| 
 | |
| 
 | |
| class SfLog(CommonADModel):
 | |
|     """值班记录
 | |
|     """
 | |
|     mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE) 
 | |
|     team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.CASCADE, null=True, blank=True)
 | |
|     shift = models.ForeignKey(Shift, verbose_name='当班班次', on_delete=models.CASCADE)
 | |
|     leader = models.ForeignKey('system.user', verbose_name='班长', on_delete=models.CASCADE, null=True, blank=True)
 | |
|     start_time = models.DateTimeField('值班开始')
 | |
|     end_time = models.DateTimeField('值班结束')
 | |
|     note = models.TextField('其他备注', null=True, blank=True)
 | |
|     stlogs = models.ManyToManyField('wpm.stlog', verbose_name='关联停机记录', through='wpm.sflogexp')
 | |
|     last_test_time = models.DateTimeField('最后质检时间', null=True, blank=True)
 | |
|     total_hour_now = models.FloatField('总时长动', default=0)
 | |
|     shut_hour = models.FloatField('停机时长', default=0)
 | |
|     pcoal_heat = models.FloatField('煤粉热值', null=True, blank=True)
 | |
| 
 | |
|     @property
 | |
|     def get_ymd(self):
 | |
|         """
 | |
|         返回值班记录所属年月日
 | |
|         """
 | |
|         end_time_local = localtime(self.end_time)
 | |
|         return end_time_local.year, end_time_local.month, end_time_local.day
 | |
| 
 | |
| class SfLogExp(CommonADModel):
 | |
|     """
 | |
|     生产异常情况记录
 | |
|     """
 | |
|     sflog = models.ForeignKey(SfLog, on_delete=models.CASCADE, verbose_name='关联值班记录')
 | |
|     stlog = models.ForeignKey(StLog, verbose_name='关联停机记录', on_delete=models.CASCADE, null=True, blank=True)
 | |
|     title = models.CharField('异常名称', max_length=20)
 | |
|     happen_time = models.DateTimeField('发生时间', null=True, blank=True)
 | |
|     cate = models.CharField('原因类别', max_length=10, null=True, blank=True)
 | |
|     reason = models.TextField('事件原因', default='', max_length=100)
 | |
|     measure = models.TextField('处置措施', default='', max_length=100)
 | |
|     handler = models.CharField('处理人', default='', max_length=100)
 | |
|     is_current_down = models.BooleanField('是否本班停机', default=False)
 | |
|     duration = models.FloatField('停机时长(h)', null=True, blank=True) |