jialh
1 天以前 dd6687b118561100e1677e88a9c2f5842a54c531
java110-db/src/main/resources/mapper/center/MaintenancePaymentDAOImplMapper.xml
@@ -3,9 +3,25 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="maintenancePaymentServiceDaoImpl">
    <!-- 删除费用导入明细信息 -->
    <delete id="deleteImportFeeDetailInfo" parameterType="Map">
        delete from maintenance_payment t
        where 1 = 1
        <if test="id != null">
            and t.id = #{id}
        </if>
        <if test="auxiliaryColumn != null and auxiliaryColumn != ''">
            and t.auxiliary_column = #{auxiliaryColumn}
        </if>
        <if test="flowNumber != null and flowNumber != ''">
            and t.flow_number = #{flowNumber}
        </if>
        <if test="serialNumber != null">
            and t.serial_number = #{serialNumber}
        </if>
    </delete>
    <!-- 保存费用导入明细信息 add by wuxw 2018-07-03 -->
    <!-- 保存费用导入明细信息 -->
    <insert id="saveImportFeeDetailInfo" parameterType="Map">
        insert into maintenance_payment(
        auxiliary_column, flow_number, serial_number, project_code, project_name,
@@ -20,7 +36,10 @@
        quota, owners_committee_resolution, owners_committee_consultation,
        withdrawal_encountered_problem, shortage_or_arrears, road_name, lane,
        `door`, room, door_room_number, owner_address, start_date, end_date,
        payee_name, id_card_number, bank_name, bank_account, remarks, acceptance_date, audit_date
        payee_name, id_card_number, bank_name, bank_account, remarks, acceptance_date, audit_date,
        id, payment_target, payable_amount_d, advanced_payment, specific_announcement_status,
        management_fee_ratio, first_planned_payment_amount, planned_payment_date, category,
        reimburser, actual_payment_amount, actual_payment_date
        ) values (
        #{auxiliaryColumn}, #{flowNumber}, #{serialNumber}, #{projectCode}, #{projectName},
        <if test="year == null">null,</if>
@@ -55,71 +74,128 @@
        <if test="shortageOrArrears == null">0,</if>
        <if test="shortageOrArrears != null">#{shortageOrArrears},</if>
        #{roadName}, #{lane}, #{door}, #{room}, #{doorRoomNumber}, #{ownerAddress}, #{startDate}, #{endDate},
        #{payeeName}, #{idCardNumber}, #{bankName}, #{bankAccount}, #{remarks}, #{acceptanceDate}, #{auditDate}
        #{payeeName}, #{idCardNumber}, #{bankName}, #{bankAccount}, #{remarks}, #{acceptanceDate}, #{auditDate},
        #{id}, #{paymentTarget}, #{payableAmountD}, #{advancedPayment}, #{specificAnnouncementStatus},
        <if test="managementFeeRatio == null">0,</if>
        <if test="managementFeeRatio != null">#{managementFeeRatio},</if>
        <if test="firstPlannedPaymentAmount == null">0,</if>
        <if test="firstPlannedPaymentAmount != null">#{firstPlannedPaymentAmount},</if>
        #{plannedPaymentDate}, #{category}, #{reimburser},
        <if test="actualPaymentAmount == null">0,</if>
        <if test="actualPaymentAmount != null">#{actualPaymentAmount},</if>
        #{actualPaymentDate}
        )
    </insert>
    <!-- 查询费用导入明细信息 add by wuxw 2018-07-03 -->
    <!-- 查询费用导入明细信息 -->
    <select id="getImportFeeDetailInfo" parameterType="Map" resultType="Map">
        select
        t.auxiliary_column,t.auxiliary_column auxiliaryColumn,
        t.flow_number,t.flow_number flowNumber,
        t.serial_number,t.serial_number serialNumber,
        t.project_code,t.project_code projectCode,
        t.project_name,t.project_name projectName,
        t.auxiliary_column, t.auxiliary_column auxiliaryColumn,
        t.flow_number, t.flow_number flowNumber,
        t.serial_number, t.serial_number serialNumber,
        t.project_code, t.project_code projectCode,
        t.project_name, t.project_name projectName,
        t.`year`,
        t.`month`,
        t.`day`,
        t.`date`,
        t.project_content,t.project_content projectContent,
        t.management_office_amount,t.management_office_amount managementOfficeAmount,
        t.management_office_seal,t.management_office_seal managementOfficeSeal,
        t.owners_committee_amount,t.owners_committee_amount ownersCommitteeAmount,
        t.audit_amount,t.audit_amount auditAmount,
        t.owners_committee_seal,t.owners_committee_seal ownersCommitteeSeal,
        t.report_department,t.report_department reportDepartment,
        t.fund_type_level1,t.fund_type_level1 fundTypeLevel1,
        t.fund_type_level2,t.fund_type_level2 fundTypeLevel2,
        t.building_or_all,t.building_or_all buildingOrAll,
        t.maintenance_type,t.maintenance_type maintenanceType,
        t.quality_guarantee_period1,t.quality_guarantee_period1 qualityGuaranteePeriod1,
        t.public_income_announcement,t.public_income_announcement publicIncomeAnnouncement,
        t.owners_committee_convention,t.owners_committee_convention ownersCommitteeConvention,
        t.withdrawal_problem,t.withdrawal_problem withdrawalProblem,
        t.problem_difficulty,t.problem_difficulty problemDifficulty,
        t.available_withdrawal_date,t.available_withdrawal_date availableWithdrawalDate,
        t.quality_guarantee_period2,t.quality_guarantee_period2 qualityGuaranteePeriod2,
        t.quality_guarantee_ratio,t.quality_guarantee_ratio qualityGuaranteeRatio,
        t.quality_guarantee_amount,t.quality_guarantee_amount qualityGuaranteeAmount,
        t.received_quality_guarantee,t.received_quality_guarantee receivedQualityGuarantee,
        t.planned_announcement_start,t.planned_announcement_start plannedAnnouncementStart,
        t.planned_announcement_end,t.planned_announcement_end plannedAnnouncementEnd,
        t.published_announcement_start,t.published_announcement_start publishedAnnouncementStart,
        t.published_announcement_end,t.published_announcement_end publishedAnnouncementEnd,
        t.project_content, t.project_content projectContent,
        t.management_office_amount, t.management_office_amount managementOfficeAmount,
        t.management_office_seal, t.management_office_seal managementOfficeSeal,
        t.owners_committee_amount, t.owners_committee_amount ownersCommitteeAmount,
        t.audit_amount, t.audit_amount auditAmount,
        t.owners_committee_seal, t.owners_committee_seal ownersCommitteeSeal,
        t.report_department, t.report_department reportDepartment,
        t.fund_type_level1, t.fund_type_level1 fundTypeLevel1,
        t.fund_type_level2, t.fund_type_level2 fundTypeLevel2,
        t.building_or_all, t.building_or_all buildingOrAll,
        t.maintenance_type, t.maintenance_type maintenanceType,
        t.quality_guarantee_period1, t.quality_guarantee_period1 qualityGuaranteePeriod1,
        t.public_income_announcement, t.public_income_announcement publicIncomeAnnouncement,
        t.owners_committee_convention, t.owners_committee_convention ownersCommitteeConvention,
        t.withdrawal_problem, t.withdrawal_problem withdrawalProblem,
        t.problem_difficulty, t.problem_difficulty problemDifficulty,
        t.available_withdrawal_date, t.available_withdrawal_date availableWithdrawalDate,
        t.quality_guarantee_period2, t.quality_guarantee_period2 qualityGuaranteePeriod2,
        t.quality_guarantee_ratio, t.quality_guarantee_ratio qualityGuaranteeRatio,
        t.quality_guarantee_amount, t.quality_guarantee_amount qualityGuaranteeAmount,
        t.received_quality_guarantee, t.received_quality_guarantee receivedQualityGuarantee,
        t.planned_announcement_start, t.planned_announcement_start plannedAnnouncementStart,
        t.planned_announcement_end, t.planned_announcement_end plannedAnnouncementEnd,
        t.published_announcement_start, t.published_announcement_start publishedAnnouncementStart,
        t.published_announcement_end, t.published_announcement_end publishedAnnouncementEnd,
        t.quota,
        t.owners_committee_resolution,t.owners_committee_resolution ownersCommitteeResolution,
        t.owners_committee_consultation,t.owners_committee_consultation ownersCommitteeConsultation,
        t.withdrawal_encountered_problem,t.withdrawal_encountered_problem withdrawalEncounteredProblem,
        t.shortage_or_arrears,t.shortage_or_arrears shortageOrArrears,
        t.road_name,t.road_name roadName,
        t.owners_committee_resolution, t.owners_committee_resolution ownersCommitteeResolution,
        t.owners_committee_consultation, t.owners_committee_consultation ownersCommitteeConsultation,
        t.withdrawal_encountered_problem, t.withdrawal_encountered_problem withdrawalEncounteredProblem,
        t.shortage_or_arrears, t.shortage_or_arrears shortageOrArrears,
        t.road_name, t.road_name roadName,
        t.lane,
        t.`door`,
        t.room,
        t.door_room_number,t.door_room_number doorRoomNumber,
        t.owner_address,t.owner_address ownerAddress,
        t.start_date,t.start_date startDate,
        t.end_date,t.end_date endDate,
        t.payee_name,t.payee_name payeeName,
        t.id_card_number,t.id_card_number idCardNumber,
        t.bank_name,t.bank_name bankName,
        t.bank_account,t.bank_account bankAccount,
        t.door_room_number, t.door_room_number doorRoomNumber,
        t.owner_address, t.owner_address ownerAddress,
        t.start_date, t.start_date startDate,
        t.end_date, t.end_date endDate,
        t.payee_name, t.payee_name payeeName,
        t.id_card_number, t.id_card_number idCardNumber,
        t.bank_name, t.bank_name bankName,
        t.bank_account, t.bank_account bankAccount,
        t.remarks,
        t.acceptance_date,t.acceptance_date acceptanceDate,
        t.audit_date,t.audit_date auditDate,
        t.id
        t.acceptance_date, t.acceptance_date acceptanceDate,
        t.audit_date, t.audit_date auditDate,
        t.id,
        t.payment_target, t.payment_target paymentTarget,
        t.specific_announcement_status, t.specific_announcement_status specificAnnouncementStatus,
        t.management_fee_ratio, t.management_fee_ratio managementFeeRatio,
        t.first_planned_payment_amount, t.first_planned_payment_amount firstPlannedPaymentAmount,
        t.planned_payment_date, t.planned_payment_date plannedPaymentDate,
        t.category, t.category category,
        t.reimburser, t.reimburser reimburser,
        t.actual_payment_amount, t.actual_payment_amount actualPaymentAmount,
        t.actual_payment_date, t.actual_payment_date actualPaymentDate,
        t.payable_amount_d, t.payable_amount_d payableAmountD,
        t.advanced_payment, t.advanced_payment advancedPayment,
        IFNULL(SUM(sum_print_amount), 0) AS dyhj,
        IFNULL(SUM(sum_arrival_amount), 0) AS dzhj,
        CASE WHEN IFNULL(SUM(sum_arrival_amount), 0) &lt;> 0 THEN IFNULL(SUM(sum_arrival_amount), 0) / t.owners_committee_amount * 100 ELSE 0 END AS wxjjdzl,
        CASE WHEN t.fund_type_level1 &lt;> '维修基金' THEN 0 ELSE t.owners_committee_amount - IFNULL(SUM(sum_arrival_amount), 0) END AS wxjjsqje,
        CASE WHEN t.owners_committee_amount &lt;> 0 THEN t.management_fee_ratio / t.owners_committee_amount * 100 ELSE 0 END AS glfzb,
        t.owners_committee_amount - t.management_fee_ratio AS yfjeA,
        IFNULL(SUM(sum_fifth_planned), 0) AS nfhj,
        IFNULL(SUM(sum_actual_payment), 0) AS sfhj,
        (t.owners_committee_amount - t.management_fee_ratio) - IFNULL(SUM(sum_actual_payment), 0) AS wfhj,
        CASE
        WHEN t.fund_type_level1 IN ('公共收益金','维修基金') THEN
        CASE
        WHEN IFNULL(SUM(sum_arrival_amount),0) &lt;> 0 THEN
        CASE WHEN (t.owners_committee_amount - t.management_fee_ratio - IFNULL(SUM(sum_actual_payment),0)) > IFNULL(SUM(sum_arrival_amount),0)
        THEN (t.owners_committee_amount - t.management_fee_ratio - IFNULL(SUM(sum_actual_payment),0)) - IFNULL(SUM(sum_arrival_amount),0)
        ELSE 0 END
        ELSE
        CASE WHEN t.specific_announcement_status LIKE '%公布%' AND t.specific_announcement_status NOT LIKE '%拟%'
        THEN 0
        ELSE (t.owners_committee_amount - t.management_fee_ratio - IFNULL(SUM(sum_actual_payment),0)) END
        END
        ELSE 0 END AS dfje
        from maintenance_payment t
        where 1 =1
        -- 左连接 打印记录表,保证主表数据不丢失
        left join (
        select mp_id,
        SUM(print_amount) as sum_print_amount,
        SUM(arrival_amount) as sum_arrival_amount
        from mp_payment_record
        group by mp_id
        ) m on t.id = m.mp_id
        left join (
        select mp_id,
        SUM(fifth_planned_payment_amount) as sum_fifth_planned,
        SUM(actual_payment_amount) as sum_actual_payment
        from mp_fifth_payment_record
        group by mp_id
        ) f on t.id = f.mp_id
        where 1 = 1
        -- 按主表所有非聚合字段分组
        <if test="auxiliaryColumn !=null and auxiliaryColumn != ''">
            and t.auxiliary_column = #{auxiliaryColumn}
        </if>
