diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/IdentifyBookDataServiceImpl.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/IdentifyBookDataServiceImpl.java index fbbd70b..05b00d3 100644 --- a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/IdentifyBookDataServiceImpl.java +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/IdentifyBookDataServiceImpl.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; @@ -127,16 +128,65 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService { bookData.setTestMethod(getTestMethods(testRecordInfo));//设置用到的实验方法 //设置检验过程 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日"); bookData.setTestStartDate(sdf.format(testRecordInfo.getCreateTime())); 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; } + // 自定义方法:将 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 testRecordSampleSolutionList) { List testIdList = testRecordSampleSolutionList.stream().map(s -> s.getTestId()).collect(Collectors.toList());