36 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.9 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, mlogb__mlog__submit_time__isnull=False).order_by("-update_time").first()
 | |
|     if mlogbw:
 | |
|         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,
 | |
|                                             ftest__mlogbw_ftest__mlogb__mlog__is_fix=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,
 | |
|                                         ftest__mlogbw_ftest__mlogb__mlog__is_fix=False)
 | |
|         for ftestdefect in ftestdefects:
 | |
|             data[f"{mgroup_name}_缺陷项_{ftestdefect.defect.name}"] = 1 if ftestdefect.has is True else 0
 | |
|         
 | |
|         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"]) |