mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<?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.panzhihua.service_community.dao.ComMngBuildingDAO">
 
    <resultMap type="com.panzhihua.service_community.model.dos.ComMngBuildingDO" id="ComMngBuildingBaseResultMap">
        <result property="id" column="id"/>
        <result property="streetId" column="street_id"/>
        <result property="actId" column="act_id"/>
        <result property="villageId" column="village_id"/>
        <result property="name" column="name"/>
        <result property="buildFloorSum" column="build_floor_sum"/>
        <result property="everyFloorSum" column="every_floor_sum"/>
        <result property="buildUserSum" column="build_user_sum"/>
        <result property="buildType" column="build_type"/>
        <result property="buildStructure" column="build_structure"/>
        <result property="useType" column="use_type"/>
        <result property="buildDate" column="build_date"/>
        <result property="unitTotal" column="unit_total"/>
        <result property="elevatorTotal" column="elevator_total"/>
        <result property="buildStatus" column="build_status"/>
        <result property="path" column="path"/>
        <result property="lng" column="lng"/>
        <result property="lat" column="lat"/>
        <result property="buildingResponsible" column="building_responsible"/>
        <result property="buildingResponsibleCardNo" column="building_responsible_card_no"/>
        <result property="buildingResponsiblePhone" column="building_responsible_phone"/>
        <result property="buildingResponsibleType" column="building_responsible_type"/>
        <result property="createAt" column="create_at"/>
        <result property="updateAt" column="update_at"/>
        <result property="remark" column="remark"/>
        <result property="gridId" column="grid_id"/>
    </resultMap>
 
    <select id="find" resultType="String">
        select distinct concat(alley,house_num,'号',IFNULL(unit_no,0),'栋') from com_mng_population_house   where id in (${id})
    </select>
 
    <select id="findByVillage" resultType="String">
        select distinct concat(alley,house_num,'号') from com_mng_village   where village_id in (${id})
    </select>
 
    <resultMap id="selectMap" type="com.panzhihua.common.model.vos.community.VillageVO">
        <result property="value" column="villageId"/>
        <result property="label" column="villageName"/>
        <collection property="children" ofType="com.panzhihua.common.model.vos.community.BuildingVO"
                    column="{village_id = village_id}"
                    javaType="java.util.ArrayList">
            <result property="value" column="id"/>
            <result property="label" column="name"/>
        </collection>
    </resultMap>
 
    <select id="select" resultMap="selectMap">
        select t.village_id as villageId,t.name as villageName,t1.id,t1.name  from com_mng_village t left join com_mng_building t1 on t.village_id = t1.village_id where t.community_id = ${id} and t1.id is not null
    </select>
 
    <select id="pageBuildingAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
        SELECT
            cmb.id,
            cmv.village_id,
            cmv.alley,
            cmb.`name`,
            cmv.`name` AS villageName,
            cmv.house_num as doorNum,
            (select count(distinct unit_no) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name`) as unit_total,
            (select max(CAST(house_no as SIGNED)) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null) as buildFloorSum,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` ) as houseNum,
            (select count(id) from com_mng_population where village_id = cmb.village_id and floor = cmb.`name`) as populationNum
        FROM
            com_mng_building AS cmb
            inner JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
            <where>
                <if test="pageBuildingListDto.communityId != null">
                    and cmb.act_id = #{pageBuildingListDto.communityId}
                </if>
                <if test="pageBuildingListDto.villageId != null">
                    and cmb.village_id = #{pageBuildingListDto.villageId}
                </if>
                <if test="pageBuildingListDto.keyWord != null and pageBuildingListDto.keyWord != &quot;&quot;">
                    and cmv.alley like concat(#{pageBuildingListDto.keyWord},'%')
                </if>
            </where>
        order by cmb.id desc
    </select>
 
    <select id="buildingListHeaderStatisticsAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo">
        SELECT count( id ) AS buildNum,( SELECT count( id ) FROM com_mng_population_house WHERE community_id = cmb.act_id ) AS houseNum,
        ( SELECT count( id ) FROM com_mng_population_community_tags WHERE community_id = cmb.act_id ) AS populationNum
        FROM
            com_mng_building AS cmb
        WHERE
            cmb.act_id = #{communityId}
    </select>
 
    <select id="detailBuildAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo">
        SELECT
            cmb.id,
            cmv.alley,
            cmv.house_num AS doorNum,
            cmb.`name`,
            cmv.`name` AS villageName,
            cmv.village_id,
            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null) AS houseNum,
            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 1 ) AS liveTotal,
            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 2 ) AS leaseTotal,
            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 3 ) AS vacantNum
        FROM
            com_mng_building AS cmb
            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
            where cmb.id = #{id}
    </select>
 
    <select id="buildingUnitList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO">
        SELECT DISTINCT
            village_id,
            floor,
            unit_no
        FROM
            com_mng_population_house AS cmph
        WHERE
            village_id = #{villageId} and floor = #{floor}
    </select>
 
    <select id="getBuildingUnitHouseList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO">
        SELECT id, floor, unit_no, house_no, `status`,floor_num as buildingNum,
        ( SELECT count( id ) FROM com_mng_population_house_user WHERE house_id = cmph.id ) AS userNum
        FROM
            com_mng_population_house AS cmph
        where cmph.village_id = #{pageBuildingListDto.villageId}
         and cmph.floor = #{pageBuildingListDto.floor}
          and cmph.unit_no = #{pageBuildingListDto.unit}
          and cmph.house_no is not null
 
          order by house_no,floor_num ASC
    </select>
 
    <select id="getBuildingUnitHouseStatistics" resultType="Map">
        SELECT
            count( id ) as houseNum,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 1) as liveTotal,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 2) as leaseTotal,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 3) as vacantNum
        FROM
            com_mng_population_house
        WHERE
            village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null
    </select>
 
    <select id="buildingUnitHouseDetailAdmin" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO">
        SELECT
            cmph.id,
            cmv.`name` AS villageName,
            cmph.floor,
            cmph.unit_no,
            cmph.house_no,
            cmph.address,
            cmph.`status`,
            cmv.lat,
            cmv.lng
        FROM
            com_mng_population_house AS cmph
            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id
        WHERE
            cmph.id = #{houseId}
    </select>
 
    <select id="getGridVillageBuildingPopulationList" resultType="com.panzhihua.common.model.vos.grid.PopulationListVO">
        SELECT
            cmp.id,
            cmphu.id AS housePopulationId,
            cmp.sex,
            cmp.`name`,
            IFNULL( cmp.phone, '暂无' ) AS phone,
            cmp.card_no,
            cmpct.label,
            cmp.address,
            cmp.nation,
            cmphu.create_at,
            cmphu.relation_id,
            cmp.political_outlook
        FROM
            com_mng_population_house_user AS cmphu
            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmphu.popul_id
            LEFT JOIN com_mng_population_community_tags AS cmpct ON cmp.id = cmpct.population_id and community_id = ${communityId}
        WHERE
            cmphu.house_id = #{houseId}
        <if test='relation != null '>
           AND cmphu.relation = #{relation}
        </if>
        <if test='relationId != null '>
           AND cmphu.relation_id = #{relationId}
        </if>
        group by id
    </select>
 
    <select id="buildingVillageListAdmin" resultType="com.panzhihua.common.model.vos.community.ComMngVillageVO">
        SELECT
            village_id,
            alley,
            house_num,
            `name`
        FROM
            com_mng_village
        WHERE
            community_id = ${communityId}
    </select>
 
    <select id="getBuildListByVillageId" resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
        SELECT
            cmb.id,
            cmb.`name`
        FROM
            com_mng_building AS cmb
        WHERE
            cmb.village_id = #{villageId}
    </select>
 
</mapper>