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 | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 107 insertions(+), 11 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 45c2495..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,7 +69,72 @@ @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; } /** @@ -116,16 +186,16 @@ @Override public PatMedRes selectPatMedOuthospCount(PatMedReq patMedReq) { - // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺 - if (CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) { - Long userId = SecurityUtils.getUserId(); - List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); - List<String> deptCode = new ArrayList<>(); - for (SysDept sysDept : sysDepts) { - deptCode.add(sysDept.getDeptId().toString()); - } - patMedReq.setDeptcodeList(deptCode); - } +// // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺 +// if (CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) { +// Long userId = SecurityUtils.getUserId(); +// List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); +// List<String> deptCode = new ArrayList<>(); +// for (SysDept sysDept : sysDepts) { +// deptCode.add(sysDept.getDeptId().toString()); +// } +// patMedReq.setDeptcodeList(deptCode); +// } return patMedOuthospMapper.selectPatMedOuthospCount(patMedReq); } @@ -149,12 +219,31 @@ patMedOuthosp.setDiagcheckFlag("0"); List<PatMedOuthosp> patMedOuthosps = selectPatMedOuthospList(patMedOuthosp); for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) { + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); + + //璇ユ偅鑰呮湁鍙兘鎻愬墠鏉ュ璇婁簡锛岄偅浠栧悗闈㈢殑鏈瀹ょ殑閫氱煡灏卞彲浠ヤ笉鐢ㄥ啀鍙戠煭淇′簡 + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + if (StringUtils.isNotEmpty(patMedOuthosp1.getDeptcode())) { + serviceSubtaskVO.setDeptcode(patMedOuthosp1.getDeptcode()); + serviceSubtaskVO.setSfzh(patArchive.getIdcardno()); + serviceSubtaskVO.setType("3"); + serviceSubtaskVO.setSendstate(2L); + serviceSubtaskVO.setPreachform("4"); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (!CollectionUtils.isEmpty(serviceSubtaskList)) { + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + serviceSubtask.setSendstate(6L); + serviceSubtask.setRemark("宸插洖鏉ュ璇婏紝鏃犻渶鍐嶈繘琛岀煭淇¢�氱煡"); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + } + } + } + // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔� ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); serviceTaskdiag.setLongtask(1L); serviceTaskdiag.setIcd10code(patMedOuthosp1.getIcd10code()); List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); - PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛� if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { patMedOuthosp1.setDiagcheckFlag("2"); @@ -284,9 +373,16 @@ serviceSubtask.setUpdateTime(new Date()); serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); serviceSubtask.setUpdateTime(new Date()); + serviceSubtask.setVisitDeptCode(patMedOuthosp.getDeptcode()); + serviceSubtask.setVisitDeptName(patMedOuthosp.getDeptname()); + serviceSubtask.setUpdateTime(new Date()); //璁剧疆鍙戦�佹椂闂� if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L); Date newDate = addDays(patMedOuthosp.getAdmitdate(), serviceTask.getSendDay().intValue()); + if (patMedOuthosp.getFudate() != null) { + //濡傛灉闂ㄨ瘖琛ㄦ湁鎸囧畾闅忚鏃堕棿锛岄偅灏辩敤鎸囧畾鐨� + newDate = patMedOuthosp.getFudate(); + } serviceSubtask.setLongSendTime(newDate); serviceSubtask.setVisitTime(newDate); //鎮h�呭彂閫佹椂闂� -- Gitblit v1.9.3