From 9a26529e0a35a355e9270958aaf5d1c16bcb954d Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 9 Sep 2024 15:03:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84equip=5Flast=5Fmlog5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/datax.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/wpm/datax.py b/apps/wpm/datax.py index 6ee8bad0..e0dab95a 100644 --- a/apps/wpm/datax.py +++ b/apps/wpm/datax.py @@ -1,7 +1,7 @@ from apps.utils.viewsets import GenericViewSet from rest_framework.decorators import action from apps.em.models import Equipment -from apps.wpm.models import Mlog, Mlogb +from apps.wpm.models import Mlog, Handover from apps.mtm.models import Mgroup from django.utils import timezone from django.db.models import Sum @@ -35,7 +35,7 @@ class AnaViewSet(GenericViewSet): equip_qs_v = equip_qs.values('id', 'name', 'number', 'state').order_by('number') equip_qs_l = list(equip_qs_v) # 设备最后生产日志 - mlog_qs = Mlog.objects.filter(equipment__in=equip_qs) + mlog_qs = Mlog.objects.filter(equipment__in=equip_qs, mgroup=mgroup) mlog_qs = mlog_qs | Mlog.objects.filter(work_start_time__lte=now, work_end_time__isnull=True) mlog_qs = mlog_qs | Mlog.objects.filter(work_start_time__lte=now, work_end_time__gte=now) mlog_qs = mlog_qs.annotate(t_count_use=Sum('b_mlog__count_use')) @@ -76,4 +76,19 @@ class AnaViewSet(GenericViewSet): ret['now'] = timezone.localtime(now).strftime('%Y-%m-%d %H:%M:%S') ret["rows"] = equip_qs_l return Response(ret) - + + @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=Serializer) + def put_prod(self, request): + """ + 投产分析 + """ + tomorrow = datetime.now() + timedelta(days=1) + for i in range(8): + timex = tomorrow - timedelta(days=i) + mgroup: Mgroup = Mgroup.objects.get(name='退火') + # 子状态 + mstate_json = mgroup.process.mstate_json + # 生产记录 + handover_qs = Handover.objects.filter(material__process=mgroup.process, send_mgroup=mgroup, type=Handover.H_NORMAL) + pass +