fix: mlog submit中提交wprbug
This commit is contained in:
parent
aca5cd8a63
commit
88535650a7
|
@ -238,8 +238,8 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
# 获取所有主要的不合格项
|
||||
bw_qs = Mlogbw.objects.filter(mlogb=item)
|
||||
defect_qs = FtestDefect.objects.filter(ftest__is_ok=False,
|
||||
ftest__mlogbw_ftest__mlogb=item, is_main=True).values_list(
|
||||
"defect", flat=True).distinct()
|
||||
ftest__mlogbw_ftest__mlogb=item, is_main=True).values(
|
||||
"defect").distinct()
|
||||
for defect in defect_qs:
|
||||
xcount = bw_qs.filter(ftest__defects_ftest__defect=defect).count()
|
||||
if xcount > 0:
|
||||
|
@ -259,6 +259,8 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
|
||||
for mo in m_outs_list:
|
||||
mo_ma, mo_batch, mo_count, mo_count_eweight, notok_sign_or_defect, mlog_or_b = mo
|
||||
if mo_count <= 0:
|
||||
continue
|
||||
wm_state = WMaterial.WM_OK if notok_sign_or_defect is None else WMaterial.WM_NOTOK
|
||||
lookup = {'batch': mo_batch, 'material': mo_ma, 'mgroup': None,
|
||||
'notok_sign': None, 'defect': None, 'state': wm_state}
|
||||
|
@ -271,33 +273,33 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
stored_mgroup = True
|
||||
else:
|
||||
lookup['belong_dept'] = belong_dept
|
||||
if mo_count > 0:
|
||||
wm, is_create2 = WMaterial.objects.get_or_create(**lookup, defaults={**lookup, "belong_dept": belong_dept})
|
||||
wm.count = wm.count + mo_count
|
||||
wm.count_eweight = mo_count_eweight
|
||||
wm.update_by = user
|
||||
if supplier is not None:
|
||||
wm.supplier = supplier
|
||||
if is_create2:
|
||||
wm.create_by = user
|
||||
if isinstance(mlog_or_b, Mlog) and mlog_or_b.wm_in:
|
||||
wm.batch_ofrom = mlog_or_b.wm_in.batch_ofrom
|
||||
wm.material_ofrom = mlog_or_b.wm_in.material_ofrom
|
||||
elif isinstance(mlog_or_b, Mlogb):
|
||||
wm.batch_ofrom = mlog_or_b.batch_ofrom
|
||||
wm.material_ofrom = mlog_or_b.material_ofrom
|
||||
wm.save()
|
||||
if material_out.tracking == Material.MA_TRACKING_SINGLE:
|
||||
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
|
||||
if mlogbws.count() != mo_count:
|
||||
raise ParseError("日志与明细数量不一致,操作失败")
|
||||
for item in mlogbws:
|
||||
if item.wpr:
|
||||
Wpr.change_or_new(wpr=item.wpr, wm=wm, ftest=item.ftest)
|
||||
else:
|
||||
wpr = Wpr.change_or_new(number=item.number, wm=wm, ftest=item.ftest)
|
||||
item.wpr = wpr
|
||||
item.save()
|
||||
|
||||
wm, is_create2 = WMaterial.objects.get_or_create(**lookup, defaults={**lookup, "belong_dept": belong_dept})
|
||||
wm.count = wm.count + mo_count
|
||||
wm.count_eweight = mo_count_eweight
|
||||
wm.update_by = user
|
||||
if supplier is not None:
|
||||
wm.supplier = supplier
|
||||
if is_create2:
|
||||
wm.create_by = user
|
||||
if isinstance(mlog_or_b, Mlog) and mlog_or_b.wm_in:
|
||||
wm.batch_ofrom = mlog_or_b.wm_in.batch_ofrom
|
||||
wm.material_ofrom = mlog_or_b.wm_in.material_ofrom
|
||||
elif isinstance(mlog_or_b, Mlogb):
|
||||
wm.batch_ofrom = mlog_or_b.batch_ofrom
|
||||
wm.material_ofrom = mlog_or_b.material_ofrom
|
||||
wm.save()
|
||||
if material_out.tracking == Material.MA_TRACKING_SINGLE:
|
||||
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
|
||||
if mlogbws.count() != mo_count:
|
||||
raise ParseError("日志与明细数量不一致,操作失败")
|
||||
for item in mlogbws:
|
||||
if item.wpr:
|
||||
Wpr.change_or_new(wpr=item.wpr, wm=wm, ftest=item.ftest)
|
||||
else:
|
||||
wpr = Wpr.change_or_new(number=item.number, wm=wm, ftest=item.ftest)
|
||||
item.wpr = wpr
|
||||
item.save()
|
||||
|
||||
mlog.submit_time = now
|
||||
mlog.submit_user = user
|
||||
|
|
Loading…
Reference in New Issue