From 44bb8eae303c8e92931925f82ff80a643e2072f2 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 31 七月 2025 14:09:37 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 64 insertions(+), 11 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index c8e8bb5..8602729 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -24,10 +24,7 @@
 import java.time.Period;
 import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -70,6 +67,9 @@
 
     @Value("${defaultPwd}")
     private String defaultPwd;
+
+    @Value("${noLongTask}")
+    private List<String> noLongTask;
 
     public Boolean generalInterface(Map dataMap) {
         Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
@@ -396,6 +396,7 @@
         //鏂板鎮h�呭熀鏈俊鎭柊澧炴垨淇敼
         PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
 
+
         PatMedInhosp patMedInhosp = new PatMedInhosp();
         patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
         patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
@@ -467,6 +468,10 @@
         if (CollectionUtils.isNotEmpty(patMedInhospList)) {
             patMedInhosp1.setUpdateTime(new Date());
             patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         } else {
@@ -484,6 +489,11 @@
             patMedInhosp1.setPatname(patArchive.getName());
 
             patMedInhosp1.setCreateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
+
             int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
@@ -570,7 +580,8 @@
                 }
             }
             try {
-                patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
+                if (!Objects.isNull(SuiFangJH.get("SuiFangRQ")))
+                    patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
             } catch (ParseException e) {
                 e.printStackTrace();
             }
@@ -600,6 +611,10 @@
         if (CollectionUtils.isNotEmpty(patMedInhospList)) {
             patMedInhosp1.setUpdateTime(new Date());
             patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         } else {
@@ -617,6 +632,10 @@
             patMedInhosp1.setPatname(patArchive.getName());
 
             patMedInhosp1.setCreateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
@@ -882,12 +901,16 @@
         patMedOuthosp.setOrgid(FaSongJGID);
         patMedOuthosp.setHospitalname(FaSongJGMC);
 
+        //杩欎釜闇�瑕佺瓑HIS閭h竟鍛婅瘔鍙栧摢涓瓧娈碉紝鐜板湪杩樻槸涓嶅鐨�
+        patMedOuthosp.setFudate(externalJZInfo.getSfrq());
+
         for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) {
             if (externalDiagnosisInfo.getZhenDuanLBMC().equals("涓昏瘖鏂�")) {
                 patMedOuthosp.setDiagname(externalDiagnosisInfo.getZhenDuanMC());
                 patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID());
                 patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM());
                 patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10());
+                patMedOuthosp.setFuflag("0");
             }
         }
         for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
@@ -902,12 +925,37 @@
         if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
             patMedOuthosp.setId(patMedOuthosps.get(0).getId());
             patMedOuthosp.setUpdateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁匡紝鐢卞尰鐢熻嚜宸卞幓闅忚锛堜附姘翠腑鍖婚櫌棣栨鎻愬嚭锛�
+                patMedOuthosp.setFuflag("1");
+            }
             i = patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp);
         } else {
             patMedOuthosp.setCreateTime(new Date());
             patMedOuthosp.setUpdateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedOuthosp.setFuflag("1");
+            }
             i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
         }
+
+        //鍏堥�氳繃韬唤璇佸拰绉戝鏌ヨ璇ユ偅鑰呮槸鍚︽湁闇�瑕侀殢璁跨殑(鏅畞鎻愬嚭鏉ョ殑)
+        if (patMedOuthosp.getOrgid().equals("47255004333112711A1001")) {
+            ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+            serviceSubtaskVO.setSfzh(patMedOuthosp.getIdcardno());
+            serviceSubtaskVO.setDeptcode(patMedOuthosp.getDeptcode());
+            serviceSubtaskVO.setSendstate(2L);
+            List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+                    serviceSubtask.setSendstate(6L);
+                    serviceSubtask.setRemark("鎮h�呭凡缁忓洖鏉ュ璇�");
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                }
+            }
+        }
+
         if (i > 0) {
             return true;
         }
@@ -920,7 +968,7 @@
         int count = patMedOuthospMapper.countPatMedOuthosp();
         if (count > 3000000) {
             // 2. 鍐疯棌琛ㄥ苟鏂板缓
-            String timeSuffix = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+            String timeSuffix = new SimpleDateFormat("yyyyMM").format(new Date());
             String oldName = "pat_med_outhosp";
             String newName = oldName + "_" + timeSuffix;
 
@@ -937,13 +985,15 @@
                 }
             }
 
-            // 4. 鏂板缓
-            patMedOuthospMapper.createPatMedOuthosp(oldName, newName);
+            // 4. 鏂板缓(姝ゆ椂鍙墿鍐疯〃锛孭atMedOuthosp娌′簡锛岄渶瑕佹柊寤轰竴涓�)
+            patMedOuthospMapper.createPatMedOuthosp(newName, oldName);
 
-            // 5. 璁剧疆鏂拌〃鑷璧峰鍊�
+            //5.璁剧疆鏂拌〃鑷涓婚敭
+            patMedOuthospMapper.createPatMedOuthospAutoAdd(oldName);
+            //6. 璁剧疆鏂拌〃鑷璧峰鍊�
             patMedOuthospMapper.setAutoIncrement(oldName, maxId + 1);
 
-            // 6. 鏇存柊/鏂板缓瑙嗗浘
+            // 7. 鏇存柊/鏂板缓瑙嗗浘
             // 閲嶆柊鑾峰彇鎵�鏈夎〃鍚嶏紙鍖呭惈鍒氭柊寤虹殑涓昏〃锛�
             List<String> allTables = patMedOuthospMapper.getAllOuthospTableNames();
             StringBuilder sb = new StringBuilder();
@@ -1196,6 +1246,9 @@
         PatArchive patArchive = new PatArchive();
         //濡傛灉鏄垰鍑虹敓鐨勫皬瀛╁瓙锛屾槸娌℃湁韬唤璇佺殑锛屾�庝箞澶勭悊锛燂紵锛燂紵锛燂紵锛燂紵
         patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM());
+        //濡傛灉韬唤璇佷负绌虹殑璇濓紝灏辩敤灏辫瘖鍗″彿浠f浛
+        if (StringUtils.isEmpty(externalInHospPatientInfo.getZhengJianHM()))
+            patArchive.setIdcardno(externalInHospPatientInfo.getJiuZhenKH());
         patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
         List<PatArchive> patArchives = null;
         if (ObjectUtils.isNotEmpty(patArchive.getIdcardno()))
@@ -1656,7 +1709,7 @@
                 log.info("鑽搧浜у湴浠锋牸鍏ュ弬绫诲瀷涓猴細{}", type);
                 return true;
             case "JZ_MZ_WanChengJZ":
-                log.info("瀹屾垚鎺ヨ瘖鍏ュ弬绫诲瀷涓猴細{}", type);
+                log.info("锛堥棬鎬ヨ瘖锛夊畬鎴愭帴璇婂叆鍙傜被鍨嬩负锛歿}", type);
                 return addFinshJZInfo(dataMap);
             case "JZ_ZY_RuYuanDJ":
                 log.info("鍏ラ櫌鐧昏鍏ュ弬绫诲瀷涓猴細{}", type);

--
Gitblit v1.9.3