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 # 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.stsflog') class StSfLog(BaseModel): """ 停机-值班记录关联表 """ stlog = models.ForeignKey(StLog, verbose_name='关联停机记录', on_delete=models.CASCADE) sflog = models.ForeignKey(SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE) is_current_down = models.BooleanField('是否本班停机', default=False) reason = models.TextField('停机原因', null=True, blank=True) class Meta: ordering = ['sflog__start_time']