From 138f31f7ed04842abca552dc8eaa912b3191e059 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 28 九月 2026 10:56:49 +0800
Subject: [PATCH] 处理患者再入院状态代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java |   25 ++++++++++++++++++++++++-
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml                           |   12 ++++++++++++
 smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java                           |   13 +++++++++++++
 3 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
index aab7663..329696a 100644
--- a/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
@@ -1,5 +1,6 @@
 package com.smartor.mapper;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -28,6 +29,18 @@
 
     public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp);
 
+    /**
+     * 鎸夋偅鑰呯紪鍙� + 鍑洪櫌鏃ユ湡鏌ヨ鍑洪櫌璁板綍锛堝嚭闄㈡椂闂村彧姣旇緝鍒板ぉ锛屼笉姣旇緝鏃跺垎绉掞級
+     *
+     * @param patno    鎮h�呯紪鍙�
+     * @param dayStart 鏌ヨ鏃ユ湡锛堝綋澶� 00:00:00锛�
+     * @param dayEnd   鏌ヨ鏃ユ湡鐨勬鏃� 00:00:00
+     * @return 鍑洪櫌璁板綍闆嗗悎锛屾寜 inhospid 鍊掑簭
+     */
+    public List<PatMedInhosp> selectOutInhospByPatnoAndOutDate(@Param("patno") String patno,
+                                                               @Param("dayStart") Date dayStart,
+                                                               @Param("dayEnd") Date dayEnd);
+
     public String getTagnameBypatid(Long patid);
 
     /**
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 00b3a3f..d2d357c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -90,6 +90,8 @@
     private ServiceSubtaskServiceImpl serviceSubtaskServiceImpl;
     @Autowired
     private ServiceSubtaskMapper serviceSubtaskMapper;
+    @Autowired
+    private PatMedInhospMapper patMedInhospMapper;
 
     @Override
     public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) {
@@ -716,7 +718,8 @@
                     if (CollectionUtils.isNotEmpty(patMedInhospList)) {
                         //濡傛灉涓嶄负绌猴紝鍒欏皢鍏ラ櫌鏃堕棿杩涜鏇存柊
                         PatMedInhosp pmOut = patMedInhospList.get(0);
-                        PatMedInhosp pmIn = existingInhosps.get(0);
+                        //鏈鍏ラ櫌鏁版嵁锛堣繖閲� existingInhosps 蹇呬负绌猴紝鍙� existingInhosps.get(0) 浼氫笅鏍囪秺鐣岋級
+                        PatMedInhosp pmIn = patMedInhosp;
                         pmOut.setStarttime(pmIn.getStarttime());
                         pmOut.setUpdateTime(new Date());
                         patMedInhospService.updatePatMedInhosp(pmOut);
@@ -728,6 +731,26 @@
                                 serviceSubtask.setSendstate(4L);
                                 serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
                             }
+                            //閫氳繃鍏ラ櫌鏃堕棿锛屽拰鎮h�呯殑缂栧彿鍘绘煡涓�涓嬪嚭闄㈡椂闂达紝鏄惁瀛樺湪锛屽鏋滃瓨鍦紝鍒欒鎮h�呮槸鍐嶅叆闄㈢殑锛岄渶瑕佹敼鎴愪笉鎵ц
+                            //鍑洪櫌鏃堕棿鍙瘮杈冨埌澶╋紝涓嶆瘮杈冩椂鍒嗙
+                            if (pmIn.getStarttime() != null) {
+                                Date dayStart = DateUtils.truncate(pmIn.getStarttime(), Calendar.DAY_OF_MONTH);
+                                Date dayEnd = DateUtils.addDays(dayStart, 1);
+                                List<PatMedInhosp> outInhosps = patMedInhospMapper.selectOutInhospByPatnoAndOutDate(
+                                        StringUtils.trim(pmIn.getPatno()), dayStart, dayEnd);
+                                if (CollectionUtils.isNotEmpty(outInhosps)) {
+                                    //瀛樺湪鍑洪櫌璁板綍锛岃鏄庤鎮h�呮槸鍐嶅叆闄紝鎶婁笂涓�娆″嚭闄骇鐢熺殑瀛愪换鍔℃敼鎴愪笉鎵ц
+                                    ServiceSubtask outSubtask = new ServiceSubtask();
+                                    outSubtask.setInhospid(outInhosps.get(0).getInhospid());
+                                    outSubtask.setSendstate(4L);
+                                    outSubtask.setRemark("鎮h�呭啀鍏ラ櫌");
+                                    outSubtask.setUpdateTime(new Date());
+                                    serviceSubtaskMapper.updateServiceSubtaskByCondition(outSubtask);
+                                    log.info("鎮h�呭啀鍏ラ櫌锛屽皢涓婃鍑洪櫌璁板綍鐨勫瓙浠诲姟鏀逛负涓嶆墽琛岋細patno={}, 鍑洪櫌inhospid={}, 鍑洪櫌鏃堕棿={}, 鏈鍏ラ櫌鏃堕棿={}",
+                                            pmIn.getPatno(), outInhosps.get(0).getInhospid(), outInhosps.get(0).getEndtime(), pmIn.getStarttime());
+                                }
+                            }
+
                         } catch (Exception e) {
                             log.error("灏嗗嚭闄㈡椂闂寸瓑浜庡叆闄㈡椂闂寸殑inhospid鐨勪换鍔℃洿鏂板け璐ヤ簡, inhospid={}", pmOut.getInhospid(), e);
                         }
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 757dddc..9dbf769 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -762,6 +762,18 @@
     </select>
 
 
+    <!-- 鎸夋偅鑰呯紪鍙� + 鍑洪櫌鏃ユ湡鏌ヨ鍑洪櫌璁板綍锛堝嚭闄㈡椂闂村彧姣旇緝鍒板ぉ锛屼笉姣旇緝鏃跺垎绉掞級锛岀敤浜庡垽鏂偅鑰呮槸鍚﹀啀鍏ラ櫌 -->
+    <select id="selectOutInhospByPatnoAndOutDate" resultMap="PatMedInhospResult">
+        <include refid="selectPatMedInhospVo"/>
+        where del_flag = 0
+        and inhospstate = '1'
+        <if test="patno != null and patno != ''">and patno = #{patno}</if>
+        <if test="dayStart != null">and endtime &gt;= #{dayStart}</if>
+        <if test="dayEnd != null">and endtime &lt; #{dayEnd}</if>
+        order by inhospid desc
+    </select>
+
+
     <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true"
             keyProperty="inhospid">
         insert into pat_med_inhosp

--
Gitblit v1.9.3