feat: mtask增加submit_time
This commit is contained in:
parent
3e041ec93b
commit
cc0a2719de
|
@ -0,0 +1,26 @@
|
|||
# Generated by Django 3.2.12 on 2023-11-30 08:28
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('pm', '0015_utask_count_day'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mtask',
|
||||
name='submit_time',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='提交时间'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mtask',
|
||||
name='submit_user',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mtask_submit_user', to=settings.AUTH_USER_MODEL, verbose_name='提交人'),
|
||||
),
|
||||
]
|
|
@ -75,6 +75,10 @@ class Mtask(CommonADModel):
|
|||
Utask, verbose_name='关联大任务', on_delete=models.CASCADE, related_name='mtask_utask', null=True, blank=True)
|
||||
peifen_kg = models.FloatField('配粉料数', default=0)
|
||||
|
||||
submit_time = models.DateTimeField('提交时间', null=True, blank=True)
|
||||
submit_user = models.ForeignKey(
|
||||
'system.user', verbose_name='提交人', on_delete=models.CASCADE, null=True, blank=True, related_name='mtask_submit_user')
|
||||
|
||||
@property
|
||||
def related(self):
|
||||
"""
|
||||
|
|
|
@ -251,14 +251,14 @@ class PmService:
|
|||
change_order_state_when_schedue(orderitemIds)
|
||||
|
||||
@classmethod
|
||||
def mtasks_submit(cls, mtasks: QuerySet[Mtask], user: User):
|
||||
def mtask_submit(cls, mtask: Mtask, user: User):
|
||||
"""
|
||||
锁定生产任务
|
||||
"""
|
||||
from apps.wpm.models import Mlog
|
||||
from apps.wpm.services import mlog_submit, update_mtask
|
||||
now = timezone.now()
|
||||
for mtask in mtasks:
|
||||
if mtask.state == Mtask.MTASK_ASSGINED:
|
||||
mlogs = Mlog.objects.filter(mtask=mtask)
|
||||
if mlogs.count() == 0:
|
||||
raise ParseError(f'{mtask.mgroup.name}_未填写日志')
|
||||
|
@ -266,4 +266,8 @@ class PmService:
|
|||
mlog_submit(mlog, user, now)
|
||||
update_mtask(mtask)
|
||||
mtask.state = Mtask.MTASK_DONE
|
||||
mtask.submit_time = now
|
||||
mtask.submit_user = user
|
||||
mtask.save()
|
||||
else:
|
||||
raise ParseError('该任务状态不可提交')
|
||||
|
|
|
@ -167,10 +167,7 @@ class MtaskViewSet(CustomModelViewSet):
|
|||
"""
|
||||
mtask: Mtask = self.get_object()
|
||||
user = request.user
|
||||
if mtask.state == Mtask.MTASK_ASSGINED:
|
||||
PmService.mtasks_submit(Mtask.objects.filter(id=mtask.id), user)
|
||||
else:
|
||||
raise ParseError('该任务状态不可提交')
|
||||
PmService.mtask_submit(mtask, user)
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'mtask.submit'}, serializer_class=Serializer)
|
||||
|
@ -182,5 +179,6 @@ class MtaskViewSet(CustomModelViewSet):
|
|||
"""
|
||||
mtask = self.get_object()
|
||||
mtasks = mtask.related
|
||||
PmService.mtasks_submit(mtasks)
|
||||
for mtask in mtasks:
|
||||
PmService.mtask_submit(mtask, self.request.user)
|
||||
return Response()
|
||||
|
|
|
@ -187,7 +187,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
|
||||
def update_mtask(mtask: Mtask):
|
||||
from apps.pm.models import Utask
|
||||
res = Mlog.objects.filter(mtask=mtask).aggregate(sum_count_real=Sum(
|
||||
res = Mlog.objects.filter(mtask=mtask).exclude(submit_time=None).aggregate(sum_count_real=Sum(
|
||||
'count_real'), sum_count_ok=Sum('count_ok'), sum_count_notok=Sum('count_notok'))
|
||||
mtask.count_real = res['sum_count_real'] if res['sum_count_real'] else 0
|
||||
mtask.count_ok = res['sum_count_ok'] if res['sum_count_ok'] else 0
|
||||
|
@ -203,7 +203,7 @@ def update_mtask(mtask: Mtask):
|
|||
if utask.count_ok > 0 and utask.state == Utask.UTASK_ASSGINED:
|
||||
utask.state = Utask.UTASK_WORKING
|
||||
if Mtask.objects.filter(utask=utask).exclude(state=Mtask.MTASK_DONE).count() == 0:
|
||||
utask.state = Mtask.MTASK_DONE
|
||||
utask.state = Utask.UTASK_DONE
|
||||
utask.save()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue