From bb9fd6f1fad1a20e7536fad50f7f8c7d932a9011 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 02 九月 2025 23:17:36 +0800 Subject: [PATCH] 查询超时问题处理 --- smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 70 +++++++++++++++++++++++++++++++++++ 1 files changed, 70 insertions(+), 0 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java index dd95a3d..c793f11 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java @@ -1,5 +1,9 @@ package com.smartor.service.impl; +import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.*; import com.ruoyi.common.core.domain.entity.SysDept; @@ -11,6 +15,7 @@ import com.smartor.domain.*; import com.smartor.mapper.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.service.IPatMedOuthospService; @@ -64,9 +69,74 @@ @Override public List<PatMedOuthosp> selectPatMedOuthospList(PatMedOuthosp patMedOuthosp) { List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); + for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) { + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); + if (patArchive.getBirthdate() != null) { + Map<String, String> map = calculateAge(patArchive.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); + patArchive.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); + patArchive.setAgeUnit(map.get("ageUnit")); + patArchive.setAge2(ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null); + patArchive.setAgeUnit2(map.get("ageUnit2")); + patMedOuthosp1.setAge(patArchive.getAge() + patArchive.getAgeUnit() + patArchive.getAge2() + patArchive.getAgeUnit2()); + patMedOuthosp1.setTelcode(patArchive.getTelcode()); + patMedOuthosp1.setIdcardno(patArchive.getIdcardno()); + } + } return patMedOuthosps; } + public Map<String, String> calculateAge(LocalDate birthdate, LocalDate today) { + if (birthdate == null || today.isBefore(birthdate)) { + return null; + } + Map<String, String> ageMap = new HashMap<>(); + + Period period = Period.between(birthdate, today); + long totalDays = ChronoUnit.DAYS.between(birthdate, today); + long totalMonths = ChronoUnit.MONTHS.between(birthdate, today); + + int years = period.getYears(); + int months = period.getMonths(); + int days = period.getDays(); + + String ageUnit; + Integer age; + String ageUnit2 = null; + Integer age2 = null; + + if (totalDays < 30) { + // 灏忎簬 1 涓湀锛屾寜澶╄绠� + ageUnit = "澶�"; + age = (int) totalDays; + ageMap.put("age", age != null ? age.toString() : null); + ageMap.put("ageUnit", ageUnit); + ageMap.put("age2", null); + ageMap.put("ageUnit2", null); + } else if (totalMonths < 12) { + // 灏忎簬 涓�骞达紝鎸夋湀 + 澶╄绠� + ageUnit = "鏈�"; + age = (int) totalMonths; + ageUnit2 = "澶�"; + age2 = days; + ageMap.put("age", age != null ? age.toString() : null); + ageMap.put("ageUnit", ageUnit); + ageMap.put("age2", age2 != null ? age2.toString() : null); + ageMap.put("ageUnit2", ageUnit2); + } else { + // 澶т簬绛変簬 涓�骞达紝鎸夊勾 + 鏈堣绠� + ageUnit = "宀�"; + age = years; + ageUnit2 = "鏈�"; + age2 = months; + ageMap.put("age", age != null ? age.toString() : null); + ageMap.put("ageUnit", ageUnit); + ageMap.put("age2", age2 != null ? age2.toString() : null); + ageMap.put("ageUnit2", ageUnit2); + } + + return ageMap; + } + /** * 鏂板鎮h�呴棬璇婅褰� * -- Gitblit v1.9.3