diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 0406caeb..2b11c751 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -789,17 +789,19 @@ class MlogbInUpdateSerializer(CustomModelSerializer): if mlogb_defect_objects: MlogbDefect.objects.bulk_create(mlogb_defect_objects) # 只有普通工序的才可联动 + material_out:Material = ins.mlog.material_out route:Route = mlog.route - if route and route.process and route.process.mtype == Process.PRO_NORMAL: - mlogbout_qs = Mlogb.objects.filter(mlog=ins.mlog, mlogb_from=ins) - if mlogbout_qs.count() == 1: - mlogbout = mlogbout_qs.first() - mlogbout.count_real = ins.count_use - ins.count_pn_jgqbl - ins.count_break - mlogbout.count_ok = mlogbout.count_real - mlogbout.count_notok - if mlogbout.count_real < 0 or mlogbout.count_ok < 0: - raise ParseError("对应的产出数异常") - mlogbout.save(update_fields=["count_real", "count_ok"]) - mlogbout.cal_count_notok(cal_mlog=False) + if material_out.tracking == Material.MA_TRACKING_BATCH: + if route and route.process and route.process.mtype == Process.PRO_NORMAL: + mlogbout_qs = Mlogb.objects.filter(mlog=ins.mlog, mlogb_from=ins) + if mlogbout_qs.count() == 1: + mlogbout = mlogbout_qs.first() + mlogbout.count_real = ins.count_use - ins.count_pn_jgqbl - ins.count_break + mlogbout.count_ok = mlogbout.count_real - mlogbout.count_notok + if mlogbout.count_real < 0 or mlogbout.count_ok < 0: + raise ParseError("对应的产出数异常") + mlogbout.save(update_fields=["count_real", "count_ok"]) + mlogbout.cal_count_notok(cal_mlog=False) ins.cal_count_notok(cal_mlog=False)