feat: ftestwork_submit 时根据工段配置生成不合格品

This commit is contained in:
caoqianming 2025-02-18 11:09:49 +08:00
parent b062d7ef6b
commit f5229ab8cb
1 changed files with 29 additions and 27 deletions

View File

@ -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表