From b3cbdeaa70a60809ea2e74ddeb9298e0fe530fea Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 30 Oct 2023 17:47:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8E=B7=E5=8F=96=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E8=BD=A6=E9=97=B4=E6=8C=87=E5=AE=9A=E6=97=A5=E6=9C=9F=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E8=A1=A8=E5=B7=A5=E5=BA=8F=E7=94=9F=E4=BA=A7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pm/filters.py | 1 + apps/pm/views.py | 23 ++++++----------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/apps/pm/filters.py b/apps/pm/filters.py index 51b02a4f..373d3ab5 100644 --- a/apps/pm/filters.py +++ b/apps/pm/filters.py @@ -44,6 +44,7 @@ class MtaskFilter(filters.FilterSet): model = Mtask fields = { "state": ["exact", "in"], + "is_count_utask": ["exact"], "start_date": ["exact", "gte", "lte"], "end_date": ["exact", "gte", "lte"], "mgroup": ["exact"], diff --git a/apps/pm/views.py b/apps/pm/views.py index 1604e384..c5e11eda 100644 --- a/apps/pm/views.py +++ b/apps/pm/views.py @@ -126,31 +126,20 @@ class MtaskViewSet(CustomModelViewSet): @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer) @transaction.atomic def day(self, request): - """获取指定车间指定日期的最后工序生产任务 + """获取指定车间指定日期的代表工序生产任务 - 获取指定车间指定日期的最后工序生产任务 + 获取指定车间指定日期的代表工序生产任务 """ sr = MtaskDaySerializer(data=request.data) sr.is_valid(raise_exception=True) vdata = sr.validated_data - mtasks = Mtask.objects.filter(mgroup__belong_dept__name=vdata['belong_dept_name'], start_date__lte=vdata['date'], end_date__gte=vdata['date']).order_by( + mtasks = Mtask.objects.filter( + is_count_utask=True, + mgroup__belong_dept__name=vdata['belong_dept_name'], start_date__lte=vdata['date'], end_date__gte=vdata['date']).order_by( 'utask', 'mgroup__process__sort', 'create_time' ) data = MtaskSerializer(instance=mtasks, many=True).data - res_data = [] - len_data = len(data) - if len_data == 1: - return Response(data) - for ind, val in enumerate(data): - if val['utask'] is None: - res_data.append(val) - elif ind > 1: - before = data[ind-1] - if val['utask'] != before['utask']: - res_data.append(before) - elif ind == len_data - 1: - res_data.append(val) - return Response(res_data) + return Response(data) @action(methods=['get'], detail=True, perms_map={'get': '*'}) @transaction.atomic