From 84f7de61bc5bcd31d3b15821ba0802e23b6a17b5 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sat, 23 Nov 2024 23:06:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mlog=20update=20=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=B6=88=E8=80=97=E6=97=B6=E7=9A=84=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/serializers.py | 69 ++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 94751bfe..13330767 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -283,19 +283,20 @@ class MlogSerializer(CustomModelSerializer): instance: Mlog = super().create(validated_data) # 自动生成mlogb batch_in = instance.batch - wm_in = instance.wm_in - if wm_in: - batch_in = wm_in.batch - add_dict = { - 'mlog': instance, 'batch': batch_in, 'wm_in': wm_in, - 'mtask': instance.mtask, 'material_in': instance.material_in, - 'count_use': instance.count_use, 'count_break': instance.count_break, - 'count_pn_jgqbl': instance.count_pn_jgqbl - } - if wm_in: - add_dict['batch_ofrom'] = wm_in.batch_ofrom - add_dict['material_ofrom'] = wm_in.material_ofrom - Mlogb.objects.create(**add_dict) + if instance.material_in: # 如果有消耗 + wm_in = instance.wm_in + if wm_in: + batch_in = wm_in.batch + add_dict = { + 'mlog': instance, 'batch': batch_in, 'wm_in': wm_in, + 'mtask': instance.mtask, 'material_in': instance.material_in, + 'count_use': instance.count_use, 'count_break': instance.count_break, + 'count_pn_jgqbl': instance.count_pn_jgqbl + } + if wm_in: + add_dict['batch_ofrom'] = wm_in.batch_ofrom + add_dict['material_ofrom'] = wm_in.material_ofrom + Mlogb.objects.create(**add_dict) # mlogb只用于组合件输出物填写 brotherId_should_list = material_out.brothers @@ -308,6 +309,7 @@ class MlogSerializer(CustomModelSerializer): batch=instance.batch, mtask=instance.mtask, material_out=item['material_out'], + count_real=item['count_ok'], count_ok=item['count_ok']) if wm_in: mlogbx.batch_ofrom = wm_in.batch_ofrom @@ -326,6 +328,7 @@ class MlogSerializer(CustomModelSerializer): add_dict_2 = { 'mlog': instance, 'batch': batch_out, 'mtask': instance.mtask, 'material_out': instance.material_out, + 'count_real': instance.count_real, 'count_ok': instance.count_ok, 'count_notok': instance.count_notok, 'count_break_t': instance.count_break_t } @@ -354,31 +357,33 @@ class MlogSerializer(CustomModelSerializer): # 修改消耗 if instance.fill_way in [Mlog.MLOG_12, Mlog.MLOG_2]: # 自动生成mlogb - batch_in = instance.batch - if wm_in: - batch_in = wm_in.batch - minx, _ = Mlogb.objects.get_or_create( - mlog=instance, - batch=batch_in, - wm_in=instance.wm_in, - mtask=instance.mtask, - material_in=instance.material_in - ) - if wm_in: - minx.batch_ofrom = wm_in.batch_ofrom - minx.material_ofrom = wm_in.material_ofrom - minx.count_use = instance.count_use - 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 instance.material_in: # 有消耗的情况 + batch_in = instance.batch + if wm_in: + batch_in = wm_in.batch + minx, _ = Mlogb.objects.get_or_create( + mlog=instance, + batch=batch_in, + wm_in=instance.wm_in, + mtask=instance.mtask, + material_in=instance.material_in + ) + if wm_in: + minx.batch_ofrom = wm_in.batch_ofrom + minx.material_ofrom = wm_in.material_ofrom + minx.count_use = instance.count_use + 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 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_real=0, count_ok=0) for item in mlogb: Mlogb.objects.filter(mlog=instance, material_out=item['material_out']).update( + count_real=item['count_ok'], count_ok=item['count_ok']) elif instance.fill_way in [Mlog.MLOG_12, Mlog.MLOG_2]: