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 = "毛坯检测" 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)