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)
|
bw_qs = Mlogbw.objects.filter(mlogb=item)
|
||||||
defect_qs = FtestDefect.objects.filter(ftest__is_ok=False,
|
defect_qs = FtestDefect.objects.filter(ftest__is_ok=False,
|
||||||
ftest__mlogbw_ftest__mlogb=item, is_main=True).values_list(
|
ftest__mlogbw_ftest__mlogb=item, is_main=True).values(
|
||||||
"defect", flat=True).distinct()
|
"defect").distinct()
|
||||||
for defect in defect_qs:
|
for defect in defect_qs:
|
||||||
xcount = bw_qs.filter(ftest__defects_ftest__defect=defect).count()
|
xcount = bw_qs.filter(ftest__defects_ftest__defect=defect).count()
|
||||||
if xcount > 0:
|
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:
|
for mo in m_outs_list:
|
||||||
mo_ma, mo_batch, mo_count, mo_count_eweight, notok_sign_or_defect, mlog_or_b = mo
|
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
|
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,
|
lookup = {'batch': mo_batch, 'material': mo_ma, 'mgroup': None,
|
||||||
'notok_sign': None, 'defect': None, 'state': wm_state}
|
'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
|
stored_mgroup = True
|
||||||
else:
|
else:
|
||||||
lookup['belong_dept'] = belong_dept
|
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, is_create2 = WMaterial.objects.get_or_create(**lookup, defaults={**lookup, "belong_dept": belong_dept})
|
||||||
wm.count = wm.count + mo_count
|
wm.count = wm.count + mo_count
|
||||||
wm.count_eweight = mo_count_eweight
|
wm.count_eweight = mo_count_eweight
|
||||||
wm.update_by = user
|
wm.update_by = user
|
||||||
if supplier is not None:
|
if supplier is not None:
|
||||||
wm.supplier = supplier
|
wm.supplier = supplier
|
||||||
if is_create2:
|
if is_create2:
|
||||||
wm.create_by = user
|
wm.create_by = user
|
||||||
if isinstance(mlog_or_b, Mlog) and mlog_or_b.wm_in:
|
if isinstance(mlog_or_b, Mlog) and mlog_or_b.wm_in:
|
||||||
wm.batch_ofrom = mlog_or_b.wm_in.batch_ofrom
|
wm.batch_ofrom = mlog_or_b.wm_in.batch_ofrom
|
||||||
wm.material_ofrom = mlog_or_b.wm_in.material_ofrom
|
wm.material_ofrom = mlog_or_b.wm_in.material_ofrom
|
||||||
elif isinstance(mlog_or_b, Mlogb):
|
elif isinstance(mlog_or_b, Mlogb):
|
||||||
wm.batch_ofrom = mlog_or_b.batch_ofrom
|
wm.batch_ofrom = mlog_or_b.batch_ofrom
|
||||||
wm.material_ofrom = mlog_or_b.material_ofrom
|
wm.material_ofrom = mlog_or_b.material_ofrom
|
||||||
wm.save()
|
wm.save()
|
||||||
if material_out.tracking == Material.MA_TRACKING_SINGLE:
|
if material_out.tracking == Material.MA_TRACKING_SINGLE:
|
||||||
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
|
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
|
||||||
if mlogbws.count() != mo_count:
|
if mlogbws.count() != mo_count:
|
||||||
raise ParseError("日志与明细数量不一致,操作失败")
|
raise ParseError("日志与明细数量不一致,操作失败")
|
||||||
for item in mlogbws:
|
for item in mlogbws:
|
||||||
if item.wpr:
|
if item.wpr:
|
||||||
Wpr.change_or_new(wpr=item.wpr, wm=wm, ftest=item.ftest)
|
Wpr.change_or_new(wpr=item.wpr, wm=wm, ftest=item.ftest)
|
||||||
else:
|
else:
|
||||||
wpr = Wpr.change_or_new(number=item.number, wm=wm, ftest=item.ftest)
|
wpr = Wpr.change_or_new(number=item.number, wm=wm, ftest=item.ftest)
|
||||||
item.wpr = wpr
|
item.wpr = wpr
|
||||||
item.save()
|
item.save()
|
||||||
|
|
||||||
mlog.submit_time = now
|
mlog.submit_time = now
|
||||||
mlog.submit_user = user
|
mlog.submit_user = user
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue