fix: mlog_submit提交的bug
This commit is contained in:
parent
ce7183ff17
commit
8d923255fd
|
|
@ -20,6 +20,7 @@ from apps.wpm.services_2 import get_alldata_with_batch_and_store
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from apps.wpmw.models import Wpr, WprDefect
|
from apps.wpmw.models import Wpr, WprDefect
|
||||||
from ..qm.models import Defect, FtestDefect
|
from ..qm.models import Defect, FtestDefect
|
||||||
|
from django.db.models import Count
|
||||||
|
|
||||||
myLogger = logging.getLogger('log')
|
myLogger = logging.getLogger('log')
|
||||||
|
|
||||||
|
|
@ -237,12 +238,20 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
||||||
if Mlogbw.objects.filter(mlogb=item).exists():
|
if Mlogbw.objects.filter(mlogb=item).exists():
|
||||||
# 获取所有主要的不合格项
|
# 获取所有主要的不合格项
|
||||||
bw_qs = Mlogbw.objects.filter(mlogb=item)
|
bw_qs = Mlogbw.objects.filter(mlogb=item)
|
||||||
defect_qs = FtestDefect.objects.filter(ftest__is_ok=False,
|
defectIds= FtestDefect.objects.filter(ftest__mlogbw_ftest__in=bw_qs, is_main=True, has=True).values_list("defect__id", flat=True).distinct()
|
||||||
ftest__mlogbw_ftest__mlogb=item, is_main=True).values(
|
defects_map = {d.id: d for d in Defect.objects.filter(id__in=defectIds)}
|
||||||
"defect").distinct()
|
# 过滤并统计相关数据
|
||||||
for defect in defect_qs:
|
filtered_bw_qs = bw_qs.filter(
|
||||||
xcount = bw_qs.filter(ftest__defects_ftest__defect=defect).count()
|
ftest__defects_ftest__defect__id__in=defects_map.keys(),
|
||||||
|
ftest__defects_ftest__has=True,
|
||||||
|
ftest__defects_ftest__is_main=True
|
||||||
|
).values('ftest__defects_ftest__defect__id').annotate(xcount=Count('id'))
|
||||||
|
# 整理结果
|
||||||
|
for defect_data in filtered_bw_qs:
|
||||||
|
defect_id = defect_data['ftest__defects_ftest__defect__id']
|
||||||
|
xcount = defect_data['xcount']
|
||||||
if xcount > 0:
|
if xcount > 0:
|
||||||
|
defect = defects_map[defect_id]
|
||||||
m_outs_list.append((item.material_out, item.batch, xcount, 0, defect, item))
|
m_outs_list.append((item.material_out, item.batch, xcount, 0, defect, item))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue