23 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			1.2 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 = "毛坯检测"
 | 
						|
    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) |