FeeReceiptServiceDaoImplMapper.xml 14 KB
<?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="feeReceiptServiceDaoImpl">

    <!-- 保存收据信息 add by wuxw 2018-07-03 -->
    <insert id="saveFeeReceiptInfo" parameterType="Map">
        insert into fee_receipt(
        amount,obj_id,remark,obj_name,community_id,receipt_id,obj_type,pay_obj_id,pay_obj_name,receipt_code,receivable_amount
        <if test="createTime != null">
            ,create_time
        </if>
        ) values (
        #{amount},#{objId},#{remark},#{objName},#{communityId},#{receiptId},#{objType},#{payObjId},#{payObjName},#{receiptCode},#{receivableAmount}
        <if test="createTime != null">
            ,#{createTime}
        </if>
        )
    </insert>

    <!-- 批量插入费用 -->
    <insert id="saveFeeReceipts" parameterType="Map">
        insert into fee_receipt(
        amount,obj_id,remark,obj_name,community_id,receipt_id,obj_type,pay_obj_id,pay_obj_name,receipt_code,receivable_amount
        ) values
        <foreach collection="feeReceiptPos" item="item" separator=",">
            (#{item.amount},#{item.objId},#{item.remark},#{item.objName},#{item.communityId},#{item.receiptId},#{item.objType},
            #{item.payObjId},#{item.payObjName},#{item.receiptCode},#{item.receivableAmount})
        </foreach>
    </insert>

    <!-- 查询收据信息 add by wuxw 2018-07-03 -->
    <select id="getFeeReceiptInfo" parameterType="Map" resultType="Map">
        select t.amount,t.obj_id,t.obj_id objId,t.remark,t.status_cd,t.status_cd statusCd,t.obj_name,t.obj_name
        objName,t.community_id,t.community_id communityId,t.receipt_id,t.receipt_id receiptId,t.obj_type,t.obj_type
        objType,t.create_time createTime,frd.fee_name feeName,t.pay_obj_id payObjId,t.pay_obj_name
        payObjName,pf.fee_type_cd feeTypeCd,t.receivable_amount,t.receivable_amount receivableAmount,
        frd.start_time startTime,frd.end_time endTime,pf.fee_flag feeFlag,t.receipt_code receiptCode
        from fee_receipt t
        inner join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
        inner join pay_fee pf on frd.fee_id = pf.fee_id and pf.status_cd = '0'
        where 1 =1
        <if test="amount !=null and amount != ''">
            and t.amount= #{amount}
        </if>
        <if test="receivableAmount !=null and receivableAmount != ''">
            and t.receivable_amount= #{receivableAmount}
        </if>
        <if test="objId !=null and objId != ''">
            and t.obj_id= #{objId}
        </if>
        <if test="payObjId !=null and payObjId != ''">
            and t.pay_obj_id= #{payObjId}
        </if>
        <if test="payObjName !=null and payObjName != ''">
            and t.pay_obj_name= #{payObjName}
        </if>
        <if test="remark !=null and remark != ''">
            and t.remark= #{remark}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="objName !=null and objName != ''">
            and t.obj_name= #{objName}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="receiptId !=null and receiptId != ''">
            and t.receipt_id= #{receiptId}
        </if>
        <if test="receiptCode !=null and receiptCode != ''">
            and t.receipt_code= #{receiptCode}
        </if>
        <if test="receiptIds !=null">
            and t.receipt_id in
            <foreach collection="receiptIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="detailIds !=null">
            and frd.detail_id in
            <foreach collection="detailIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="feeId !=null and feeId != ''">
            and frd.fee_id = #{feeId}
        </if>
        <if test="objType !=null and objType != ''">
            and t.obj_type= #{objType}
        </if>
        <if test="qstartTime !=null and qstartTime != ''">
            and t.create_time &gt;= #{qstartTime}
        </if>
        <if test="qendTime !=null and qendTime != ''">
            and t.create_time &lt;= #{qendTime}
        </if>
        order by t.create_time desc,t.receipt_code desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
    </select>

    <!-- 查询收据信息 add by wuxw 2018-07-03 -->
    <select id="getFeeReceiptInfoNew" parameterType="Map" resultType="Map">
        SELECT * FROM
        (
        SELECT
        t.obj_name AS objName,
        '' AS carNum,
        bo.NAME AS name,
        b.built_up_area AS roomArea,
        tt.fee_name feeName,
        tt.area num,
        SPLIT_STR ( tt.square_price, '/', 1 ) AS unit,
        CASE
        pf.fee_flag
        WHEN '1003006' THEN
        tt.start_time ELSE NULL
        END start,
        tt.start_time as startTime,
        CASE
        pf.fee_flag
        WHEN '1003006' THEN
        tt.end_time ELSE NULL
        END
        end,
        tt.end_time as endTime,
        tt.cycle as cycle,
        tt.amount amount,
        uu.NAME AS userName,
        t.create_time AS createTime,
        p.remark as remark
        FROM
        fee_receipt t
        LEFT JOIN fee_receipt_detail tt ON t.receipt_id = tt.receipt_id
        LEFT JOIN building_room b ON t.obj_id = b.room_id
        LEFT JOIN building_owner_room_rel borr ON b.room_id = borr.room_id
        LEFT JOIN building_owner bo ON borr.owner_id = bo.owner_id
        LEFT JOIN pay_fee pf ON tt.fee_id = pf.fee_id
        LEFT JOIN pay_fee_detail p ON tt.fee_id = p.fee_id
        AND tt.detail_id = p.detail_id
        LEFT JOIN c_business cb ON p.b_id = cb.b_id
        LEFT JOIN c_orders co ON cb.o_id = co.o_id
        LEFT JOIN u_user uu ON co.user_id = uu.user_id
        WHERE
        t.status_cd = '0'
        AND t.obj_type = '3333'
        AND p.state='1400'
        AND tt.status_cd = '0'
        AND b.status_cd = '0'
        AND borr.status_cd = '0'
        AND bo.status_cd = '0'
        AND bo.owner_type_cd = '1001'
        AND p.status_cd = '0'
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        UNION ALL
        SELECT
        CONCAT( f.floor_num, '栋', bu.unit_num, '单元', b.room_num, '室' ) AS objName,
        oc.car_num AS carNum,
        bo.NAME AS name,
        b.built_up_area AS roomArea,
        tt.fee_name feeName,
        tt.cycle num,
        SPLIT_STR ( tt.square_price, '/', 1 ) AS unit,
        CASE
        pf.fee_flag
        WHEN '1003006' THEN
        tt.start_time ELSE NULL
        END start,
        tt.start_time as startTime,
        CASE
        pf.fee_flag
        WHEN '1003006' THEN
        tt.end_time ELSE NULL
        END
        end,
        tt.end_time as endTime,
        tt.cycle as cycle,
        tt.amount amount,
        uu.NAME AS userName,
        t.create_time AS createTime,
        p.remark as remark
        FROM
        fee_receipt t
        LEFT JOIN fee_receipt_detail tt ON t.receipt_id = tt.receipt_id
        LEFT JOIN owner_car oc ON oc.car_id = t.obj_id and oc.car_type_cd='1001'
        LEFT JOIN building_owner bo ON bo.member_id = oc.owner_id
        LEFT JOIN building_owner_room_rel borr ON bo.owner_id = borr.owner_id
        LEFT JOIN building_room b ON borr.room_id = b.room_id
        LEFT JOIN building_room_attr ba ON b.room_id = ba.room_id
        LEFT JOIN building_unit bu ON b.unit_id = bu.unit_id
        AND bu.status_cd = '0'
        LEFT JOIN f_floor f ON bu.floor_id = f.floor_id
        LEFT JOIN pay_fee pf ON tt.fee_id = pf.fee_id
        AND pf.status_cd = '0'
        LEFT JOIN pay_fee_detail p ON tt.fee_id = p.fee_id
        AND p.status_cd = '0'
        AND tt.detail_id = p.detail_id
        LEFT JOIN c_business cb ON p.b_id = cb.b_id
        LEFT JOIN c_orders co ON cb.o_id = co.o_id
        LEFT JOIN u_user uu ON co.user_id = uu.user_id
        WHERE
        t.obj_type = '6666'
        AND p.state='1400'
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        AND bo.owner_type_cd = '1001'
        ) AS t
        WHERE 1=1
        <if test="type !=null and type == 1 ">
            AND feeName in ('预交物业管理费','装修垃圾清运费','装修电梯使用费','水费','电费')
        </if>
        <if test="type !=null and type == 2">
            AND feeName in ('装修保证金','施工进入证')
        </if>
        <if test="type !=null and type == 3">
            AND feeName in ('预交物业管理费','水费','电费','地下停车费','地上停车费')
        </if>
        <if test="type !=null and type == 4">
            AND feeName in ('地上停车费','地下停车费')
        </if>
        <if test="type !=null and type == 5">
            AND feeName in ('公共区域公摊电费','生活水泵公摊电费','走廊楼道应急公摊电费','电梯公摊电费')
        </if>
        <if test="qstartTime !=null and qstartTime != ''">
            AND DATE_FORMAT(t.createTime, '%Y-%m-%d') &gt;= DATE_FORMAT( #{qstartTime}, '%Y-%m-%d' )
        </if>
        <if test="qendTime !=null and qendTime != ''">
            AND DATE_FORMAT(t.createTime, '%Y-%m-%d') &lt;= DATE_FORMAT( #{qendTime}, '%Y-%m-%d' )
        </if>
        <if test="amount !=null and amount != ''">
            and t.amount= #{amount}
        </if>
        <if test="objId !=null and objId != ''">
            and t.obj_id= #{objId}
        </if>
        <if test="remark !=null and remark != ''">
            and t.remark= #{remark}
        </if>
        <if test="objName !=null and objName != ''">
            and t.objName= #{objName}
        </if>
        <if test="receiptId !=null and receiptId != ''">
            and t.receipt_id= #{receiptId}
        </if>

        <if test="objType !=null and objType != ''">
            and t.obj_type= #{objType}
        </if>
        order by t.createTime desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
    </select>

    <!-- 修改收据信息 add by wuxw 2018-07-03 -->
    <update id="updateFeeReceiptInfo" parameterType="Map">
        update fee_receipt t set t.status_cd = #{statusCd}
        <if test="newBId != null and newBId != ''">
            ,t.b_id = #{newBId}
        </if>
        <if test="amount !=null and amount != ''">
            , t.amount= #{amount}
        </if>
        <if test="receivableAmount !=null and receivableAmount != ''">
            , t.receivable_amount= #{receivableAmount}
        </if>
        <if test="objId !=null and objId != ''">
            , t.obj_id= #{objId}
        </if>
        <if test="remark !=null and remark != ''">
            , t.remark= #{remark}
        </if>
        <if test="objName !=null and objName != ''">
            , t.obj_name= #{objName}
        </if>
        <if test="communityId !=null and communityId != ''">
            , t.community_id= #{communityId}
        </if>
        <if test="objType !=null and objType != ''">
            , t.obj_type= #{objType}
        </if>
        where 1=1
        <if test="receiptId !=null and receiptId != ''">
            and t.receipt_id= #{receiptId}
        </if>
    </update>

    <!-- 查询收据数量 add by wuxw 2018-07-03 -->
    <select id="queryFeeReceiptsCount" parameterType="Map" resultType="Map">
        select count(1) count
        from fee_receipt t
        inner join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
        inner join pay_fee pf on frd.fee_id = pf.fee_id and pf.status_cd = '0'
        where 1 =1
        <if test="amount !=null and amount != ''">
            and t.amount= #{amount}
        </if>
        <if test="receivableAmount !=null and receivableAmount != ''">
            and t.receivable_amount= #{receivableAmount}
        </if>
        <if test="objId !=null and objId != ''">
            and t.obj_id= #{objId}
        </if>
        <if test="payObjId !=null and payObjId != ''">
            and t.pay_obj_id= #{payObjId}
        </if>
        <if test="payObjName !=null and payObjName != ''">
            and t.pay_obj_name= #{payObjName}
        </if>
        <if test="remark !=null and remark != ''">
            and t.remark= #{remark}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="objName !=null and objName != ''">
            and t.obj_name= #{objName}
        </if>
        <if test="receiptCode !=null and receiptCode != ''">
            and t.receipt_code = #{receiptCode}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="receiptId !=null and receiptId != ''">
            and t.receipt_id= #{receiptId}
        </if>
        <if test="receiptCode !=null and receiptCode != ''">
            and t.receipt_code= #{receiptCode}
        </if>
        <if test="receiptIds !=null">
            and t.receipt_id in
            <foreach collection="receiptIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="detailIds !=null">
            and frd.detail_id in
            <foreach collection="detailIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="feeId !=null and feeId != ''">
            and frd.fee_id = #{feeId}
        </if>
        <if test="objType !=null and objType != ''">
            and t.obj_type= #{objType}
        </if>
        <if test="qstartTime !=null and qstartTime != ''">
            and t.create_time &gt;= #{qstartTime}
        </if>
        <if test="qendTime !=null and qendTime != ''">
            and t.create_time &lt;= #{qendTime}
        </if>
    </select>
</mapper>