From a4bc7ba7a708cf2867f3027f593ef72c0d8acf78 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 06 九月 2025 17:46:14 +0800
Subject: [PATCH] 单点登陆白名单访问功能
---
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 1 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 7b26833..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;
}
/**
@@ -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");
@@ -290,6 +379,10 @@
//璁剧疆鍙戦�佹椂闂�
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