From 732024c03df1d810b8f5a8a526066967f1bfbb5d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 26 六月 2026 17:53:27 +0800
Subject: [PATCH] 南华部分功能提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java |   44 ++++++++++++++++++++++++++------------------
 1 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
index 9c7d054..fa8c0f0 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -74,6 +74,10 @@
     @Value("${lwl_app_key}")
     private String APP_KEY;
 
+
+    @Value("${spring.profiles.active}")
+    private String active;
+
     @Override
     public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) {
         try {
@@ -783,6 +787,16 @@
         patMedInhosp.setCampusid(dto.getCampusId());
         if (StringUtils.isNotEmpty(dto.getHealthcareRecordStatus()) && dto.getHealthcareRecordStatus().equals("FH0109.25"))
             patMedInhosp.setRemark("棰勫嚭闄�");
+        if (active.equals("nhfy") && dto.getAreaId() != null && dto.getAreaId().toString().equals("40003483") && StringUtils.isNotEmpty(patMedInhosp.getPatname())) {
+            //鍗楀崕闄勪竴鐨勪骇绉戯紝瑕佹眰涓嶇敓鎴愨�滀箣瀛愩�佷箣濂炽�佷箣濠粹�濈殑闅忚浠诲姟
+            if (patMedInhosp.getPatname().contains("涔嬪瓙") || patMedInhosp.getPatname().contains("涔嬪コ") || patMedInhosp.getPatname().contains("涔嬪┐")) {
+                patMedInhosp.setDeptcheckFlag("3");
+                patMedInhosp.setWardcheckFlag("3");
+                patMedInhosp.setDiagcheckFlag("3");
+                patMedInhosp.setRemark(patMedInhosp.getRemark() + ";涓嶇敓鎴愪箣瀛愩�佷箣濂炽�佷箣濠撮棶鍗�");
+            }
+        }
+
         return patMedInhosp;
     }
 
@@ -815,12 +829,11 @@
      */
     private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto) {
         // 鏋勫缓閿佺殑 key锛氬熀浜� patientno 鎴� idcardno
-        String lockKey = "pat_archive_lock:" + 
-            (StringUtils.isNotEmpty(dto.getMedicalRecordNo()) ? dto.getMedicalRecordNo() : dto.getIdCardNo());
-        
+        String lockKey = "pat_archive_lock:" + (StringUtils.isNotEmpty(dto.getMedicalRecordNo()) ? dto.getMedicalRecordNo() : dto.getIdCardNo());
+
         // 灏濊瘯鑾峰彇鍒嗗竷寮忛攣锛屾渶澶氱瓑寰� 3 绉掞紝閿佸畾 10 绉掕嚜鍔ㄩ噴鏀�
         Boolean lockAcquired = redisTemplate.opsForValue().setIfAbsent(lockKey, "1", 10, TimeUnit.SECONDS);
-        
+
         if (lockAcquired == null || !lockAcquired) {
             log.warn("銆恜rocessPatientArchive銆戣幏鍙栧垎甯冨紡閿佸け璐ワ紝璺宠繃鏈澶勭悊锛堝叾浠栫嚎绋嬫鍦ㄥ鐞嗭級锛宲atientno={}", dto.getMedicalRecordNo());
             // 绛夊緟涓�娈垫椂闂村悗閲嶈瘯鏌ヨ
@@ -830,7 +843,7 @@
                 Thread.currentThread().interrupt();
             }
         }
-        
+
         try {
             return doProcessPatientArchive(dto);
         } finally {
@@ -865,9 +878,8 @@
         }
 
         PatArchive patArchive = buildPatientArchive(dto);
-        log.info("銆恜rocessPatientArchive銆戞偅鑰呮。妗堟煡閲嶅畬鎴愶紝patientno={}, 鏄惁宸插瓨鍦�={}", 
-            patArchive.getPatientno(), CollectionUtils.isEmpty(existingArchives) ? "鍚�" : "鏄�(id=" + existingArchives.get(0).getId() + ")");
-        
+        log.info("銆恜rocessPatientArchive銆戞偅鑰呮。妗堟煡閲嶅畬鎴愶紝patientno={}, 鏄惁宸插瓨鍦�={}", patArchive.getPatientno(), CollectionUtils.isEmpty(existingArchives) ? "鍚�" : "鏄�(id=" + existingArchives.get(0).getId() + ")");
+
         if (CollectionUtils.isEmpty(existingArchives)) {
             try {
                 // 鏈�缁堢‘璁ゆ煡璇紙闃插尽鎬х紪绋嬶細闃叉Redis閿佸け鏁堢瓑鏋佺鎯呭喌锛�
@@ -878,15 +890,13 @@
                 if (StringUtils.isNotEmpty(dto.getMedicalRecordNo())) {
                     finalQuery.setPatientno(dto.getMedicalRecordNo());
                 }
-                
+
                 List<PatArchive> finalCheck = patArchiveService.selectPatArchiveList(finalQuery);
-                log.info("銆恜rocessPatientArchive銆戞渶缁堢‘璁ゆ煡璇紝patientno={}, idcardno={}, 缁撴灉鏁伴噺={}", 
-                    dto.getMedicalRecordNo(), dto.getIdCardNo(), finalCheck.size());
-                
+                log.info("銆恜rocessPatientArchive銆戞渶缁堢‘璁ゆ煡璇紝patientno={}, idcardno={}, 缁撴灉鏁伴噺={}", dto.getMedicalRecordNo(), dto.getIdCardNo(), finalCheck.size());
+
                 if (CollectionUtils.isEmpty(finalCheck)) {
                     patArchiveService.insertPatArchive(patArchive);
-                    log.info("銆恜rocessPatientArchive銆戔湏 鏂板鎮h�呮。妗堟垚鍔燂紝patientno={}, id={}", 
-                        patArchive.getPatientno(), patArchive.getId());
+                    log.info("銆恜rocessPatientArchive銆戔湏 鏂板鎮h�呮。妗堟垚鍔燂紝patientno={}, id={}", patArchive.getPatientno(), patArchive.getId());
                 } else {
                     // 鍏朵粬绾跨▼宸茬粡鎻掑叆锛岀洿鎺ヤ娇鐢ㄥ凡鏈夎褰�
                     existingArchives = finalCheck;
@@ -896,8 +906,7 @@
                     log.info("銆恜rocessPatientArchive銆戞。妗堝凡琚叾浠栫嚎绋嬪垱寤猴紝浣跨敤宸叉湁璁板綍锛宨d={}", patArchive.getId());
                 }
             } catch (org.springframework.dao.DuplicateKeyException e) {
-                log.warn("銆恜rocessPatientArchive銆戞偅鑰呮。妗堝凡瀛樺湪(骞跺彂鎻掑叆寮傚父)锛岃烦杩囷細patientno={}, idcardno={}", 
-                    patArchive.getPatientno(), patArchive.getIdcardno());
+                log.warn("銆恜rocessPatientArchive銆戞偅鑰呮。妗堝凡瀛樺湪(骞跺彂鎻掑叆寮傚父)锛岃烦杩囷細patientno={}, idcardno={}", patArchive.getPatientno(), patArchive.getIdcardno());
                 // 骞跺彂鎻掑叆鍦烘櫙锛岄噸鏂版煡璇㈣幏鍙栧凡瀛樺湪鐨勮褰�
                 PatArchive queryRetry = new PatArchive();
                 queryRetry.setPatientno(patArchive.getPatientno());
@@ -917,8 +926,7 @@
             patArchive.setNotrequiredFlag(existingArchives.get(0).getNotrequiredFlag());
             patArchive.setNotrequiredreason(existingArchives.get(0).getNotrequiredreason());
             patArchiveService.updateArchive(patArchive);
-            log.info("銆恜rocessPatientArchive銆戔湏 鏇存柊鎮h�呮。妗堬紝patientno={}, id={}", 
-                patArchive.getPatientno(), patArchive.getId());
+            log.info("銆恜rocessPatientArchive銆戔湏 鏇存柊鎮h�呮。妗堬紝patientno={}, id={}", patArchive.getPatientno(), patArchive.getId());
         }
 
         return patArchive;

--
Gitblit v1.9.3