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 |   77 +++++++++++++++++++++++++-------------
 1 files changed, 51 insertions(+), 26 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 23f6de5..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
@@ -1,13 +1,18 @@
 package cn.lihu.jh.module.ecg.dal.mysql.appointment;
 
-import java.util.*;
-
 import cn.lihu.jh.framework.common.pojo.PageResult;
-import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
+import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentPageReqVO;
 import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO;
 import org.apache.ibatis.annotations.Mapper;
-import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 棰勭害 Mapper
@@ -18,27 +23,47 @@
 public interface AppointmentMapper extends BaseMapperX<AppointmentDO> {
 
     default PageResult<AppointmentDO> selectPage(AppointmentPageReqVO reqVO) {
-        return selectPage(reqVO, 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::getPatBedNo, reqVO.getPatBedNo())
-                .eqIfPresent(AppointmentDO::getBookId, reqVO.getBookId())
-                .eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate())
-                .eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot())
-                .betweenIfPresent(AppointmentDO::getBookTime, reqVO.getBookTime())
-                .eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType())
-                .eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc())
-                .orderByDesc(AppointmentDO::getId));
+        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);
+        }
+        return selectPage(reqVO, wrapper);
     }
 
-}
\ No newline at end of file
+
+    @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 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);
+
+    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")
+    AppointmentDO getByEpisodeIdAndApplyNo(@Param("episodeId") String episodeId, @Param("applyNo") String applyNo);
+
+    @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