feat: 获取指定车间指定日期的代表工序生产任务
This commit is contained in:
parent
b8bc753418
commit
b3cbdeaa70
|
@ -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"],
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue