fix: mlog_submit提交的bug

This commit is contained in:
caoqianming 2025-01-09 18:14:36 +08:00
parent ce7183ff17
commit 8d923255fd
1 changed files with 14 additions and 5 deletions

View File

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