| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
					 | 
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import javax.annotation.Resource; | 
					 | 
					 | 
					 | 
					import javax.annotation.Resource; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import java.time.LocalDateTime; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.time.format.DateTimeFormatter; | 
					 | 
					 | 
					 | 
					import java.time.format.DateTimeFormatter; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.*; | 
					 | 
					 | 
					 | 
					import java.util.*; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.function.Function; | 
					 | 
					 | 
					 | 
					import java.util.function.Function; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -127,16 +128,65 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestMethod(getTestMethods(testRecordInfo));//设置用到的实验方法
 | 
					 | 
					 | 
					 | 
					        bookData.setTestMethod(getTestMethods(testRecordInfo));//设置用到的实验方法
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //设置检验过程
 | 
					 | 
					 | 
					 | 
					        //设置检验过程
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestProcessDes(testRecordInfo.getTestProcessDes());//设置检验过程
 | 
					 | 
					 | 
					 | 
					        bookData.setTestProcessDes(testRecordInfo.getTestProcessDes());//设置检验过程
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestResult(testRecordSampleDataService.generateQualitativeResults(businessId)); | 
					 | 
					 | 
					 | 
					        //设置检验结果
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        bookData.setTestResult(inspectRecordService.buildInspectOpinion(testRecordSampleDataService | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                .lambdaQuery() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                .eq(TestRecordSampleData::getTestId, testRecordInfo.getId()) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                .eq(TestRecordSampleData::getSampleType, "Analyte") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                .list())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //检验日期
 | 
					 | 
					 | 
					 | 
					        //检验日期
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); | 
					 | 
					 | 
					 | 
					        DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestStartDate(sdf.format(testRecordInfo.getCreateTime())); | 
					 | 
					 | 
					 | 
					        bookData.setTestStartDate(sdf.format(testRecordInfo.getCreateTime())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestOptUser(testRecordInfo.getTestUserId()); | 
					 | 
					 | 
					 | 
					        bookData.setTestOptUser(testRecordInfo.getTestUserId()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bookData.setTestFinishDate(sdf.format(testRecordInfo.getUpdateTime())); | 
					 | 
					 | 
					 | 
					        LocalDateTime testFinishDate = testRecordInfo.getUpdateTime(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String chineseTestFinishDate = convertToChineseDate(testFinishDate); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        bookData.setTestFinishDate(chineseTestFinishDate); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        System.out.println("打印的实验结束时间:" + chineseTestFinishDate); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return bookData; | 
					 | 
					 | 
					 | 
					        return bookData; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // 自定义方法:将 LocalDateTime 转换为中文日期格式
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public static String convertToChineseDate(LocalDateTime date) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // 获取年月日
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        int year = date.getYear(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        int month = date.getMonthValue(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        int day = date.getDayOfMonth(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // 处理年:去掉“二零”前缀,只保留后两位
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String yearStr = convertNumberToChineseForYear(year % 100) + "年"; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // 处理月和日
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String monthStr = convertNumberToChinese(month) + "月"; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String dayStr = convertNumberToChinese(day) + "日"; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return yearStr + monthStr + dayStr; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // 数字转中文
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public static String convertNumberToChinese(int number) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String[] chineseDigits = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (number <= 10) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return chineseDigits[number]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else if (number < 20) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return "十" + chineseDigits[number % 10]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else if (number % 10 == 0) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return chineseDigits[number / 10] + "十"; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return chineseDigits[number / 10] + "十" + chineseDigits[number % 10]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // 数字转中文(用于年)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public static String convertNumberToChineseForYear(int number) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String[] chineseDigits = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (number < 10) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return chineseDigits[number]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return chineseDigits[number / 10] + chineseDigits[number % 10]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    //获取业务的实验对象
 | 
					 | 
					 | 
					 | 
					    //获取业务的实验对象
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private TestRecord getTestRecordInfo(List<TestRecordSampleSolution> testRecordSampleSolutionList) { | 
					 | 
					 | 
					 | 
					    private TestRecord getTestRecordInfo(List<TestRecordSampleSolution> testRecordSampleSolutionList) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        List<String> testIdList = testRecordSampleSolutionList.stream().map(s -> s.getTestId()).collect(Collectors.toList()); | 
					 | 
					 | 
					 | 
					        List<String> testIdList = testRecordSampleSolutionList.stream().map(s -> s.getTestId()).collect(Collectors.toList()); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |