feat: 获取相关任务的第一道工序日志
This commit is contained in:
parent
ebd9c96300
commit
53b38d7cc4
|
@ -78,6 +78,10 @@ class WMaterialSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class MlogSerializer(CustomModelSerializer):
|
class MlogSerializer(CustomModelSerializer):
|
||||||
|
mgroup_name = serializers.CharField(
|
||||||
|
source='mtask.mgroup.name', read_only=True)
|
||||||
|
mtask_count = serializers.IntegerField(
|
||||||
|
source='mtask.count', read_only=True)
|
||||||
create_by_name = serializers.CharField(
|
create_by_name = serializers.CharField(
|
||||||
source='create_by.name', read_only=True)
|
source='create_by.name', read_only=True)
|
||||||
update_by_name = serializers.CharField(
|
update_by_name = serializers.CharField(
|
||||||
|
@ -116,3 +120,8 @@ class MlogSerializer(CustomModelSerializer):
|
||||||
if mtask.state != Mtask.MTASK_ASSGINED:
|
if mtask.state != Mtask.MTASK_ASSGINED:
|
||||||
raise ValidationError(f'{mtask.mgroup.name}_不可提交日志!')
|
raise ValidationError(f'{mtask.mgroup.name}_不可提交日志!')
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
|
class MlogRelatedSerializer(serializers.Serializer):
|
||||||
|
mtask = serializers.PrimaryKeyRelatedField(
|
||||||
|
label='小任务ID', queryset=Mtask.objects.all())
|
||||||
|
|
|
@ -12,7 +12,7 @@ from apps.utils.mixins import BulkCreateModelMixin
|
||||||
|
|
||||||
from .filters import SfLogExpFilter, SfLogFilter
|
from .filters import SfLogExpFilter, SfLogFilter
|
||||||
from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog
|
from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog
|
||||||
from .serializers import SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogSerializer
|
from .serializers import SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogSerializer, MlogRelatedSerializer
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
@ -114,29 +114,28 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
raise ParseError('任务已提交日志不可变动')
|
raise ParseError('任务已提交日志不可变动')
|
||||||
return super().perform_destroy(instance)
|
return super().perform_destroy(instance)
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer)
|
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MlogRelatedSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def day(self, request):
|
def related_first(self, request):
|
||||||
"""获取指定车间指定日期的第一道工序日志
|
"""获取相关任务的第一道工序日志
|
||||||
|
|
||||||
获取指定车间指定日期的第一道工序日志
|
获取相关任务的第一道工序日志
|
||||||
"""
|
"""
|
||||||
sr = MtaskDaySerializer(data=request.data)
|
sr = MlogRelatedSerializer(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(
|
mtask = vdata['mtask']
|
||||||
'utask', 'mgroup__process__sort', 'create_time'
|
if mtask.utask:
|
||||||
)
|
mtasks = mtask.related
|
||||||
data = MtaskSerializer(instance=mtasks, many=True).data
|
mlogs = Mlog.objects.filter(mtask__in=mtasks).order_by(
|
||||||
|
'mtask__mgroup__process__sort', 'batch', 'create_time')
|
||||||
|
data = MlogSerializer(instance=mlogs, many=True).data
|
||||||
res_data = []
|
res_data = []
|
||||||
len_data = len(data)
|
|
||||||
for ind, val in enumerate(data):
|
for ind, val in enumerate(data):
|
||||||
if val['utask'] is None:
|
if ind == 0:
|
||||||
res_data.append(val)
|
res_data.append(val)
|
||||||
elif ind > 1:
|
else:
|
||||||
before = data[ind-1]
|
before = data[ind-1]
|
||||||
if val['utask'] != before['utask']:
|
if val['batch'] != before['batch']:
|
||||||
res_data.append(before)
|
|
||||||
elif ind == len_data - 1:
|
|
||||||
res_data.append(val)
|
res_data.append(val)
|
||||||
return Response(res_data)
|
return Response(res_data)
|
||||||
|
|
Loading…
Reference in New Issue