feat: mtask增加mtaskb的返回并在日志填写时校验
This commit is contained in:
parent
6694820dcd
commit
c2649ec963
|
@ -112,6 +112,10 @@ class Mtask(CommonADModel):
|
|||
from apps.wpm.models import Mlog
|
||||
return Mlog.objects.filter(mtask=self)
|
||||
|
||||
@property
|
||||
def mtaskb(self):
|
||||
return Mtaskb.objects.filter(mtask=self)
|
||||
|
||||
|
||||
class Mtaskb(BaseModel):
|
||||
mtask = models.ForeignKey(Mtask, verbose_name='关联任务', on_delete=models.CASCADE, related_name='b_mtask')
|
||||
|
|
|
@ -55,6 +55,18 @@ class MlogSimpleSerializer(CustomModelSerializer):
|
|||
fields = ['id', 'shift_name', 'count_use',
|
||||
'count_ok', 'count_real', 'submit_time']
|
||||
|
||||
class MtaskbSerializer(CustomModelSerializer):
|
||||
handle_user_name = serializers.StringRelatedField(
|
||||
source='handle_user.name', read_only=True)
|
||||
class Meta:
|
||||
model = Mtaskb
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
||||
|
||||
class MtaskbUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Mtaskb
|
||||
fields = ['id', 'count']
|
||||
|
||||
class MtaskSerializer(CustomModelSerializer):
|
||||
material_out_ = MaterialSimpleSerializer(
|
||||
|
@ -67,6 +79,7 @@ class MtaskSerializer(CustomModelSerializer):
|
|||
source='submit_user.name', read_only=True)
|
||||
mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
|
||||
mlogs = MlogSimpleSerializer(label='日志信息', many=True, required=False)
|
||||
mtaskb = MtaskbSerializer(label='子任务信息', many=True, required=False, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Mtask
|
||||
|
@ -110,17 +123,4 @@ class MtaskDaySerializer(serializers.Serializer):
|
|||
class MtaskAddInfoSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Mtask
|
||||
fields = ['peifen_kg']
|
||||
|
||||
class MtaskbSerializer(CustomModelSerializer):
|
||||
handle_user_name = serializers.StringRelatedField(
|
||||
source='handle_user.name', read_only=True)
|
||||
class Meta:
|
||||
model = Mtaskb
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
||||
|
||||
class MtaskbUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Mtaskb
|
||||
fields = ['id', 'count']
|
||||
fields = ['peifen_kg']
|
|
@ -366,6 +366,8 @@ class MlogSerializer(CustomModelSerializer):
|
|||
attrs['route'] = fmlog.route
|
||||
attrs['mgroup'] = fmlog.mgroup
|
||||
attrs['mtask'] = fmlog.mtask
|
||||
if attrs['mtask'].mtaskb and mtaskb is None:
|
||||
raise ValidationError('子任务不能为空')
|
||||
if mtaskb and mtaskb.mtask != fmlog.mtask:
|
||||
raise ValidationError('子任务不一致')
|
||||
mtask = attrs.get('mtask', None)
|
||||
|
|
Loading…
Reference in New Issue