From 4dd78acfe298217ebc5dd247c5b45c6f33deea9b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 08 十一月 2025 22:43:14 +0800
Subject: [PATCH] feat:医院选择计算
---
ruoyi-system/src/main/resources/mapper/system/HospDataMapper.xml | 77 +++++++++++++++++++++++++++++++++++---
1 files changed, 71 insertions(+), 6 deletions(-)
diff --git a/ruoyi-system/src/main/resources/mapper/system/HospDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/HospDataMapper.xml
index 6be16ba..d0de80d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/HospDataMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/HospDataMapper.xml
@@ -22,21 +22,40 @@
<result property="hospLevel" column="HospLevel" />
</resultMap>
- <select id="searchHospitals" parameterType="String" resultMap="HospDataResult">
- SELECT TOP 50
+ <select id="searchHospitals" resultMap="HospDataResult">
+ SELECT TOP 1000
HospID, HospName, HospCityID, HospShort,
HopsProvince, HopsCity, HopsArea, HospAddress,
HospTEL, HospUnitID, HospState, HospOAID,
HospIntroducerID, HospIntroducerDate, HospLevel
FROM HospData
WHERE 1=1
+ <!-- 鏈� keyword 灏卞彧鐢� keyword锛屼笉鐢� region -->
<if test="keyword != null and keyword != ''">
- AND (HospName LIKE '%' + #{keyword} + '%'
- OR HospAddress LIKE '%' + #{keyword} + '%'
- OR HospShort LIKE '%' + #{keyword} + '%')
+ AND (
+ HopsProvince LIKE '%' + #{keyword} + '%'
+ OR HopsCity LIKE '%' + #{keyword} + '%'
+ OR HopsArea LIKE '%' + #{keyword} + '%'
+ OR HospAddress LIKE '%' + #{keyword} + '%'
+ OR HospName LIKE '%' + #{keyword} + '%'
+ OR HospShort LIKE '%' + #{keyword} + '%'
+ )
+ </if>
+ <!-- 娌℃湁 keyword 鏃舵墠鐢� region -->
+ <if test="(keyword == null or keyword == '') and (region != null and region != '')">
+ AND (
+ HopsProvince LIKE '%' + #{region} + '%'
+ OR HopsCity LIKE '%' + #{region} + '%'
+ OR HopsArea LIKE '%' + #{region} + '%'
+ OR HospAddress LIKE '%' + #{region} + '%'
+ OR HospName LIKE '%' + #{region} + '%'
+ OR HospShort LIKE '%' + #{region} + '%'
+ )
</if>
AND (HospState IS NULL OR HospState = 1)
- ORDER BY HospName
+ ORDER BY
+ CASE WHEN HospName = '瀹朵腑' THEN 0 ELSE 1 END,
+ HospName
</select>
<select id="selectHospDataById" parameterType="Integer" resultMap="HospDataResult">
@@ -48,4 +67,50 @@
FROM HospData
WHERE HospID = #{hospId}
</select>
+
+ <!-- 鏌ヨ甯哥敤杞嚭鍖婚櫌ID鍒楄〃 -->
+ <select id="selectFrequentOutHospitalIds" resultType="java.lang.Integer">
+ select ServiceOrdPtOutHospID from (
+ select ServiceOrdPtOutHospID,count(1) as InCount from ServiceOrder
+ where ServiceOrdClass=#{serviceOrdClass} and ServiceOrdPtOutHospID>0
+ group by ServiceOrdPtOutHospID
+ ) as t
+ order by InCount desc
+ </select>
+ <select id="getHomeHospId" resultType="java.lang.Integer">
+ select HospID from HospData where HospName='瀹朵腑'
+ </select>
+
+ <!-- 鏌ヨ甯哥敤杞叆鍖婚櫌ID鍒楄〃 -->
+ <select id="selectFrequentInHospitalIds" resultType="java.lang.Integer">
+ select ServiceOrdPtInHospID from (
+ select ServiceOrdPtInHospID,count(1) as InCount from ServiceOrder
+ where ServiceOrdClass=#{serviceOrdClass} and ServiceOrdPtInHospID>0
+ group by ServiceOrdPtInHospID
+ ) as t
+ order by InCount desc
+ </select>
+
+ <!-- 鏍规嵁鍖婚櫌ID鍒楄〃鏌ヨ鍖婚櫌淇℃伅 -->
+ <select id="selectHospDataByIds" resultMap="HospDataResult">
+ SELECT
+ HospID, HospName, HospCityID, HospShort,
+ HopsProvince, HopsCity, HopsArea, HospAddress,
+ HospTEL, HospUnitID, HospState, HospOAID,
+ HospIntroducerID, HospIntroducerDate, HospLevel
+ FROM HospData
+ WHERE HospID IN
+ <foreach collection="hospIds" item="hospId" open="(" separator="," close=")">
+ #{hospId}
+ </foreach>
+ <if test="region != null and region != ''">
+ AND (
+ HopsProvince LIKE '%' + #{region} + '%'
+ OR HopsCity LIKE '%' + #{region} + '%'
+ OR HopsArea LIKE '%' + #{region} + '%'
+ )
+ </if>
+ AND (HospState IS NULL OR HospState = 1)
+ ORDER BY HospName
+ </select>
</mapper>
--
Gitblit v1.9.1