Your Name
2023-06-01 1f7e1f0a74157bc0f0ac4ba9a2b1c11242446874
java110-db/src/main/resources/mapper/report/ReportFeeStatisticsServiceDaoImplMapper.xml
@@ -6,7 +6,7 @@
    <!-- 查询历史欠费 -->
    <select id="getHisMonthOweFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) hisOweFee
        select ifnull(sum(t.receivable_amount),0.0) hisOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
@@ -40,13 +40,14 @@
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        and t.status_cd = '0'
        and t.detail_id = '-1'
        and t.community_id= #{communityId}
        and t.cur_month_time &lt; #{startDate}
    </select>
    <!-- 查询单月欠费 -->
    <select id="getCurMonthOweFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) curOweFee
        select ifnull(sum(t.receivable_amount),0.0) curOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
@@ -80,11 +81,51 @@
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        and t.status_cd = '0'
        and t.detail_id = '-1'
        and t.community_id= #{communityId}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &gt;= #{startDate}
        and t.cur_month_time &lt; #{endDate}
    </select>
    <select id="getOweFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.receivable_amount),0.0) oweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        where
        1=1
        <if test="floorId != null and floorId != ''">
            and bu.floor_id = #{floorId}
        </if>
        <if test="configId != null and configId != ''">
            and t.config_id = #{configId}
        </if>
        <if test="objName != null and objName != ''">
            and t.obj_name like concat('%',#{objName},'%')
        </if>
        <if test="ownerName != null and ownerName != ''">
            and t.owner_name like concat('%',#{ownerName},'%')
        </if>
        <if test="link != null and link != ''">
            and t.link = #{link}
        </if>
        <if test="configIds !=null ">
            and t.config_id in
            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        and t.status_cd = '0'
        and t.detail_id = '-1'
        and t.community_id= #{communityId}
        and t.cur_month_time &lt; #{endDate}
    </select>
    <!-- 查询当月应收 -->
    <select id="getCurReceivableFee" parameterType="Map" resultType="Map">
@@ -123,7 +164,7 @@
        </if>
        and t.status_cd = '0'
        and t.community_id= #{communityId}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &gt;= #{startDate}
        and t.cur_month_time &lt; #{endDate}
    </select>
@@ -164,9 +205,9 @@
        </if>
        and t.status_cd = '0'
        and t.community_id= #{communityId}
        and t.pay_fee_time &gt;  #{startDate}
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.cur_month_time &lt;  #{startDate}
        and t.cur_month_time &lt; #{startDate}
    </select>
    <!-- 查询 预交费用 -->
@@ -206,18 +247,21 @@
        </if>
        and t.status_cd = '0'
        and t.community_id= #{communityId}
        and t.pay_fee_time &gt;  #{startDate}
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.cur_month_time &gt;  #{endDate}
        and t.cur_month_time &gt; #{endDate}
    </select>
    <!-- 查询实收费用 -->
    <select id="getReceivedFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail_month t
        from pay_fee_detail t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        left join pay_fee_attrs pfa on pf.fee_id = pfa.fee_id and pfa.status_cd = '0' and pfa.spec_cd = '390008'
        left join pay_fee_attrs pfa1 on pf.fee_id = pfa1.fee_id and pfa1.status_cd = '0' and pfa1.spec_cd = '390009'
        left join pay_fee_attrs pfa2 on pf.fee_id = pfa2.fee_id and pfa2.status_cd = '0' and pfa2.spec_cd = '390012'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            LEFT JOIN building_room br on pf.payer_obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        where
@@ -229,16 +273,16 @@
            and t.config_id = #{configId}
        </if>
        <if test="objName != null and objName != ''">
            and t.obj_name like concat('%',#{objName},'%')
            and pfa2.value like concat('%',#{objName},'%')
        </if>
        <if test="ownerName != null and ownerName != ''">
            and t.owner_name like concat('%',#{ownerName},'%')
            and pfa.value like concat('%',#{ownerName},'%')
        </if>
        <if test="link != null and link != ''">
            and t.link = #{link}
            and pfa1.value = #{link}
        </if>
        <if test="configIds !=null ">
            and t.config_id in
            and pf.config_id in
            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
                #{item}
            </foreach>
@@ -248,23 +292,23 @@
        </if>
        and t.status_cd = '0'
        and t.community_id= #{communityId}
        and t.pay_fee_time &gt;  #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 查询欠费户数 -->
    <select id="getOweRoomCount" parameterType="Map" resultType="Map">
        select count(1) oweRoomCount
        from
        (
        select t.obj_id from pay_fee_detail_month t
        from (
        select a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
            left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        where
        1=1
        where 1=1
        <if test="floorId != null and floorId != ''">
            and bu.floor_id = #{floorId}
        </if>
@@ -289,28 +333,27 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id= #{communityId}
        and t.cur_month_time &lt; #{endDate}
        and (t.receivable_amount - t.received_amount - t.discount_amount) > 0
        group by t.obj_id
        group by a.room_id
        ) a
    </select>
    <!-- 查询收费户数 -->
    <select id="getFeeRoomCount" parameterType="Map" resultType="Map">
        select count(1) feeRoomCount
        from
        (
        select t.obj_id from pay_fee_detail_month t
        from (
        select a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
            left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        where
        1=1
        where 1=1
        <if test="floorId != null and floorId != ''">
            and bu.floor_id = #{floorId}
        </if>
@@ -335,11 +378,11 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id= #{communityId}
        and t.cur_month_time &lt; #{endDate}
        group by t.obj_id
        group by a.room_id
        ) a
    </select>
@@ -349,14 +392,14 @@
        select a.floor_id floorId,a.floor_num floorNum,a.name floorName,
        (
        select count(1) from (
        select t.obj_id from pay_fee_detail_month t
        select bu.floor_id,a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id= a.community_id
        and t.cur_month_time &lt; #{endDate}
@@ -370,19 +413,20 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        group by t.obj_id) b
        ) oweRoomCount,-- 欠费户
        group by bu.floor_id,t.obj_id
        ) b
        where b.floor_id = a.floor_id
        ) oweRoomCount,
        (
        select count(1) from (
        select t.obj_id
        from pay_fee_detail_month t
        select bu.floor_id,a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id= a.community_id
        and t.cur_month_time &lt; #{endDate}
@@ -395,23 +439,25 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        group by t.obj_id) b
        ) feeRoomCount, -- 收费户
        group by bu.floor_id,t.obj_id
        ) b
        where b.floor_id = a.floor_id
        ) feeRoomCount,
        (
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail_month t
        from pay_fee_detail t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
        LEFT JOIN building_room br on pf.payer_obj_id = br.room_id and br.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
        <if test="configIds !=null ">
            and t.config_id in
            and pf.config_id in
            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
                #{item}
            </foreach>
@@ -419,7 +465,7 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        ) receivedFee, -- 实收
        ) receivedFee,
        (
        select ifnull(sum(t.received_amount),0.0) preReceivedFee
        from pay_fee_detail_month t
@@ -443,9 +489,9 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        ) preReceivedFee, -- 预收
        ) preReceivedFee,
        (
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) hisOweFee
        select ifnull(sum(t.receivable_amount),0.0) hisOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
@@ -455,6 +501,7 @@
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.detail_id = '-1'
        and t.cur_month_time &lt; #{startDate}
        <if test="configIds !=null ">
            and t.config_id in
@@ -465,7 +512,7 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        ) hisOweFee, -- 历史欠费
        ) hisOweFee,
        (
        select ifnull(sum(t.receivable_amount),0.0) curReceivableFee
        from pay_fee_detail_month t
@@ -477,7 +524,7 @@
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.cur_month_time  &gt; #{startDate}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &lt; #{endDate}
        <if test="configIds !=null ">
            and t.config_id in
@@ -488,7 +535,7 @@
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        ) curReceivableFee -- 当期应收
        ) curReceivableFee
        from f_floor a
        where 1=1
        and a.status_cd = '0'
@@ -500,20 +547,16 @@
        select a.name,
        (
        select count(1) from (
        select t.obj_id from pay_fee_detail_month t
        select pf.fee_type_cd,a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        <if test="floorId != null and floorId != ''">
            and bu.floor_id = a.floor_id
        </if>
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id=  #{communityId}
        and t.community_id= a.community_id
        and t.cur_month_time &lt; #{endDate}
        and (t.receivable_amount - t.received_amount - t.discount_amount) > 0
        <if test="configIds !=null ">
@@ -522,26 +565,25 @@
                #{item}
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        group by t.obj_id) b
        ) oweRoomCount,-- 欠费户
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        group by pf.fee_type_cd,t.obj_id
        ) b
        where b.fee_type_cd = a.status_cd
        ) oweRoomCount,
        (
        select count(1) from (
        select t.obj_id
        from pay_fee_detail_month t
        select pf.fee_type_cd,a.room_id
        from building_room a
        left join pay_fee_detail_month t on t.obj_id = a.room_id
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        left join building_unit bu on a.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        <if test="floorId != null and floorId != ''">
            and bu.floor_id = a.floor_id
        </if>
        and t.status_cd = '0'
        and a.status_cd = '0'
        and pf.payer_obj_type = '3333'
        and t.community_id=  #{communityId}
        and t.community_id= #{communityId}
        and t.cur_month_time &lt; #{endDate}
        <if test="configIds !=null ">
            and t.config_id in
@@ -549,15 +591,19 @@
                #{item}
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        group by t.obj_id) b
        ) feeRoomCount, -- 收费户
        <if test="feeTypeCd != null and feeTypeCd != ''">
            and pf.fee_type_cd = #{feeTypeCd}
        </if>
        group by pf.fee_type_cd,t.obj_id
        ) b
        where b.fee_type_cd = a.status_cd
        ) feeRoomCount,
        (
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail_month t
        from pay_fee_detail t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            LEFT JOIN building_room br on t.obj_id = br.room_id and br.status_cd = '0'
            LEFT JOIN building_room br on pf.payer_obj_id = br.room_id and br.status_cd = '0'
            left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        </if>
        where
@@ -566,17 +612,17 @@
            and bu.floor_id = a.floor_id
        </if>
        and t.status_cd = '0'
        and t.community_id=  #{communityId}
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.community_id= #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
        <if test="configIds !=null ">
            and t.config_id in
            and pf.config_id in
            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        ) receivedFee, -- 实收
        ) receivedFee,
        (
        select ifnull(sum(t.received_amount),0.0) preReceivedFee
        from pay_fee_detail_month t
@@ -591,7 +637,7 @@
            and bu.floor_id = a.floor_id
        </if>
        and t.status_cd = '0'
        and t.community_id=  #{communityId}
        and t.community_id= #{communityId}
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.cur_month_time &gt; #{endDate}
@@ -602,9 +648,9 @@
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        ) preReceivedFee, -- 预收
        ) preReceivedFee,
        (
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) hisOweFee
        select ifnull(sum(t.receivable_amount),0.0) hisOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        <if test="floorId != null and floorId != ''">
@@ -617,7 +663,8 @@
            and bu.floor_id = a.floor_id
        </if>
        and t.status_cd = '0'
        and t.community_id=  #{communityId}
        and t.community_id= #{communityId}
        and t.detail_id = '-1'
        and t.cur_month_time &lt; #{startDate}
        <if test="configIds !=null ">
            and t.config_id in
@@ -626,7 +673,7 @@
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        ) hisOweFee, -- 历史欠费
        ) hisOweFee,
        (
        select ifnull(sum(t.receivable_amount),0.0) curReceivableFee
        from pay_fee_detail_month t
@@ -642,7 +689,7 @@
        </if>
        and t.status_cd = '0'
        and t.community_id= #{communityId}
        and t.cur_month_time  &gt; #{startDate}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &lt; #{endDate}
        <if test="configIds !=null ">
            and t.config_id in
@@ -651,7 +698,7 @@
            </foreach>
        </if>
        and pf.fee_type_cd = a.status_cd
        ) curReceivableFee -- 当期应收
        ) curReceivableFee
        from t_dict a
        where 1=1
        and a.table_name = 'pay_fee_config'
@@ -665,83 +712,322 @@
        select a.obj_name objName,a.obj_id objId,a.owner_name ownerName,a.link
        from pay_fee_detail_month a
        where a.status_cd = '0'
        and a.community_id = '2023013154290059'
        and a.community_id = #{communityId}
        group by a.obj_name,a.obj_id,a.owner_name,a.link
        ) b
    </select>
    <!-- 查询房屋费用明细表-->
    <select id="getObjFeeSummary" parameterType="Map" resultType="Map">
        select a.obj_name objName,a.obj_id objId,a.owner_name ownerName,a.link,
        select
        a.obj_id objId,pfc.fee_type_cd feeTypeCd,
        (
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) hisOweFee
        select ifnull(sum(t.receivable_amount),0.0) hisOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join pay_fee_config pfc1 on pfc1.config_id = t.config_id and pfc1.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.detail_id = '-1'
        and t.community_id= a.community_id
        and t.cur_month_time &lt; #{startDate}
        ) hisOweFee, -- 历史欠费
        (
        select ifnull(sum(t.receivable_amount - t.received_amount - t.discount_amount),0.0) curOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.cur_month_time &gt; #{startDate}
        and t.obj_id = a.obj_id
        and pfc1.fee_type_cd = pfc.fee_type_cd
        and t.cur_month_time &lt; #{endDate}
        ) curOweFee, -- 当期欠费
        (
        select ifnull(sum(t.receivable_amount),0.0) curReceivableFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &lt; #{endDate}
        ) curReceivableFee, -- 当月应收
        (
        select ifnull(sum(t.received_amount),0.0) hisReceivedFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.cur_month_time &lt; #{startDate}
        ) hisReceivedFee, -- 欠费追回
        (
        select ifnull(sum(t.received_amount),0.0) preReceivedFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        and t.cur_month_time &gt; #{endDate}
        ) preReceivedFee, -- 预交费用
        ) oweFee,
        (
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join pay_fee_config pfc1 on pfc1.config_id = t.config_id and pfc1.status_cd = '0'
        where t.obj_id = a.obj_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and pfc1.fee_type_cd = pfc.fee_type_cd
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        ) receivedFee -- 实收费用
        ) receivedFee
        from pay_fee_detail_month a
        where a.status_cd = '0'
        and a.community_id = #{communityId}
        group by a.obj_name,a.obj_id,a.owner_name,a.link
        order by  a.obj_name
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
        inner join pay_fee_config pfc on a.config_id = pfc.config_id and pfc.status_cd = '0'
        where a.obj_id in
        <foreach collection="objIds" item="item" index="index" open="(" close=")" separator=",">
            #{item}
        </foreach>
        group by a.obj_id,pfc.fee_type_cd,a.community_id
    </select>
    <!-- 查询业主费用明细表 -->
    <select id="getOwnerFeeSummary" parameterType="Map" resultType="Map">
        select
        a.owner_id ownerId,GROUP_CONCAT(a.obj_name) objName,pfc.fee_type_cd feeTypeCd,
        (
        select ifnull(sum(t.receivable_amount),0.0) hisOweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join pay_fee_config pfc1 on pfc1.config_id = t.config_id and pfc1.status_cd = '0'
        where 1=1
        and t.status_cd = '0'
        and t.detail_id = '-1'
        and t.community_id= a.community_id
        and t.owner_id = a.owner_id
        and pfc1.fee_type_cd = pfc.fee_type_cd
        and t.cur_month_time &lt; #{endDate}
        ) oweFee,
        (
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join pay_fee_config pfc1 on pfc1.config_id = t.config_id and pfc1.status_cd = '0'
        where t.owner_id = a.owner_id
        and t.status_cd = '0'
        and t.community_id= a.community_id
        and pfc1.fee_type_cd = pfc.fee_type_cd
        and t.pay_fee_time &gt; #{startDate}
        and t.pay_fee_time &lt; #{endDate}
        ) receivedFee
        from pay_fee_detail_month a
        inner join pay_fee_config pfc on a.config_id = pfc.config_id and pfc.status_cd = '0'
        where a.owner_id in
        <foreach collection="ownerIds" item="item" index="index" open="(" close=")" separator=",">
            #{item}
        </foreach>
        group by a.owner_id,pfc.fee_type_cd,a.community_id
    </select>
    <!-- 优惠费用-->
    <select id="getDiscountFee" parameterType="Map" resultType="Map">
        select ifnull(SUM(t.discount_amount),0.0) discountFee
        from pay_fee_detail_month t
        where 1=1
        and t.status_cd = '0'
        and t.detail_id != '-1'
        and t.discount_amount &gt; 0
        and t.community_id= #{communityId}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &lt; #{endDate}
    </select>
    <!-- 滞纳金费用-->
    <select id="getLateFee" parameterType="Map" resultType="Map">
        select ifnull(SUM(t.discount_amount),0.0) lateFee
        from pay_fee_detail_month t
        where 1=1
        and t.status_cd = '0'
        and t.detail_id != '-1'
        and t.discount_amount &lt; 0
        and t.community_id= #{communityId}
        and t.cur_month_time &gt; #{startDate}
        and t.cur_month_time &lt; #{endDate}
    </select>
    <!-- 查询预存账户-->
    <select id="getPrestoreAccount" parameterType="Map" resultType="Map">
        select ifnull(SUM(t.amount),0.0) prestoreAccount
        from account_detail t
        INNER JOIN account ac on t.acct_id = ac.acct_id and ac.status_cd = '0'
        where 1=1
        and t.obj_type = '6006'
        and ac.acct_type = '2003'
        and t.detail_type = '1001'
        and ac.part_id= #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 查询账户扣款-->
    <select id="getWithholdAccount" parameterType="Map" resultType="Map">
        select ifnull(SUM(t.amount),0.0) withholdAccount
        from account_detail t
        INNER JOIN account ac on t.acct_id = ac.acct_id and ac.status_cd = '0'
        where 1=1
        and t.obj_type = '6006'
        and ac.acct_type = '2003'
        and t.detail_type = '2002'
        and ac.part_id= #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 查询临时车费 -->
    <select id="getTempCarFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.pay_charge),0.0) tempCarFee
        from car_inout_payment t
        where 1=1
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
        and t.status_cd = '0'
    </select>
    <!-- 押金退款金额 -->
    <select id="geRefundDeposit" parameterType="Map" resultType="Map">
        select ifnull(sum(t.received_amount),0.0) refundDeposit from return_pay_fee t
        where t.fee_type_cd = '888800010006'
        and t.status_cd = '0'
        and t.state = '1001'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 退款订单数 -->
    <select id="geRefundOrderCount" parameterType="Map" resultType="Map">
        select count(1) refundOrderCount from return_pay_fee t
        where t.status_cd = '0'
        and t.state = '1001'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 退款金额 -->
    <select id="geRefundFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.received_amount),0.0) refundFee from return_pay_fee t
        where t.status_cd = '0'
        and t.state = '1001'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 查询充电费用-->
    <select id="getChargeFee" parameterType="Map" resultType="Map">
        select ifnull(sum(t.amount),0.0) chargeFee
        from charge_machine_order t
        where t.status_cd = '0'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
    </select>
    <!-- 查询楼栋实收-->
    <select id="getReceivedFeeByFloor" parameterType="Map" resultType="Map">
        select a.floor_id floorId,a.floor_num floorNum,a.name floorName,td.status_cd feeTypeCd,
        (
        select count(1)
        from building_room br
        left join building_unit bu on bu.unit_id = br.unit_id and bu.status_cd = '0'
        where
        1=1
        and a.status_cd = '0'
        and br.status_cd = '0'
        and bu.floor_id = a.floor_id
        ) roomCount,
        (
        select count(1) from (
        select bu.floor_id,br.room_id
        from building_room br
        INNER JOIN pay_fee pf on br.room_id = pf.payer_obj_id and pf.payer_obj_type = '3333' and pf.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and br.status_cd = '0'
        and br.community_id= #{communityId}
        group by bu.floor_id,br.room_id
        ) b
        where b.floor_id = a.floor_id
        ) feeRoomCount,
        (
        select ifnull(sum(t.received_amount),0.0) receivedFee
        from pay_fee_detail t
        INNER JOIN pay_fee pf1 on t.fee_id = pf1.fee_id and pf1.payer_obj_type='3333' and pf1.status_cd = '0'
        LEFT JOIN building_room br on pf1.payer_obj_id = br.room_id and br.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
        and pf1.fee_type_cd = td.status_cd
        ) receivedFee
        from f_floor a
        left join t_dict td on td.table_name='pay_fee_config' and td.table_columns = 'fee_type_cd_show'
        where 1=1
        and a.status_cd = '0'
        and a.community_id = #{communityId}
        order by a.seq
    </select>
    <!-- 按缴费方式统计 -->
    <select id="getReceivedFeeByPrimeRate" parameterType="Map" resultType="Map">
        select td.`name`,td.status_cd primeRate,ifnull(SUM(t.received_amount),0) receivedAmount
        from t_dict td
        left join pay_fee_detail t on td.status_cd = t.prime_rate and t.status_cd = '0'
        where
        1=1
        and td.table_name = 'pay_fee_detail'
        and td.table_columns = 'prime_rate'
        and t.community_id = #{communityId}
        and t.create_time &gt; #{startDate}
        and t.create_time &lt; #{endDate}
        group by td.status_cd,td.`name`
    </select>
    <!-- 按楼栋统计欠费 -->
    <select id="getOweFeeByFloor" parameterType="Map" resultType="Map">
        select a.floor_id floorId,a.floor_num floorNum,a.name floorName,td.status_cd feeTypeCd,
        (
        select count(1)
        from building_room br
        left join building_unit bu on bu.unit_id = br.unit_id and bu.status_cd = '0'
        where
        1=1
        and a.status_cd = '0'
        and br.status_cd = '0'
        and bu.floor_id = a.floor_id
        ) roomCount,
        (
        select count(1) from (
        select bu.floor_id,br.room_id
        from building_room br
        INNER JOIN pay_fee pf on br.room_id = pf.payer_obj_id and pf.payer_obj_type = '3333' and pf.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and br.status_cd = '0'
        and br.community_id= #{communityId}
        group by bu.floor_id,br.room_id
        ) b
        where b.floor_id = a.floor_id
        ) feeRoomCount,
        (
        select count(1) from (
        select bu.floor_id,br.room_id
        from building_room br
        INNER JOIN pay_fee_detail_month pf on br.room_id = pf.obj_id and pf.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and br.status_cd = '0'
        and br.community_id= #{communityId}
        and pf.detail_id = '-1'
        and pf.cur_month_time &lt; #{endDate}
        group by bu.floor_id,br.room_id
        ) b
        where b.floor_id = a.floor_id
        ) oweRoomCount,
        (
        select ifnull(sum(t.received_amount),0.0) oweFee
        from pay_fee_detail_month t
        INNER JOIN pay_fee pf1 on t.fee_id = pf1.fee_id and pf1.payer_obj_type='3333' and pf1.status_cd = '0'
        LEFT JOIN building_room br on pf1.payer_obj_id = br.room_id and br.status_cd = '0'
        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
        where
        1=1
        and bu.floor_id = a.floor_id
        and t.status_cd = '0'
        and t.community_id = #{communityId}
        and t.detail_id = '-1'
        and pf.cur_month_time &lt; #{endDate}
        and pf1.fee_type_cd = td.status_cd
        ) oweFee
        from f_floor a
        left join t_dict td on td.table_name='pay_fee_config' and td.table_columns = 'fee_type_cd_show'
        where 1=1
        and a.status_cd = '0'
        and a.community_id = #{communityId}
        order by a.seq
    </select>
</mapper>