diff --git a/apps/qm/services.py b/apps/qm/services.py index 1923d89b..c2f19360 100644 --- a/apps/qm/services.py +++ b/apps/qm/services.py @@ -67,33 +67,35 @@ def ftestwork_submit(ins:FtestWork, user: User): raise ParseError("不合格数不可大于批次数量") # 生成不合格的 - count_notok_json = ins.count_notok_json - for k, v in count_notok_json.items(): - if v > 0: - notok_sign = k.replace('count_n_', '') - astate = WMaterial.WM_NOTOK - if NotOkOption.get_extra_info(notok_sign)['cate'] == 'ok_b': - astate = WMaterial.WM_OK - wm_n, new_create = WMaterial.objects.get_or_create( - material=wm.material, - batch=wm.batch, - mgroup=wm.mgroup, - belong_dept=wm.belong_dept, - notok_sign=notok_sign, - state=astate, - defaults={ - 'count': v, - 'material': wm.material, - 'batch': wm.batch, - 'mgroup': wm.mgroup, - 'belong_dept': wm.belong_dept, - 'notok_sign': notok_sign, - 'state': astate, - } - ) - if not new_create: - wm_n.count = wm_n.count + v - wm_n.save() + process = wm.material.process + if process.store_notok: + count_notok_json = ins.count_notok_json + for k, v in count_notok_json.items(): + if v > 0: + notok_sign = k.replace('count_n_', '') + astate = WMaterial.WM_NOTOK + if NotOkOption.get_extra_info(notok_sign)['cate'] == 'ok_b': + astate = WMaterial.WM_OK + wm_n, new_create = WMaterial.objects.get_or_create( + material=wm.material, + batch=wm.batch, + mgroup=wm.mgroup, + belong_dept=wm.belong_dept, + notok_sign=notok_sign, + state=astate, + defaults={ + 'count': v, + 'material': wm.material, + 'batch': wm.batch, + 'mgroup': wm.mgroup, + 'belong_dept': wm.belong_dept, + 'notok_sign': notok_sign, + 'state': astate, + } + ) + if not new_create: + wm_n.count = wm_n.count + v + wm_n.save() else: wm:WMaterial = ins.wm # 此时调用了qct表