wlzboy
2025-11-05 37de2f4b0f732ca5c19582d4a340ad7c987925b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.HospDataMapper">
    
    <resultMap type="HospData" id="HospDataResult">
        <result property="hospId" column="HospID" />
        <result property="hospName" column="HospName" />
        <result property="hospCityId" column="HospCityID" />
        <result property="hospShort" column="HospShort" />
        <result property="hopsProvince" column="HopsProvince" />
        <result property="hopsCity" column="HopsCity" />
        <result property="hopsArea" column="HopsArea" />
        <result property="hospAddress" column="HospAddress" />
        <result property="hospTel" column="HospTEL" />
        <result property="hospUnitId" column="HospUnitID" />
        <result property="hospState" column="HospState" />
        <result property="hospOaId" column="HospOAID" />
        <result property="hospIntroducerId" column="HospIntroducerID" />
        <result property="hospIntroducerDate" column="HospIntroducerDate" />
        <result property="hospLevel" column="HospLevel" />
    </resultMap>
 
    <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 (
            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
    </select>
    
    <select id="selectHospDataById" parameterType="Integer" resultMap="HospDataResult">
        SELECT 
            HospID, HospName, HospCityID, HospShort, 
            HopsProvince, HopsCity, HopsArea, HospAddress, 
            HospTEL, HospUnitID, HospState, HospOAID, 
            HospIntroducerID, HospIntroducerDate, HospLevel
        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>
    
    <!-- 查询常用转入医院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>