wuxw
2023-11-01 941a808d8fc3b44b922a2c2bdd6cb90034fda0b2
java110-db/src/main/resources/mapper/report/BaseDataStatisticsServiceDaoImplMapper.xml
@@ -109,17 +109,17 @@
    <select id="getReceivedRoomCount" parameterType="Map" resultType="Map">
        select count(1) count
        from
        (select t.room_id
        from building_room t
        inner join building_unit bu on t.unit_id = bu.unit_id and bu.status_cd = '0'
        inner join f_floor f on bu.floor_id = f.floor_id and f.status_cd = '0'
        <if test="ownerId != null and ownerId != ''">
            inner join building_owner_room_rel borr on t.room_id = borr.room_id and borr.status_cd = '0'
            left join building_owner bo on borr.owner_id = bo.member_id and bo.status_cd = '0'
        </if>
        left join building_owner_room_rel borr on t.room_id = borr.room_id and borr.status_cd = '0'
        left join building_owner bo on borr.owner_id = bo.member_id and bo.status_cd = '0'
        inner join pay_fee pf on t.room_id = pf.payer_obj_id and pf.payer_obj_type = '3333' and pf.status_cd = '0'
        inner join pay_fee_detail pfd on pf.fee_id = pfd.fee_id and pfd.status_cd = '0'
        where 1=1
        <if test="floorId != null and floorId != ''">
        <if test="startDate != null and startDate != ''">
            and pfd.create_time &gt;= #{startDate}
            and pfd.create_time &lt;= #{endDate}
        </if>
@@ -157,10 +157,13 @@
        <if test="link != null and link != ''">
            and bo.link = #{link}
        </if>
        group by t.room_id
        ) a
    </select>
    <!-- 查询单月欠费 -->
    <select id="getReceivedRoomInfo" parameterType="Map" resultType="Map">
        select a.* from (
        select t.fee_coefficient feeCoefficient,t.section,t.remark,t.user_id userId,
        t.room_id roomId,t.layer,t.built_up_area,t.built_up_area
        builtUpArea,t.room_num,t.room_num roomNum,t.unit_id,t.unit_id unitId,t.b_id,t.b_id
@@ -175,9 +178,9 @@
        inner join pay_fee pf on t.room_id = pf.payer_obj_id and pf.payer_obj_type = '3333' and pf.status_cd = '0'
        inner join pay_fee_detail pfd on pf.fee_id = pfd.fee_id and pfd.status_cd = '0'
        where 1=1
        <if test="floorId != null and floorId != ''">
        and pfd.create_time &gt;= #{startDate}
        and pfd.create_time &lt;= #{endDate}
        <if test="startDate != null and startDate != ''">
            and pfd.create_time &gt;= #{startDate}
            and pfd.create_time &lt;= #{endDate}
        </if>
        <if test="floorId != null and floorId != ''">
            and f.floor_id = #{floorId}
@@ -212,10 +215,206 @@
        <if test="link != null and link != ''">
            and bo.link = #{link}
        </if>
        group by t.fee_coefficient ,t.section,t.remark,t.user_id ,
        t.room_id ,t.layer,t.built_up_area,t.room_num,t.unit_id,t.b_id,t.apartment,t.state,t.community_id,t.room_type,
        t.room_sub_type,t.room_rent,t.room_area,t.room_rent,t.room_area,
        f.floor_num ,bu.unit_num ,bo.name ,bo.owner_id ,bo.link
        order by t.create_time desc
        ) a
        <if test="page != -1 and page != null">
            limit #{page},#{row}
        </if>
    </select>
    <select id="getOweRoomCount" parameterType="Map" resultType="Map">
        select count(1) count
        from
        (select t.room_id
        from building_room t
        inner join building_unit bu on t.unit_id = bu.unit_id and bu.status_cd = '0'
        inner join f_floor f on bu.floor_id = f.floor_id and f.status_cd = '0'
        left join building_owner_room_rel borr on t.room_id = borr.room_id and borr.status_cd = '0'
        left join building_owner bo on borr.owner_id = bo.member_id and bo.status_cd = '0'
        inner join report_owe_fee rof on t.room_id = rof.payer_obj_id and rof.payer_obj_type = '3333'
        where 1=1
        and rof.amount_owed > 0
        and t.status_cd = '0'
        <if test="floorId != null and floorId != ''">
            and f.floor_id = #{floorId}
        </if>
        <if test="floorNum != null and floorNum != ''">
            and f.floor_num = #{floorNum}
        </if>
        <if test="unitNum != null and unitNum != ''">
            and bu.unit_num = #{unitNum}
        </if>
        <if test="roomNum != null and roomNum != ''">
            and t.room_num = #{roomNum}
        </if>
        <if test="roomNumLike !=null and roomNumLike != ''">
            and t.room_num like concat('%',#{roomNumLike},'%')
        </if>
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </if>
        <if test="roomId != null and roomId != ''">
            and t.room_id = #{roomId}
        </if>
        <if test="communityId != null and communityId != ''">
            and t.community_id = #{communityId}
        </if>
        <if test="ownerId != null and ownerId != ''">
            and bo.owner_id = #{ownerId}
        </if>
        <if test="ownerName != null and ownerName != ''">
            and bo.`name` like concat('%',#{ownerName},'%')
        </if>
        <if test="link != null and link != ''">
            and bo.link = #{link}
        </if>
        group by t.room_id
        ) a
    </select>
    <!-- 查询单月欠费 -->
    <select id="getOweRoomInfo" parameterType="Map" resultType="Map">
        select a.* from (
        select t.fee_coefficient feeCoefficient,t.section,t.remark,t.user_id userId,
        t.room_id roomId,t.layer,t.built_up_area,t.built_up_area
        builtUpArea,t.room_num,t.room_num roomNum,t.unit_id,t.unit_id unitId,t.b_id,t.b_id
        bId,t.apartment,t.state,t.community_id,t.community_id communityId,t.room_type,t.room_type roomType,
        t.room_sub_type,t.room_rent,t.room_area,t.room_sub_type roomSubType,t.room_rent roomRent,t.room_area roomArea,
        f.floor_num floorNum,bu.unit_num unitNum,bo.name ownerName,bo.owner_id ownerId,bo.link
        from building_room t
        inner join building_unit bu on t.unit_id = bu.unit_id and bu.status_cd = '0'
        inner join f_floor f on bu.floor_id = f.floor_id and f.status_cd = '0'
        left join building_owner_room_rel borr on t.room_id = borr.room_id and borr.status_cd = '0'
        left join building_owner bo on borr.owner_id = bo.member_id and bo.status_cd = '0'
        inner join report_owe_fee rof on t.room_id = rof.payer_obj_id and rof.payer_obj_type = '3333'
        where 1=1
        and rof.amount_owed > 0
        <if test="floorId != null and floorId != ''">
            and f.floor_id = #{floorId}
        </if>
        <if test="floorNum != null and floorNum != ''">
            and f.floor_num = #{floorNum}
        </if>
        <if test="unitNum != null and unitNum != ''">
            and bu.unit_num = #{unitNum}
        </if>
        <if test="roomNum != null and roomNum != ''">
            and t.room_num = #{roomNum}
        </if>
        <if test="roomNumLike !=null and roomNumLike != ''">
            and t.room_num like concat('%',#{roomNumLike},'%')
        </if>
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </if>
        <if test="roomId != null and roomId != ''">
            and t.room_id = #{roomId}
        </if>
        <if test="communityId != null and communityId != ''">
            and t.community_id = #{communityId}
        </if>
        <if test="ownerId != null and ownerId != ''">
            and bo.owner_id = #{ownerId}
        </if>
        <if test="ownerName != null and ownerName != ''">
            and bo.`name` like concat('%',#{ownerName},'%')
        </if>
        <if test="link != null and link != ''">
            and bo.link = #{link}
        </if>
        group by t.fee_coefficient ,t.section,t.remark,t.user_id ,
        t.room_id ,t.layer,t.built_up_area,t.room_num,t.unit_id,t.b_id,t.apartment,t.state,t.community_id,t.room_type,
        t.room_sub_type,t.room_rent,t.room_area,t.room_rent,t.room_area,
        f.floor_num ,bu.unit_num ,bo.name ,bo.owner_id ,bo.link
        order by t.create_time desc
        ) a
        <if test="page != -1 and page != null">
            limit #{page},#{row}
        </if>
    </select>
    <select id="getCommunityFeeDetailCount" parameterType="Map" resultType="Map">
        select * from (
        select t.community_id communityId,count(1) count,SUM(t.received_amount) receivedAmount from pay_fee_detail t
        where t.status_cd = '0'
        and t.state in ('1000','1400','1200')
        <if test="communityIds !=null ">
            and t.community_id in
            <foreach collection="communityIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        and t.create_time &gt;= #{startTime}
        and t.create_time &lt;= #{endTime}
        group by t.community_id
        ) a order by a.count desc limit 10
    </select>
    <select id="getCommunityRepairCount" parameterType="Map" resultType="Map">
        select * from (
        select t.community_id communityId,count(1) count from r_repair_pool t
        where t.status_cd = '0'
        <if test="communityIds !=null ">
            and t.community_id in
            <foreach collection="communityIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        and t.create_time &gt;= #{startTime}
        and t.create_time &lt;= #{endTime}
        group by t.community_id
        ) a order by a.count desc limit 10
    </select>
    <select id="getCommunityFeeDetailCountAnalysis" parameterType="Map" resultType="Map">
        select DATE_FORMAT(t.create_time,'%Y-%m-%d') createTime,count(1) countValue
        from pay_fee_detail t
        where 1=1
        and t.state in ('1000','1400','1200')
        and t.create_time &gt; #{startTime}
        and t.create_time &lt; #{endTime}
        and t.community_id = #{communityId}
        group by DATE_FORMAT(t.create_time,'%Y-%m-%d')
    </select>
    <select id="getCommunityRepairCountAnalysis" parameterType="Map" resultType="Map">
        select DATE_FORMAT(t.create_time,'%Y-%m-%d') createTime,count(1) countValue
        from r_repair_pool t
        where 1=1
        and t.status_cd = '0'
        and t.create_time &gt; #{startTime}
        and t.create_time &lt; #{endTime}
        and t.community_id = #{communityId}
        group by DATE_FORMAT(t.create_time,'%Y-%m-%d')
    </select>
    <select id="getCommunityInspectionAnalysis" parameterType="Map" resultType="Map">
        select DATE_FORMAT(t.create_time,'%Y-%m-%d') createTime,count(1) countValue
        from inspection_task t
        where 1=1
        and t.status_cd = '0'
        and t.state in ('20200406','20200407')
        and t.create_time &gt; #{startTime}
        and t.create_time &lt; #{endTime}
        and t.community_id = #{communityId}
        group by DATE_FORMAT(t.create_time,'%Y-%m-%d')
    </select>
    <select id="getCommunityMaintainanceAnalysis" parameterType="Map" resultType="Map">
        select DATE_FORMAT(t.create_time,'%Y-%m-%d') createTime,count(1) countValue
        from maintainance_task t
        where 1=1
        and t.status_cd = '0'
        and t.state in ('20200406','20200407')
        and t.create_time &gt; #{startTime}
        and t.create_time &lt; #{endTime}
        and t.community_id = #{communityId}
        group by DATE_FORMAT(t.create_time,'%Y-%m-%d')
    </select>
</mapper>