feat: 增加handle_date及相应的校验
This commit is contained in:
parent
f9b3a69552
commit
c142f00bf3
|
@ -0,0 +1,20 @@
|
|||
# Generated by Django 3.2.12 on 2023-10-20 05:52
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wpm', '0013_mlog_handle_user'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mlog',
|
||||
name='handle_date',
|
||||
field=models.DateField(default=django.utils.timezone.now, verbose_name='操作日期'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
|
@ -88,5 +88,6 @@ class Mlog(CommonADModel):
|
|||
count_real = models.PositiveIntegerField('实际生产数', default=0)
|
||||
count_ok = models.PositiveIntegerField('合格数', default=0)
|
||||
count_notok = models.PositiveIntegerField('不合格数', default=0)
|
||||
handle_date = models.DateField('操作日期')
|
||||
handle_user = models.ForeignKey(
|
||||
User, verbose_name='操作人', on_delete=models.CASCADE)
|
||||
|
|
|
@ -88,12 +88,27 @@ class MlogSerializer(CustomModelSerializer):
|
|||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS
|
||||
|
||||
def create(self, validated_data):
|
||||
mtask = validated_data['mtask']
|
||||
batch = validated_data['batch']
|
||||
handle_date = validated_data['handle_date']
|
||||
if Mlog.objects.filter(mtask=mtask, batch=batch, handle_date=handle_date).exists():
|
||||
raise ValidationError('存在相同的日志的记录')
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
validated_data.pop('mtask', None)
|
||||
validated_data.pop('batch', None)
|
||||
validated_data.pop('handle_date', None)
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
def validate(self, attrs):
|
||||
mtask = attrs['mtask']
|
||||
handle_date = attrs['handle_date']
|
||||
if handle_date >= mtask.start_date and handle_date <= mtask.end_date:
|
||||
pass
|
||||
else:
|
||||
raise ValidationError('操作日期错误')
|
||||
if mtask.state != Mtask.MTASK_ASSGINED:
|
||||
raise ValidationError('该任务状态不可提交日志!')
|
||||
return attrs
|
||||
|
|
|
@ -89,6 +89,7 @@ class WMaterialViewSet(ListModelMixin, CustomGenericViewSet):
|
|||
|
||||
车间库存
|
||||
"""
|
||||
perms_map = {'get': '*'}
|
||||
queryset = WMaterial.objects.all()
|
||||
serializer_class = WMaterialSerializer
|
||||
select_related_fields = ['material', 'belong_dept']
|
||||
|
@ -103,7 +104,6 @@ class MlogViewSet(CustomModelViewSet):
|
|||
|
||||
生产日志
|
||||
"""
|
||||
perms_map = {'get': '*', 'post': 'mlog.create', 'delete': 'mlog.delete'}
|
||||
queryset = Mlog.objects.all()
|
||||
serializer_class = MlogSerializer
|
||||
select_related_fields = ['create_by', 'update_by', 'mtask']
|
||||
|
|
Loading…
Reference in New Issue