From a4bc7ba7a708cf2867f3027f593ef72c0d8acf78 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 06 九月 2025 17:46:14 +0800
Subject: [PATCH] 单点登陆白名单访问功能
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 520 ++++++++++-----------------------------------------------
1 files changed, 90 insertions(+), 430 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 64240b7..30ae035 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -3,23 +3,21 @@
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.MsgLSEnum;
import com.ruoyi.common.enums.ServiceFromEnum;
import com.ruoyi.common.enums.VisitSendStateEnum;
import com.ruoyi.common.enums.WxGZHEnum;
-import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.common.utils.OkHttpExample;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.quartz.service.ICollectHISService;
import com.smartor.common.LSHospTokenUtil;
import com.smartor.domain.*;
+import com.smartor.mapper.HeLibraryMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.mapper.ServiceTaskMapper;
import com.smartor.mapper.SysUserImportMapper;
@@ -30,20 +28,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.File;
-import java.io.FileWriter;
import java.io.IOException;
-import java.lang.reflect.Type;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.MessageDigest;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -87,10 +78,17 @@
private IServicePatientTempService iServicePatientTempService;
@Autowired
- private PlatformTransactionManager transactionManager;
+ private IHNGatherPatArchiveService ihnGatherPatArchiveService;
@Autowired
private SysUserImportMapper sysUserImportMapper;
+
+ @Autowired
+ private HeLibraryMapper heLibraryMapper;
+
+ @Autowired
+ private ICollectHISService ichService;
+
@Value("${localIP}")
private String localIP;
@@ -125,8 +123,6 @@
@Autowired
IPatArchiveService patArchiveService;
- @Autowired
- IPatMedInhospService patMedInhospService;
@Autowired
IPatMedOuthospService patMedOuthospService;
@@ -137,14 +133,22 @@
@Autowired
IIvrTaskTemplateService iIvrTaskTemplateService;
- @Value("${hosp_info_url}")
- private String hospInfoUrl;
+ @Autowired
+ IXHGatherPatArchiveService ixhGatherPatArchiveService;
+
+ @Autowired
+ ICollectHISService icollectHis;
+
@Value("${appid}")
private String appid;
@Value("${server.port}")
private String port;
+
+
+ @Value("${spring.profiles.active}")
+ private String active;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i));
@@ -211,34 +215,42 @@
*/
public void dealHisData() {
log.info("銆恉ealHisData銆戝紑濮嬫墽琛孒IS鏁版嵁閲囬泦浠诲姟");
- long startTime = System.currentTimeMillis();
+ // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
+ LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime yesterdayZero = todayZero.minusDays(1);
+ log.info("銆恉ealHisData銆戦噰闆嗘椂闂磋寖鍥达細{} ~ {}", yesterdayZero, todayZero);
- try {
- // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
- LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
- LocalDateTime yesterdayZero = todayZero.minusDays(1);
+ if (active.trim().equals("xh")) {
+ try {
+ // 閲囬泦鍏ラ櫌鏁版嵁
+ log.info("銆恉ealHisData銆戞柊鍗庡紑濮嬮噰闆嗗叆闄㈡暟鎹�");
+ ixhGatherPatArchiveService.getInHospDataGather("0", yesterdayZero, todayZero);
+ log.info("銆恉ealHisData銆戞柊鍗庡叆闄㈡暟鎹噰闆嗗畬鎴�");
- log.info("銆恉ealHisData銆戦噰闆嗘椂闂磋寖鍥达細{} ~ {}", yesterdayZero, todayZero);
+ // 閲囬泦鍑洪櫌鏁版嵁
+ log.info("銆恉ealHisData銆戞柊鍗庡紑濮嬮噰闆嗗嚭闄㈡暟鎹�");
+ ixhGatherPatArchiveService.getInHospDataGather("1", yesterdayZero, todayZero);
+ log.info("銆恉ealHisData銆戞柊鍗庡嚭闄㈡暟鎹噰闆嗗畬鎴�");
- // 閲囬泦鍏ラ櫌鏁版嵁
- log.info("銆恉ealHisData銆戝紑濮嬮噰闆嗗叆闄㈡暟鎹�");
- getInHospInfo("0", yesterdayZero, todayZero);
- log.info("銆恉ealHisData銆戝叆闄㈡暟鎹噰闆嗗畬鎴�");
-
- // 閲囬泦鍑洪櫌鏁版嵁
- log.info("銆恉ealHisData銆戝紑濮嬮噰闆嗗嚭闄㈡暟鎹�");
- getInHospInfo("1", yesterdayZero, todayZero);
- log.info("銆恉ealHisData銆戝嚭闄㈡暟鎹噰闆嗗畬鎴�");
-
- long endTime = System.currentTimeMillis();
- log.info("銆恉ealHisData銆慔IS鏁版嵁閲囬泦浠诲姟瀹屾垚锛屾�昏�楁椂锛歿}ms", endTime - startTime);
-
- } catch (Exception e) {
- log.error("銆恉ealHisData銆慔IS鏁版嵁閲囬泦寮傚父", e);
- // 杩欓噷鍙互娣诲姞鍛婅閫氱煡閫昏緫锛屾瘮濡傚彂閫侀偖浠舵垨鐭俊
+ } catch (Exception e) {
+ log.error("銆恉ealHisData銆戞柊鍗庢暟鎹噰闆嗗紓甯�", e);
+ }
+ } else if (active.trim().equals("hn")) {
+ try {
+ // 娌冲崡鏁版嵁閲囬泦
+ HnDataGatherVO hnDataGatherVO = new HnDataGatherVO();
+ log.info("銆恉ealHisData銆戞渤鍗楀紑濮嬮噰闆嗘暟鎹�");
+ ihnGatherPatArchiveService.hnDataGather(hnDataGatherVO);
+ log.info("銆恉ealHisData銆戞渤鍗楃粨鏉熼噰闆嗘暟鎹�");
+ } catch (Exception e) {
+ log.error("銆恉ealHisData銆戞渤鍗楁暟鎹噰闆嗗紓甯�", e);
+ }
}
}
+ /**
+ * 杩欎釜鍙槸鏂板崕涓存椂浣跨敤锛屽钩鏃剁敤涓嶅埌
+ */
public void dealHisData2() {
//灏嗘偅鑰呬俊鎭�佸嚭鍏ラ櫌鏁版嵁鍏ㄩ儴閲囬泦
// 鎸囧畾鐨勫紑濮嬫棩鏈�
@@ -251,8 +263,8 @@
// 浠庡紑濮嬫棩鏈熷埌褰撳墠鏃ユ湡閫愬ぉ鎵撳嵃
for (LocalDate date = endDate; !date.isAfter(currentDate); date = date.plusDays(1)) {
System.out.println(date.format(formatter));
- getInHospInfo("0", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
- getInHospInfo("1", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
+ ixhGatherPatArchiveService.getInHospDataGather("0", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
+ ixhGatherPatArchiveService.getInHospDataGather("1", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
}
}
@@ -348,10 +360,21 @@
//涓芥按鏈夌殑鍖婚櫌杩樻病娉曞仛闀挎湡浠诲姟闅忚
List<ServiceSubtask> subtaskList2 = new ArrayList<>();
if (visitHosp == 2) {
- for (ServiceSubtask serviceSubtask : subtaskList) {
- Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
- if (b) subtaskList2.add(serviceSubtask);
+ try {
+ for (ServiceSubtask serviceSubtask : subtaskList) {
+ Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
+
+ if (b) subtaskList2.add(serviceSubtask);
+ }
+ } catch (Exception e) {
+ log.error("-------闀挎湡浠诲姟寮傚父涓猴細", e);
+ continue;
}
+// for (ServiceSubtask serviceSubtask : subtaskList) {
+// Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
+//
+// if (b) subtaskList2.add(serviceSubtask);
+// }
subtaskList = subtaskList2;
}
@@ -467,7 +490,6 @@
serviceSubtask.setResult("error");
serviceSubtask.setRemark(patArchive.getNotrequiredreason());
serviceSubtask.setSendstate(4L);
-// serviceSubtask.setFinishtime(new Date());
iServiceSubtaskService.insertServiceSubtask(serviceSubtask);
continue;
}
@@ -486,9 +508,18 @@
serviceOutPath.setRadix(format);
serviceOutPath.setUpdateTime(new Date());
iServiceOutPathService.updateServiceOutPath(serviceOutPath);
- sendMagParam.setPhone(serviceSubtask.getPhone());
- sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format);
- sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+ //鍏堝垽鏂竴涓嬪彂鐨勬槸涓嶆槸瀹f暀
+ if (!"3".equals(serviceSubtask.getType())) {
+ sendMagParam.setPhone(serviceSubtask.getPhone());
+ sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format);
+ sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+ } else {
+ HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
+ if ("2".equals(heLibrary.getHetype())) {
+ sendMagParam.setPhone(serviceSubtask.getPhone());
+ sendMagParam.setContent(heLibrary.getPreachcontent());
+ }
+ }
String isSuccess = null;
if (visitHosp == 1) {
Map<String, String> req = new HashMap<>();
@@ -640,389 +671,6 @@
}
}
-
- /**
- * 鑾峰彇鎮h�呭嚭鍏ラ櫌淇℃伅
- *
- * @param cry 鍑哄叆闄㈢被鍨嬶細0-鍏ラ櫌锛�1-鍑洪櫌
- * @param startTime 寮�濮嬫椂闂�
- * @param endTime 缁撴潫鏃堕棿
- */
- @Transactional
- public void getInHospInfo(String cry, LocalDateTime startTime, LocalDateTime endTime) {
- String typeName = "0".equals(cry) ? "鍏ラ櫌" : "鍑洪櫌";
- log.info("銆恎etInHospInfo銆戝紑濮嬭幏鍙杮}鎮h�呬俊鎭紝鏃堕棿鑼冨洿锛歿} ~ {}", typeName, startTime, endTime);
- long startTimeMillis = System.currentTimeMillis();
-
- try {
- // 绗竴姝ワ細鏋勫缓璇锋眰鍙傛暟骞惰皟鐢℉IS鎺ュ彛
- List<ThiedInhospInfo> thiedInhospInfoList = fetchHisData(cry, startTime, endTime);
-
- if (CollectionUtils.isEmpty(thiedInhospInfoList)) {
- log.info("銆恎etInHospInfo銆憑}鎮h�呬俊鎭负绌猴紝璺宠繃澶勭悊", typeName);
- return;
- }
-
- log.info("銆恎etInHospInfo銆戣幏鍙栧埌{}鏉}鎮h�呬俊鎭�", thiedInhospInfoList.size(), typeName);
-
- // 绗簩姝ワ細淇濆瓨鍘熷鏁版嵁鍒版枃浠讹紙鐢ㄤ簬澶囦唤锛�
- saveRawDataToFile(cry, thiedInhospInfoList);
-
- // 绗笁姝ワ細澶勭悊鎮h�呮暟鎹�
- processPatientData(thiedInhospInfoList, cry);
-
- long endTimeMillis = System.currentTimeMillis();
- log.info("銆恎etInHospInfo銆憑}鎮h�呬俊鎭鐞嗗畬鎴愶紝鑰楁椂锛歿}ms", typeName, endTimeMillis - startTimeMillis);
-
- } catch (Exception e) {
- log.error("銆恎etInHospInfo銆戣幏鍙杮}鎮h�呬俊鎭紓甯�", typeName, e);
- throw new RuntimeException("鑾峰彇" + typeName + "鎮h�呬俊鎭け璐�", e);
- }
- }
-
- /**
- * 绗竴姝ワ細璋冪敤HIS鎺ュ彛鑾峰彇鏁版嵁
- */
- private List<ThiedInhospInfo> fetchHisData(String cry, LocalDateTime startTime, LocalDateTime endTime) {
- try {
- // 鏋勫缓璇锋眰鍙傛暟
- Map<String, String> requestParams = buildRequestParams(cry, startTime, endTime);
-
- // 鏋勫缓璇锋眰澶�
- Map<String, String> headers = buildRequestHeaders(startTime);
-
- // 鍙戦�丠TTP璇锋眰
- String result = HttpUtils.sendPostByHeader(hospInfoUrl, new Gson().toJson(requestParams), headers);
-
- // 瑙f瀽鍝嶅簲鏁版嵁
- return parseResponseData(result);
-
- } catch (Exception e) {
- log.error("銆恌etchHisData銆戣皟鐢℉IS鎺ュ彛寮傚父", e);
- throw e;
- }
- }
-
- /**
- * 鏋勫缓璇锋眰鍙傛暟
- */
- private Map<String, String> buildRequestParams(String cry, LocalDateTime startTime, LocalDateTime endTime) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
- Map<String, String> req = new HashMap<>();
-
- if ("1".equals(cry)) {
- // 鍑洪櫌鍙傛暟
- req.put("cashStartDate", startTime.format(formatter));
- req.put("cashEndDate", endTime.format(formatter));
- req.put("currStatus", "4");
- } else {
- // 鍏ラ櫌鍙傛暟
- req.put("admissStartDate", startTime.format(formatter));
- req.put("admissEndDate", endTime.format(formatter));
- req.put("currStatus", "2");
- }
-
- return req;
- }
-
- /**
- * 鏋勫缓璇锋眰澶�
- */
- private Map<String, String> buildRequestHeaders(LocalDateTime startTime) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
- Map<String, String> header = new HashMap<>();
- header.put("x-hcsb-serviceno", "IS002347");
- header.put("x-hcsb-version", "2.0");
- header.put("x-hcsb-sourcesyscode", "14");
- header.put("x-hcsb-token", "ArGE2JnHtxG/Zx5nrnGY4eOfMUJGGJokAJHigG1BrCY=");
- header.put("x-hcsb-msgdate", startTime.format(formatter));
- return header;
- }
-
- /**
- * 瑙f瀽鍝嶅簲鏁版嵁
- */
- private List<ThiedInhospInfo> parseResponseData(String result) {
- try {
- Gson gson = new Gson();
- JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
- JsonArray resultArray = jsonObject.getAsJsonObject("data").getAsJsonArray("result");
- Type resultType = new TypeToken<List<ThiedInhospInfo>>() {
- }.getType();
- return gson.fromJson(resultArray, resultType);
- } catch (Exception e) {
- log.error("銆恜arseResponseData銆戣В鏋愬搷搴旀暟鎹紓甯革紝鍘熷鏁版嵁锛歿}", result, e);
- throw e;
- }
- }
-
- /**
- * 绗簩姝ワ細淇濆瓨鍘熷鏁版嵁鍒版枃浠�
- */
- private void saveRawDataToFile(String cry, List<ThiedInhospInfo> dataList) {
- try {
- String typeName = "0".equals(cry) ? "鍏ラ櫌淇℃伅" : "鍑洪櫌淇℃伅";
- String filename = typeName + "_" + System.currentTimeMillis() + ".json";
- String filePath = "D:\\public\\HIS鏁版嵁閲囬泦\\" + filename;
-
- File file = new File(filePath);
- File parentDir = file.getParentFile();
- if (!parentDir.exists()) {
- parentDir.mkdirs();
- }
-
- if (!file.exists()) {
- file.createNewFile();
- }
-
- // 灏嗘暟鎹啓鍏ユ枃浠�
- try (FileWriter writer = new FileWriter(file)) {
- writer.write(new Gson().toJson(dataList));
- }
-
- log.info("銆恠aveRawDataToFile銆戝師濮嬫暟鎹凡淇濆瓨鍒版枃浠讹細{}", filePath);
-
- } catch (Exception e) {
- log.error("銆恠aveRawDataToFile銆戜繚瀛樺師濮嬫暟鎹埌鏂囦欢寮傚父", e);
- // 鏂囦欢淇濆瓨澶辫触涓嶅奖鍝嶄富娴佺▼锛屽彧璁板綍鏃ュ織
- }
- }
-
- /**
- * 绗笁姝ワ細澶勭悊鎮h�呮暟鎹�
- */
- private void processPatientData(List<ThiedInhospInfo> thiedInhospInfoList, String cry) {
- int successCount = 0;
- int skipCount = 0;
- int errorCount = 0;
-
- for (ThiedInhospInfo thiedInhospInfo : thiedInhospInfoList) {
- try {
- if (processSinglePatient(thiedInhospInfo, cry)) {
- successCount++;
- } else {
- skipCount++;
- }
- } catch (Exception e) {
- errorCount++;
- log.error("銆恜rocessPatientData銆戝鐞嗘偅鑰呮暟鎹紓甯革紝鎮h�匢D锛歿}", thiedInhospInfo.getPatiMediaNo(), e);
- }
- }
-
- log.info("銆恜rocessPatientData銆戞偅鑰呮暟鎹鐞嗗畬鎴愶紝鎴愬姛锛歿}锛岃烦杩囷細{}锛屽け璐ワ細{}", successCount, skipCount, errorCount);
- }
-
- /**
- * 澶勭悊鍗曚釜鎮h�呮暟鎹�
- */
- private boolean processSinglePatient(ThiedInhospInfo thiedInhospInfo, String cry) {
- // 楠岃瘉韬唤璇佸彿
- if (StringUtils.isEmpty(thiedInhospInfo.getPatiIdCardNo())) {
- log.warn("銆恜rocessSinglePatient銆戞偅鑰呰韩浠借瘉鍙蜂负绌猴紝璺宠繃澶勭悊锛屾偅鑰呯紪鍙凤細{}", thiedInhospInfo.getPatiMediaNo());
- return false;
- }
-
- // 澶勭悊鎮h�呮。妗堜俊鎭�
- PatArchive patArchive = processPatientArchive(thiedInhospInfo, cry);
-
- // 澶勭悊鎮h�呬綇闄俊鎭�
- processPatientInhospInfo(thiedInhospInfo, patArchive, cry);
-
- return true;
- }
-
- /**
- * 澶勭悊鎮h�呮。妗堜俊鎭�
- */
- private PatArchive processPatientArchive(ThiedInhospInfo thiedInhospInfo, String cry) {
- // 鏌ヨ鎮h�呮槸鍚﹀凡瀛樺湪
- PatArchive queryArchive = new PatArchive();
- queryArchive.setIdcardno(thiedInhospInfo.getPatiIdCardNo().trim());
- List<PatArchive> existingArchives = patArchiveService.selectPatArchiveList(queryArchive);
-
- // 鏋勫缓鎮h�呮。妗堜俊鎭�
- PatArchive patArchive = buildPatientArchive(thiedInhospInfo, cry);
-
- // 淇濆瓨鎴栨洿鏂版偅鑰呮。妗�
- if (CollectionUtils.isEmpty(existingArchives)) {
- patArchiveService.insertPatArchive(patArchive);
- log.debug("銆恜rocessPatientArchive銆戞柊澧炴偅鑰呮。妗堬紝鎮h�呯紪鍙凤細{}", patArchive.getPatientno());
- } else {
- patArchive.setId(existingArchives.get(0).getId());
- patArchiveService.updateArchive(patArchive);
- log.debug("銆恜rocessPatientArchive銆戞洿鏂版偅鑰呮。妗堬紝鎮h�呯紪鍙凤細{}", patArchive.getPatientno());
- }
-
- return patArchive;
- }
-
- /**
- * 鏋勫缓鎮h�呮。妗堜俊鎭�
- */
- private PatArchive buildPatientArchive(ThiedInhospInfo thiedInhospInfo, String cry) {
- PatArchive patArchive = new PatArchive();
-
- // 鍩烘湰淇℃伅
- patArchive.setPatientno(thiedInhospInfo.getPatiMediaNo());
- patArchive.setIdcardno(thiedInhospInfo.getPatiIdCardNo().trim());
- patArchive.setName(thiedInhospInfo.getPatiRecordName());
- patArchive.setSourcefrom(2);
- patArchive.setPattype("2");
-
- // 鎬у埆
- patArchive.setSex("鐢�".equals(thiedInhospInfo.getPatiRecordGender()) ? 1L : 2L);
-
- // 姘戞棌鍜岀睄璐�
- patArchive.setNation(thiedInhospInfo.getPatiNation());
- patArchive.setNativePlace(thiedInhospInfo.getPatiNationality());
-
- // 灞呬綇鍦板潃
- String homeAddr = thiedInhospInfo.getPatiHomeAddr();
- patArchive.setPlaceOfResidence(StringUtils.isNotEmpty(homeAddr) ? homeAddr.replace("null", "") : "");
-
- // 鍑虹敓鏃ユ湡
- if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiBirthday())) {
- try {
- patArchive.setBirthdate(new SimpleDateFormat("yyyy-MM-dd").parse(thiedInhospInfo.getPatiBirthday()));
- } catch (ParseException e) {
- log.warn("銆恇uildPatientArchive銆戣В鏋愬嚭鐢熸棩鏈熷け璐ワ細{}", thiedInhospInfo.getPatiBirthday(), e);
- }
- }
-
- // 骞撮緞
- if (thiedInhospInfo.getTreateAge() != null) {
- patArchive.setAge(Long.valueOf(thiedInhospInfo.getTreateAge()));
- }
- patArchive.setAgeUnit(thiedInhospInfo.getTreatAgeunit());
-
- // 鑱旂郴鏂瑰紡
- patArchive.setTelcode(thiedInhospInfo.getCompanyTelNum());
- patArchive.setRelativetelcode(thiedInhospInfo.getContactPersonPhone());
-
- // 鍑洪櫌鏂瑰紡澶勭悊锛堟浜$瓑鐗规畩鎯呭喌锛�
- if (StringUtils.isNotEmpty(thiedInhospInfo.getOutWayId()) && "4".equals(thiedInhospInfo.getOutWayId())) {
- patArchive.setNotrequiredFlag("1");
- patArchive.setNotrequiredreason(thiedInhospInfo.getOutWayName());
- }
- if ("1".equals(cry) && StringUtils.isEmpty(thiedInhospInfo.getOutWayId())) {
- patArchive.setNotrequiredFlag("1");
- patArchive.setNotrequiredreason("鍑洪櫌鏂瑰紡涓虹┖");
- }
-
- // 绯荤粺瀛楁
- patArchive.setDelFlag("0");
- patArchive.setCreateTime(new Date());
- patArchive.setUpdateTime(new Date());
-
- return patArchive;
- }
-
- /**
- * 澶勭悊鎮h�呬綇闄俊鎭�
- */
- private void processPatientInhospInfo(ThiedInhospInfo thiedInhospInfo, PatArchive patArchive, String cry) {
- // 鏋勫缓浣忛櫌淇℃伅
- PatMedInhosp patMedInhosp = buildPatientInhospInfo(thiedInhospInfo, patArchive, cry);
-
- // 鏌ヨ鏄惁宸插瓨鍦ㄤ綇闄㈣褰�
- PatMedInhosp queryInhosp = new PatMedInhosp();
- queryInhosp.setPatno(patArchive.getPatientno());
- queryInhosp.setSerialnum(patMedInhosp.getSerialnum());
- List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhospList(queryInhosp);
-
- // 淇濆瓨鎴栨洿鏂颁綇闄俊鎭�
- if (CollectionUtils.isNotEmpty(existingInhosps)) {
- patMedInhosp.setInhospid(existingInhosps.get(0).getInhospid());
- patMedInhospService.updatePatMedInhosp(patMedInhosp);
- log.debug("銆恜rocessPatientInhospInfo銆戞洿鏂颁綇闄俊鎭紝鎮h�呯紪鍙凤細{}锛屾祦姘村彿锛歿}", patArchive.getPatientno(), patMedInhosp.getSerialnum());
- } else {
- patMedInhospService.insertPatMedInhosp(patMedInhosp);
- log.debug("銆恜rocessPatientInhospInfo銆戞柊澧炰綇闄俊鎭紝鎮h�呯紪鍙凤細{}锛屾祦姘村彿锛歿}", patArchive.getPatientno(), patMedInhosp.getSerialnum());
- }
- }
-
- /**
- * 鏋勫缓鎮h�呬綇闄俊鎭�
- */
- private PatMedInhosp buildPatientInhospInfo(ThiedInhospInfo thiedInhospInfo, PatArchive patArchive, String cry) {
- PatMedInhosp patMedInhosp = new PatMedInhosp();
-
- // 鎮h�呭熀鏈俊鎭�
- patMedInhosp.setPatid(patArchive.getId());
- patMedInhosp.setPatno(patArchive.getPatientno());
- patMedInhosp.setPatname(patArchive.getName());
-
- // 鎶ょ悊淇℃伅
- patMedInhosp.setNurseId(thiedInhospInfo.getNurseId());
- patMedInhosp.setNurseName(thiedInhospInfo.getNurseName());
-
- // 浣忛櫌淇℃伅
- patMedInhosp.setSerialnum(thiedInhospInfo.getInpatientId());
- patMedInhosp.setFuflag("1");
- patMedInhosp.setInhospstate("0".equals(cry) ? "0" : "1");
-
- // 鍖婚櫌鍜屽簥浣嶄俊鎭�
- patMedInhosp.setHospitalcode(thiedInhospInfo.getAreaId());
- patMedInhosp.setBedNo(thiedInhospInfo.getAdmissBedNo());
-
-
- // 鏃堕棿淇℃伅
- if (StringUtils.isNotEmpty(thiedInhospInfo.getAdmissDate())) {
- try {
- patMedInhosp.setStarttime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getAdmissDate()));
- } catch (ParseException e) {
- log.warn("銆恇uildPatientInhospInfo銆戣В鏋愬叆闄㈡椂闂村け璐ワ細{}", thiedInhospInfo.getAdmissDate(), e);
- }
- }
-
- if (StringUtils.isNotEmpty(thiedInhospInfo.getOutDate())) {
- try {
- patMedInhosp.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getOutDate()));
- } catch (ParseException e) {
- log.warn("銆恇uildPatientInhospInfo銆戣В鏋愬嚭闄㈡椂闂村け璐ワ細{}", thiedInhospInfo.getOutDate(), e);
- }
- }
-
- // 鍑洪櫌淇℃伅
- if (cry.equals("1")) {
- patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrDeptId());
- patMedInhosp.setLeaveldeptname(thiedInhospInfo.getCurrDeptName());
- patMedInhosp.setLeavediagname(thiedInhospInfo.getDiagName());
- patMedInhosp.setLeaveicd10code(thiedInhospInfo.getDiagIcd10());
- patMedInhosp.setOutWayId(thiedInhospInfo.getOutWayId());
- patMedInhosp.setOutWayName(thiedInhospInfo.getOutWayName());
- // 鐥呭尯淇℃伅
- patMedInhosp.setLeavehospitaldistrictid(thiedInhospInfo.getCurrWardCode());
- patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId());
- patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName());
- patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode());
- } else {
- //鍏ラ櫌
- patMedInhosp.setDeptcode(thiedInhospInfo.getCurrDeptId());
- patMedInhosp.setDeptname(thiedInhospInfo.getCurrDeptName());
- patMedInhosp.setDiagname(thiedInhospInfo.getDiagName());
- patMedInhosp.setIcd10code(thiedInhospInfo.getDiagIcd10());
- patMedInhosp.setHospitaldistrictid(thiedInhospInfo.getAdmissWardCode());
- patMedInhosp.setHospitaldistrictcode(thiedInhospInfo.getAdmissWardId());
- patMedInhosp.setHospitaldistrictname(thiedInhospInfo.getAdmissWardName());
- }
-
- // 鍖荤敓淇℃伅
- patMedInhosp.setDrname(thiedInhospInfo.getDoctName());
- patMedInhosp.setDrcode(thiedInhospInfo.getDoctId());
-
-
- // 鐘舵�佷俊鎭�
- patMedInhosp.setSchemestatus("0".equals(cry) ? 1L : 2L);
-
- // 绯荤粺瀛楁
- patMedInhosp.setDelFlag("0");
- patMedInhosp.setOrgid("1");
-
- return patMedInhosp;
- }
-
-
private String getKey() {
Map<String, String> map = new HashMap<>();
for (int i = 0; i < 6; i++) {
@@ -1119,4 +767,16 @@
}
return toHex(md5.digest());
}
+
+ public void collectHIS() {
+ try {
+ // HIS鏁版嵁閲囬泦
+ HnDataGatherVO hnDataGatherVO = new HnDataGatherVO();
+ log.info("銆恉ealHisData銆慔IS寮�濮嬮噰闆嗘暟鎹�");
+ ichService.hnDataGather(hnDataGatherVO);
+ log.info("銆恉ealHisData銆慔IS缁撴潫閲囬泦鏁版嵁");
+ } catch (Exception e) {
+ log.error("銆恉ealHisData銆慔IS鏁版嵁閲囬泦寮傚父", e);
+ }
+ }
}
--
Gitblit v1.9.3