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