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