24 lines
1.3 KiB
Python
24 lines
1.3 KiB
Python
from apps.wpmw.models import Wpr
|
|
from apps.wpm.models import Mlogbw
|
|
from apps.qm.models import Ftest, FtestDefect, FtestItem
|
|
from rest_framework.exceptions import ParseError
|
|
|
|
def main(number):
|
|
if not Wpr.objects.filter(number=number).exists():
|
|
raise ParseError(f"未找到该单个产品_{number}")
|
|
data = {}
|
|
mgroup_name = "毛坯检测"
|
|
data[f"{mgroup_name}_批次号"] = Mlogbw.objects.filter(number=number).first().mlogb.batch
|
|
ftestitems = FtestItem.objects.filter(ftest__mlogbw_ftest__number=number,
|
|
ftest__mlogbw_ftest__mlogb__mlog__mgroup__name=mgroup_name,
|
|
ftest__mlogbw_ftest__mlogb__mlog__submit_time__isnull=False)
|
|
for ftestitem in ftestitems:
|
|
data[f"{mgroup_name}_检测项_{ftestitem.testitem.name}"] = ftestitem.test_val_json
|
|
|
|
ftestdefects = FtestDefect.objects.filter(ftest__mlogbw_ftest__number=number,
|
|
ftest__mlogbw_ftest__mlogb__mlog__mgroup__name=mgroup_name,
|
|
ftest__mlogbw_ftest__mlogb__mlog__submit_time__isnull=False)
|
|
for ftestdefect in ftestdefects:
|
|
data[f"{mgroup_name}_缺陷项_{ftestdefect.defect.name}"] = 0 if ftestdefect.has is True else 1
|
|
|
|
Wpr.objects.filter(number=number).update(data=data) |