feat: 获取指定车间指定日期的代表工序生产任务

This commit is contained in:
caoqianming 2023-10-30 17:47:48 +08:00
parent b8bc753418
commit b3cbdeaa70
2 changed files with 7 additions and 17 deletions

View File

@ -44,6 +44,7 @@ class MtaskFilter(filters.FilterSet):
model = Mtask model = Mtask
fields = { fields = {
"state": ["exact", "in"], "state": ["exact", "in"],
"is_count_utask": ["exact"],
"start_date": ["exact", "gte", "lte"], "start_date": ["exact", "gte", "lte"],
"end_date": ["exact", "gte", "lte"], "end_date": ["exact", "gte", "lte"],
"mgroup": ["exact"], "mgroup": ["exact"],

View File

@ -126,31 +126,20 @@ class MtaskViewSet(CustomModelViewSet):
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer) @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer)
@transaction.atomic @transaction.atomic
def day(self, request): def day(self, request):
"""获取指定车间指定日期的最后工序生产任务 """获取指定车间指定日期的代表工序生产任务
获取指定车间指定日期的最后工序生产任务 获取指定车间指定日期的代表工序生产任务
""" """
sr = MtaskDaySerializer(data=request.data) sr = MtaskDaySerializer(data=request.data)
sr.is_valid(raise_exception=True) sr.is_valid(raise_exception=True)
vdata = sr.validated_data 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' 'utask', 'mgroup__process__sort', 'create_time'
) )
data = MtaskSerializer(instance=mtasks, many=True).data data = MtaskSerializer(instance=mtasks, many=True).data
res_data = [] return Response(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)
@action(methods=['get'], detail=True, perms_map={'get': '*'}) @action(methods=['get'], detail=True, perms_map={'get': '*'})
@transaction.atomic @transaction.atomic