@@ -171,17 +247,30 @@
        <if test="id !=null">
            and t.id = #{id}
        </if>
        <if test="paymentTarget !=null and paymentTarget != ''">
            and t.payment_target = #{paymentTarget}
        </if>
        <if test="specificAnnouncementStatus !=null and specificAnnouncementStatus != ''">
            and t.specific_announcement_status = #{specificAnnouncementStatus}
        </if>
        <if test="category !=null and category != ''">
            and t.category = #{category}
        </if>
        <if test="reimburser !=null and reimburser != ''">
            and t.reimburser like concat('%', #{reimburser}, '%')
        </if>
        group by t.id
        order by t.id desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
    </select>
    <!-- 修改费用导入明细信息 add by wuxw 2018-07-03 -->
    <!-- 修改费用导入明细信息 -->
    <update id="updateImportFeeDetailInfo" parameterType="Map">
        update maintenance_payment t set t.status_cd = #{statusCd}
        update maintenance_payment t
        <!-- 注意:id作为主键,通常不建议更新,这里保留但标注,建议根据业务决定是否删除 -->
        set t.id = #{id}
        <if test="newBId != null and newBId != ''">
            ,t.b_id = #{newBId}
        </if>
@@ -199,6 +288,15 @@
        </if>
        <if test="projectName !=null and projectName != ''">
            , t.project_name = #{projectName}
        </if>
        <if test="fundTypeLevel1 != null and fundTypeLevel1 != ''">
            , t.fund_type_level1 = #{fundTypeLevel1}
        </if>
        <if test="fundTypeLevel2 != null and fundTypeLevel2 != ''">
            , t.fund_type_level2 = #{fundTypeLevel2}
        </if>
        <if test="buildingOrAll != null and buildingOrAll != ''">
            , t.building_or_all = #{buildingOrAll}
        </if>
        <if test="year !=null">
            , t.year = #{year}
@@ -254,18 +352,135 @@
        <if test="auditDate !=null and auditDate != ''">
            , t.audit_date = #{auditDate}
        </if>
        <if test="maintenanceType !=null and maintenanceType != ''">
            , t.maintenance_type = #{maintenanceType}
        </if>
        <if test="qualityGuaranteePeriod1 !=null">
            , t.quality_guarantee_period1 = #{qualityGuaranteePeriod1}
        </if>
        <if test="publicIncomeAnnouncement !=null and publicIncomeAnnouncement != ''">
            , t.public_income_announcement = #{publicIncomeAnnouncement}
        </if>
        <if test="ownersCommitteeConvention !=null and ownersCommitteeConvention != ''">
            , t.owners_committee_convention = #{ownersCommitteeConvention}
        </if>
        <if test="withdrawalProblem !=null and withdrawalProblem != ''">
            , t.withdrawal_problem = #{withdrawalProblem}
        </if>
        <if test="problemDifficulty !=null and problemDifficulty != ''">
            , t.problem_difficulty = #{problemDifficulty}
        </if>
        <if test="availableWithdrawalDate !=null">
            , t.available_withdrawal_date = #{availableWithdrawalDate}
        </if>
        <if test="qualityGuaranteePeriod2 !=null">
            , t.quality_guarantee_period2 = #{qualityGuaranteePeriod2}
        </if>
        <if test="qualityGuaranteeRatio !=null">
            , t.quality_guarantee_ratio = #{qualityGuaranteeRatio}
        </if>
        <if test="qualityGuaranteeAmount !=null">
            , t.quality_guarantee_amount = #{qualityGuaranteeAmount}
        </if>
        <if test="receivedQualityGuarantee !=null">
            , t.received_quality_guarantee = #{receivedQualityGuarantee}
        </if>
        <if test="plannedAnnouncementStart !=null">
            , t.planned_announcement_start = #{plannedAnnouncementStart}
        </if>
        <if test="plannedAnnouncementEnd !=null">
            , t.planned_announcement_end = #{plannedAnnouncementEnd}
        </if>
        <if test="publishedAnnouncementStart !=null">
            , t.published_announcement_start = #{publishedAnnouncementStart}
        </if>
        <if test="publishedAnnouncementEnd !=null">
            , t.published_announcement_end = #{publishedAnnouncementEnd}
        </if>
        <if test="quota !=null">
            , t.quota = #{quota}
        </if>
        <if test="ownersCommitteeResolution !=null and ownersCommitteeResolution != ''">
            , t.owners_committee_resolution = #{ownersCommitteeResolution}
        </if>
        <if test="ownersCommitteeConsultation !=null and ownersCommitteeConsultation != ''">
            , t.owners_committee_consultation = #{ownersCommitteeConsultation}
        </if>
        <if test="withdrawalEncounteredProblem !=null and withdrawalEncounteredProblem != ''">
            , t.withdrawal_encountered_problem = #{withdrawalEncounteredProblem}
        </if>
        <if test="shortageOrArrears !=null">
            , t.shortage_or_arrears = #{shortageOrArrears}
        </if>
        <if test="roadName !=null and roadName != ''">
            , t.road_name = #{roadName}
        </if>
        <if test="lane !=null and lane != ''">
            , t.lane = #{lane}
        </if>
        <if test="door !=null and door != ''">
            , t.door = #{door}
        </if>
        <if test="room !=null and room != ''">
            , t.room = #{room}
        </if>
        <if test="doorRoomNumber !=null and doorRoomNumber != ''">
            , t.door_room_number = #{doorRoomNumber}
        </if>
        <if test="ownerAddress !=null and ownerAddress != ''">
            , t.owner_address = #{ownerAddress}
        </if>
        <if test="startDate !=null">
            , t.start_date = #{startDate}
        </if>
        <if test="endDate !=null">
            , t.end_date = #{endDate}
        </if>
        <if test="paymentTarget !=null and paymentTarget != ''">
            , t.payment_target = #{paymentTarget}
        </if>
        <if test="specificAnnouncementStatus !=null and specificAnnouncementStatus != ''">
            , t.specific_announcement_status = #{specificAnnouncementStatus}
        </if>
        <if test="managementFeeRatio !=null">
            , t.management_fee_ratio = #{managementFeeRatio}
        </if>
        <if test="firstPlannedPaymentAmount !=null">
            , t.first_planned_payment_amount = #{firstPlannedPaymentAmount}
        </if>
        <if test="plannedPaymentDate !=null">
            , t.planned_payment_date = #{plannedPaymentDate}
        </if>
        <if test="category !=null and category != ''">
            , t.category = #{category}
        </if>
        <if test="reimburser !=null and reimburser != ''">
            , t.reimburser = #{reimburser}
        </if>
        <if test="actualPaymentAmount !=null">
            , t.actual_payment_amount = #{actualPaymentAmount}
        </if>
        <if test="actualPaymentDate !=null">
            , t.actual_payment_date = #{actualPaymentDate}
        </if>
        <if test="payableAmountD !=null">
            , t.payable_amount_d = #{payableAmountD}
        </if>
        <if test="advancedPayment !=null">
            , t.advanced_payment = #{advancedPayment}
        </if>
        where 1=1
        <if test="id !=null">
            and t.id = #{id}
        </if>
    </update>
    <!-- 查询费用导入明细数量 add by wuxw 2018-07-03 -->
    <!-- 查询费用导入明细数量 -->
    <select id="queryImportFeeDetailsCount" parameterType="Map" resultType="Map">
        select count(1) count
        from maintenance_payment t
        where 1 =1
        where 1 = 1
        <if test="auxiliaryColumn !=null and auxiliaryColumn != ''">
            and t.auxiliary_column = #{auxiliaryColumn}
        </if>
@@ -317,7 +532,18 @@
        <if test="id !=null">
            and t.id = #{id}
        </if>
        <if test="paymentTarget !=null and paymentTarget != ''">
            and t.payment_target = #{paymentTarget}
        </if>
        <if test="specificAnnouncementStatus !=null and specificAnnouncementStatus != ''">
            and t.specific_announcement_status = #{specificAnnouncementStatus}
        </if>
        <if test="category !=null and category != ''">
            and t.category = #{category}
        </if>
        <if test="reimburser !=null and reimburser != ''">
            and t.reimburser like concat('%', #{reimburser}, '%')
        </if>
    </select>
    <!-- 批量插入费用 -->
@@ -335,7 +561,10 @@
        quota, owners_committee_resolution, owners_committee_consultation,
        withdrawal_encountered_problem, shortage_or_arrears, road_name, lane,
        `door`, room, door_room_number, owner_address, start_date, end_date,
        payee_name, id_card_number, bank_name, bank_account, remarks, acceptance_date, audit_date
        payee_name, id_card_number, bank_name, bank_account, remarks, acceptance_date, audit_date,
        id, payment_target, payable_amount_d, advanced_payment, specific_announcement_status,
        management_fee_ratio, first_planned_payment_amount, planned_payment_date, category,
        reimburser, actual_payment_amount, actual_payment_date
        ) values
        <foreach collection="importFeeDetailPos" item="item" separator=",">
            ( #{item.auxiliaryColumn}, #{item.flowNumber}, #{item.serialNumber}, #{item.projectCode}, #{item.projectName},
@@ -360,7 +589,13 @@
            #{item.withdrawalEncounteredProblem},
            <if test="item.shortageOrArrears == null">0</if><if test="item.shortageOrArrears != null">#{item.shortageOrArrears}</if>,
            #{item.roadName}, #{item.lane}, #{item.door}, #{item.room}, #{item.doorRoomNumber}, #{item.ownerAddress}, #{item.startDate}, #{item.endDate},
            #{item.payeeName}, #{item.idCardNumber}, #{item.bankName}, #{item.bankAccount}, #{item.remarks}, #{item.acceptanceDate}, #{item.auditDate})
            #{item.payeeName}, #{item.idCardNumber}, #{item.bankName}, #{item.bankAccount}, #{item.remarks}, #{item.acceptanceDate}, #{item.auditDate},
            #{item.id}, #{item.paymentTarget}, #{item.payableAmountD}, #{item.advancedPayment}, #{item.specificAnnouncementStatus},
            <if test="item.managementFeeRatio == null">0</if><if test="item.managementFeeRatio != null">#{item.managementFeeRatio}</if>,
            <if test="item.firstPlannedPaymentAmount == null">0</if><if test="item.firstPlannedPaymentAmount != null">#{item.firstPlannedPaymentAmount}</if>,
            #{item.plannedPaymentDate}, #{item.category}, #{item.reimburser},
            <if test="item.actualPaymentAmount == null">0</if><if test="item.actualPaymentAmount != null">#{item.actualPaymentAmount}</if>,
            #{item.actualPaymentDate})
        </foreach>
    </insert>