33 lines
1.6 KiB
Python
33 lines
1.6 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
|
|
from apps.mtm.models import Mgroup
|
|
|
|
def main(wprId, mgroup:Mgroup):
|
|
wpr = Wpr.objects.get(id=wprId)
|
|
data = {}
|
|
mgroup_name = mgroup.name
|
|
mlogbw = Mlogbw.objects.filter(wpr=wpr).order_by("-update_time").first()
|
|
data[f"{mgroup_name}_批次号"] = mlogbw.mlogb.batch
|
|
data[f"{mgroup_name}_日期"] = mlogbw.mlogb.mlog.handle_date.strftime("%Y-%m-%d")
|
|
ftestitems = FtestItem.objects.filter(ftest__mlogbw_ftest__wpr=wpr,
|
|
ftest__mlogbw_ftest__mlogb__mlog__mgroup=mgroup,
|
|
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__wpr=wpr,
|
|
ftest__mlogbw_ftest__mlogb__mlog__mgroup=mgroup,
|
|
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
|
|
|
|
old_data:dict = wpr.data
|
|
if old_data:
|
|
for item in list(old_data.keys()):
|
|
if f'{mgroup_name}_' in item:
|
|
del old_data[item]
|
|
old_data.update(data)
|
|
wpr.data = old_data
|
|
wpr.save(update_fields=["data"]) |