From fce96ef468291fb9a0e6a4d34ab371315e9485d4 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期六, 03 十月 2026 00:59:44 +0800
Subject: [PATCH] ai优化

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java |   53 ++++++++++++++++++-----------------------------------
 1 files changed, 18 insertions(+), 35 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java
index 8eb5159..d61a930 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java
@@ -23,43 +23,14 @@
 public interface AppointmentMapper extends BaseMapperX<AppointmentDO> {
 
     default PageResult<AppointmentDO> selectPage(AppointmentPageReqVO reqVO) {
-        LambdaQueryWrapperX<AppointmentDO> wrapper = (LambdaQueryWrapperX<AppointmentDO>) new LambdaQueryWrapperX<AppointmentDO>()
-                .eqIfPresent(AppointmentDO::getPatId, reqVO.getPatId())
-                .likeIfPresent(AppointmentDO::getPatName, reqVO.getPatName())
-                .eqIfPresent(AppointmentDO::getPatGender, reqVO.getPatGender())
-                .eqIfPresent(AppointmentDO::getPatBirthday, reqVO.getPatBirthday())
-                .eqIfPresent(AppointmentDO::getPatMobile, reqVO.getPatMobile())
-                .eqIfPresent(AppointmentDO::getPatPhone, reqVO.getPatPhone())
-                .eqIfPresent(AppointmentDO::getPatIdentityId, reqVO.getPatIdentityId())
-                .eqIfPresent(AppointmentDO::getPatAddr, reqVO.getPatAddr())
-                .eqIfPresent(AppointmentDO::getPatDeptCode, reqVO.getPatDeptCode())
-                .eqIfPresent(AppointmentDO::getPatDeptDesc, reqVO.getPatDeptDesc())
-                .eqIfPresent(AppointmentDO::getPatWardCode, reqVO.getPatWardCode())
-                .eqIfPresent(AppointmentDO::getPatWardDesc, reqVO.getPatWardDesc())
-                .eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate())
-                .eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot())
-                .eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType())
-                .eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc())
-                .eqIfPresent(AppointmentDO::getPaid, reqVO.getPaid())
-                .eqIfPresent(AppointmentDO::getApplyNo, reqVO.getApplyNo())
-                .eqIfPresent(AppointmentDO::getEpisodeId, reqVO.getEpisodeId())
-                .inIfPresent(AppointmentDO::getStatus, reqVO.getStatus())
-                // 鏃堕棿鑼冨洿鏌ヨ锛屾敞鎰忚繖閲屽己鍒舵寚瀹氱被鍨嬩负 LambdaQueryWrapperX
-                .and(reqVO.getRegisterTime() != null, w -> {
-                    LocalDate today = LocalDate.now();
-                    if ("涓婂崍".equals(reqVO.getRegisterTime())) {
-                        w.between(AppointmentDO::getRegisterDate, today.atTime(5, 0, 0), today.atTime(13, 0, 0));
-                    } else if ("涓嬪崍".equals(reqVO.getRegisterTime())) {
-                        w.between(AppointmentDO::getRegisterDate, today.atTime(13, 0, 1), today.atTime(22, 0, 0));
-                    }
-                });
-
+        LambdaQueryWrapperX<AppointmentDO> wrapper = (LambdaQueryWrapperX<AppointmentDO>) new LambdaQueryWrapperX<AppointmentDO>().eqIfPresent(AppointmentDO::getPatId, reqVO.getPatId()).likeIfPresent(AppointmentDO::getPatName, reqVO.getPatName()).eqIfPresent(AppointmentDO::getPatGender, reqVO.getPatGender()).eqIfPresent(AppointmentDO::getPatBirthday, reqVO.getPatBirthday()).eqIfPresent(AppointmentDO::getPatMobile, reqVO.getPatMobile()).eqIfPresent(AppointmentDO::getPatPhone, reqVO.getPatPhone()).eqIfPresent(AppointmentDO::getPatIdentityId, reqVO.getPatIdentityId()).eqIfPresent(AppointmentDO::getPatAddr, reqVO.getPatAddr()).eqIfPresent(AppointmentDO::getPatDeptCode, reqVO.getPatDeptCode()).eqIfPresent(AppointmentDO::getPatDeptDesc, reqVO.getPatDeptDesc()).eqIfPresent(AppointmentDO::getPatWardCode, reqVO.getPatWardCode()).eqIfPresent(AppointmentDO::getPatWardDesc, reqVO.getPatWardDesc()).eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate()).eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot()).eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType()).eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc()).eqIfPresent(AppointmentDO::getPaid, reqVO.getPaid()).eqIfPresent(AppointmentDO::getApplyNo, reqVO.getApplyNo()).eqIfPresent(AppointmentDO::getEpisodeId, reqVO.getEpisodeId()).inIfPresent(AppointmentDO::getStatus, reqVO.getStatus())
+                // 鉁� 鏂板锛歝reateTime 鍖洪棿鏌ヨ
+                .betweenIfPresent(AppointmentDO::getCreateTime, reqVO.getCreateTimeStart(), reqVO.getCreateTimeEnd()).betweenIfPresent(AppointmentDO::getRegisterDate, reqVO.getRegisterDateStart(), reqVO.getRegisterDateEnd());
         // 鍔ㄦ�佹帓搴�
         if (reqVO.getOrderCreateTime() != null) {
             wrapper.orderByDesc(AppointmentDO::getCreateTime);
         } else {
-            wrapper.orderByAsc(AppointmentDO::getRegisterDate)
-                    .orderByAsc(AppointmentDO::getPatWardDesc);
+            wrapper.orderByAsc(AppointmentDO::getRegisterDate).orderByAsc(AppointmentDO::getPatWardDesc);
         }
         return selectPage(reqVO, wrapper);
     }
@@ -68,13 +39,12 @@
     @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now())")
     List<AppointmentDO> getCurrentPatId(String patId);
 
-    @Select("select * from lihu.appointment where (apply_no = #{code} or episode_id= #{code} or hospital_no =#{code} or pat_identity_id=#{code}) and to_days(book_date) = to_days(Now())")
+    @Select("select * from lihu.appointment where (apply_no = #{code} or episode_id= #{code} or hospital_no =#{code} or pat_identity_id=#{code}) and book_date >=  DATE_ADD(CURDATE(), INTERVAL -5 DAY)    AND book_date <=  DATE_ADD(CURDATE(), INTERVAL 15 DAY)")
     List<AppointmentDO> getCurrentCode(String code);
 
     @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(Now()) limit 1")
     AppointmentDO getByPatAndCheckTypeAndBookDate(@Param("patId") String patId, @Param("checkType") Integer checkType);
 
-    @Update("update lihu.appointment set status = #{status} " + "<if test='registerDate != null'>" + ", register_date = #{registerDate} " + "</if>" + "where apply_no = #{applyNo};")
     Integer updateStatusByApplyNo(@Param("applyNo") String applyNo, @Param("status") String status, @Param("registerDate") Date registerDate);
 
     @Select("select * from lihu.appointment where episode_id = #{episodeId} and apply_no = #{applyNo} limit 1")
@@ -82,5 +52,18 @@
 
     @Select("select * from lihu.appointment where apply_no = #{applyNo} limit 1")
     AppointmentDO getByApplyNo(@Param("applyNo") String applyNo);
+
+    /**
+     * 銆愰渶姹�1銆戞寜鐢宠鍙锋壒閲忔煡璇紝渚涘垪琛ㄩ〉涓�娆℃�у洖濉偅鑰呬俊鎭紝閬垮厤 N+1 鏌ヨ銆�
+     *
+     * @param applyNoList 鐢宠鍙峰垪琛紙璋冪敤鏂归渶淇濊瘉闈炵┖锛孧ySQL 鐨� IN () 浼氳娉曢敊璇級
+     */
+    @Select("<script>" +
+            "select * from lihu.appointment where deleted = 0 and apply_no in (" +
+            " <foreach collection='applyNoList' separator=',' item='_applyNo'>" +
+            "   #{_applyNo} " +
+            " </foreach> )" +
+            "</script>")
+    List<AppointmentDO> getByApplyNoList(@Param("applyNoList") List<String> applyNoList);
 }
 

--
Gitblit v1.9.3