feat: handle_user也作为约束条件
This commit is contained in:
parent
a1c74a0fa6
commit
2725a97213
|
@ -92,7 +92,10 @@ class MlogSerializer(CustomModelSerializer):
|
||||||
mtask = validated_data['mtask']
|
mtask = validated_data['mtask']
|
||||||
batch = validated_data['batch']
|
batch = validated_data['batch']
|
||||||
handle_date = validated_data['handle_date']
|
handle_date = validated_data['handle_date']
|
||||||
if Mlog.objects.filter(mtask=mtask, batch=batch, handle_date=handle_date).exists():
|
handle_user = validated_data['handle_user']
|
||||||
|
if not WMaterial.objects.filter(batch=batch).exists():
|
||||||
|
raise ValidationError('批次号不存在')
|
||||||
|
if Mlog.objects.filter(mtask=mtask, batch=batch, handle_date=handle_date, handle_user=handle_user).exists():
|
||||||
raise ValidationError('存在相同的日志的记录')
|
raise ValidationError('存在相同的日志的记录')
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
|
@ -100,6 +103,7 @@ class MlogSerializer(CustomModelSerializer):
|
||||||
validated_data.pop('mtask', None)
|
validated_data.pop('mtask', None)
|
||||||
validated_data.pop('batch', None)
|
validated_data.pop('batch', None)
|
||||||
validated_data.pop('handle_date', None)
|
validated_data.pop('handle_date', None)
|
||||||
|
validated_data.pop('handle_user', None)
|
||||||
return super().update(instance, validated_data)
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
|
|
|
@ -113,3 +113,30 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
if instance.mtask.state == Mtask.MTASK_DONE:
|
if instance.mtask.state == Mtask.MTASK_DONE:
|
||||||
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)
|
||||||
|
@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(
|
||||||
|
'utask', 'mgroup__process__sort', 'create_time'
|
||||||
|
)
|
||||||
|
data = MtaskSerializer(instance=mtasks, many=True).data
|
||||||
|
res_data = []
|
||||||
|
len_data = len(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)
|
||||||
|
|
Loading…
Reference in New Issue