fix: mtask级联下达任务

This commit is contained in:
caoqianming 2023-09-27 09:43:10 +08:00
parent 0f6a7289b8
commit 7de606b496
2 changed files with 22 additions and 11 deletions

View File

@ -56,5 +56,6 @@ class MtaskViewSet(CustomModelViewSet):
ids = request.data.get('ids', []) ids = request.data.get('ids', [])
mtasks = Mtask.objects.filter( mtasks = Mtask.objects.filter(
id__in=ids, parent=None, state=Mtask.MTASK_CREATED) id__in=ids, parent=None, state=Mtask.MTASK_CREATED)
mtasks = mtasks | Mtask.objects.filter(parent__in=mtasks)
mtasks.update(state=Mtask.MTASK_ASSGINED) mtasks.update(state=Mtask.MTASK_ASSGINED)
return Response() return Response()

View File

@ -1,15 +1,17 @@
from django.db import models from django.db import models
from apps.system.models import BaseModel from apps.utils.models import CommonADModel
from apps.utils.models import CommonADModel, CommonBDModel
from apps.mtm.models import Mgroup, Team, Shift from apps.mtm.models import Mgroup, Team, Shift
from django.utils.timezone import localtime from django.utils.timezone import localtime
# Create your models here. # Create your models here.
class StLog(CommonADModel): class StLog(CommonADModel):
""" """
停机记录 停机记录
""" """
mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE) mgroup = models.ForeignKey(
Mgroup, verbose_name='关联工段', on_delete=models.CASCADE)
start_time = models.DateTimeField('停机开始') start_time = models.DateTimeField('停机开始')
end_time = models.DateTimeField('停机结束', null=True, blank=True) end_time = models.DateTimeField('停机结束', null=True, blank=True)
duration = models.FloatField('停机时长(h)', null=True, blank=True) duration = models.FloatField('停机时长(h)', null=True, blank=True)
@ -18,14 +20,19 @@ class StLog(CommonADModel):
class SfLog(CommonADModel): class SfLog(CommonADModel):
"""值班记录 """值班记录
""" """
mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE) mgroup = models.ForeignKey(
team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.CASCADE, null=True, blank=True) Mgroup, verbose_name='关联工段', on_delete=models.CASCADE)
shift = models.ForeignKey(Shift, verbose_name='当班班次', on_delete=models.CASCADE) team = models.ForeignKey(Team, verbose_name='班组',
leader = models.ForeignKey('system.user', verbose_name='班长', on_delete=models.CASCADE, null=True, blank=True) 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('值班开始') start_time = models.DateTimeField('值班开始')
end_time = models.DateTimeField('值班结束') end_time = models.DateTimeField('值班结束')
note = models.TextField('其他备注', null=True, blank=True) note = models.TextField('其他备注', null=True, blank=True)
stlogs = models.ManyToManyField('wpm.stlog', verbose_name='关联停机记录', through='wpm.sflogexp') stlogs = models.ManyToManyField(
'wpm.stlog', verbose_name='关联停机记录', through='wpm.sflogexp')
last_test_time = models.DateTimeField('最后质检时间', null=True, blank=True) last_test_time = models.DateTimeField('最后质检时间', null=True, blank=True)
total_hour_now = models.FloatField('总时长动', default=0) total_hour_now = models.FloatField('总时长动', default=0)
shut_hour = models.FloatField('停机时长', default=0) shut_hour = models.FloatField('停机时长', default=0)
@ -39,12 +46,15 @@ class SfLog(CommonADModel):
end_time_local = localtime(self.end_time) end_time_local = localtime(self.end_time)
return end_time_local.year, end_time_local.month, end_time_local.day return end_time_local.year, end_time_local.month, end_time_local.day
class SfLogExp(CommonADModel): class SfLogExp(CommonADModel):
""" """
生产异常情况记录 生产异常情况记录
""" """
sflog = models.ForeignKey(SfLog, on_delete=models.CASCADE, verbose_name='关联值班记录') sflog = models.ForeignKey(
stlog = models.ForeignKey(StLog, verbose_name='关联停机记录', on_delete=models.CASCADE, null=True, blank=True) 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) title = models.CharField('异常名称', max_length=20)
happen_time = models.DateTimeField('发生时间', null=True, blank=True) happen_time = models.DateTimeField('发生时间', null=True, blank=True)
cate = models.CharField('原因类别', max_length=10, null=True, blank=True) cate = models.CharField('原因类别', max_length=10, null=True, blank=True)
@ -52,4 +62,4 @@ class SfLogExp(CommonADModel):
measure = models.TextField('处置措施', default='', max_length=100) measure = models.TextField('处置措施', default='', max_length=100)
handler = models.CharField('处理人', default='', max_length=100) handler = models.CharField('处理人', default='', max_length=100)
is_current_down = models.BooleanField('是否本班停机', default=False) is_current_down = models.BooleanField('是否本班停机', default=False)
duration = models.FloatField('停机时长(h)', null=True, blank=True) duration = models.FloatField('停机时长(h)', null=True, blank=True)