feat: mlogbin联动mlogbout

This commit is contained in:
caoqianming 2025-06-13 16:22:50 +08:00
parent 4bd6eab9f4
commit ab0c962053
1 changed files with 13 additions and 7 deletions

View File

@ -788,14 +788,20 @@ class MlogbInUpdateSerializer(CustomModelSerializer):
]
if mlogb_defect_objects:
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
ins.cal_count_notok(cal_mlog=False)
# 只有普通工序的才可联动
# 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
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)
ins.cal_count_notok(cal_mlog=False)
return ins