fix: mlog 填写方式及handoverb的问题
This commit is contained in:
parent
5d6ce9f6c0
commit
580109aa9f
|
@ -351,7 +351,8 @@ class MlogSerializer(CustomModelSerializer):
|
|||
mlogb = validated_data.pop('mlogb', [])
|
||||
instance: Mlog = super().update(instance, validated_data)
|
||||
wm_in = instance.wm_in
|
||||
if instance.fill_way == Mlog.MLOG_12:
|
||||
# 修改消耗
|
||||
if instance.fill_way in [Mlog.MLOG_12, Mlog.MLOG_2]:
|
||||
# 自动生成mlogb
|
||||
batch_in = instance.batch
|
||||
if wm_in:
|
||||
|
@ -370,20 +371,23 @@ class MlogSerializer(CustomModelSerializer):
|
|||
minx.count_break = instance.count_break
|
||||
minx.count_pn_jgqbl = instance.count_pn_jgqbl
|
||||
minx.save()
|
||||
Mlogb.objects.filter(mlog=instance, material_in__isnull=False).exclude(id=minx.id).delete()
|
||||
|
||||
if mlogb and instance.fill_way == Mlog.MLOG_2:
|
||||
# 修改产出
|
||||
if instance.fill_way == Mlog.MLOG_2 and instance.material_out.brothers:
|
||||
# 针对兄弟件的情况
|
||||
Mlogb.objects.filter(mlog=instance, material_out__isnull=False).update(count_ok=0)
|
||||
for item in mlogb:
|
||||
Mlogb.objects.filter(mlog=instance, material_out=item['material_out']).update(
|
||||
count_ok=item['count_ok'])
|
||||
elif instance.fill_way == Mlog.MLOG_12:
|
||||
|
||||
elif instance.fill_way in [Mlog.MLOG_12, Mlog.MLOG_2]:
|
||||
# 生成产出物
|
||||
batch_out = instance.batch
|
||||
if batch_out:
|
||||
pass
|
||||
else:
|
||||
batch_out = generate_new_batch(batch_in, instance)
|
||||
|
||||
mox, _ = Mlogb.objects.get_or_create(mlog=instance, batch=batch_out,
|
||||
mtask=instance.mtask, material_out=instance.material_out)
|
||||
mox.count_ok = instance.count_ok
|
||||
|
@ -400,7 +404,7 @@ class MlogSerializer(CustomModelSerializer):
|
|||
return instance
|
||||
|
||||
def validate(self, attrs):
|
||||
attrs['fill_way'] = Mlog.MLOG_2
|
||||
attrs['fill_way'] = Mlog.MLOG_2 # 只填第二级
|
||||
attrs['mtype'] = Mlog.MTYPE_SELF # 默认为自生产
|
||||
fmlog = attrs.get('fmlog', None)
|
||||
mtaskb = attrs.get('mtaskb', None)
|
||||
|
@ -634,7 +638,7 @@ class HandoverSerializer(CustomModelSerializer):
|
|||
material_name = serializers.StringRelatedField(
|
||||
source='material', read_only=True)
|
||||
wm_notok_sign = serializers.CharField(source='wm.notok_sign', read_only=True)
|
||||
handoverb = HandoverbSerializer(many=True)
|
||||
handoverb = HandoverbSerializer(many=True, required=False)
|
||||
|
||||
def validate(self, attrs):
|
||||
if 'type' not in attrs:
|
||||
|
|
Loading…
Reference in New Issue