diff --git a/src_sql/procedure/proc_insert_hexiao.sql b/src_sql/procedure/proc_insert_hexiao.sql index 613318714..970f9e771 100644 --- a/src_sql/procedure/proc_insert_hexiao.sql +++ b/src_sql/procedure/proc_insert_hexiao.sql @@ -1,338 +1,617 @@ -DELIMITER $$ +create + definer = apzl@`%` procedure proc_insert_hexiao(IN ln_contract_id varchar(200), IN ln_plan_date varchar(200), IN in_rent varchar(200), + IN in_hire_list varchar(200), IN in_type varchar(2)) +BEGIN + -- 如果in_type=1就是手工核销 + IF in_type = 1 THEN + INSERT INTO LC_RENT_INCOME (ID, + QUOT_ID, + CUST_ID, + PROJECT_ID, + PROJECT_PLAN_NUMBER, + CONTRACT_ID, + CONTRACT_PLAN_NUMBER, + PAYMENT_NUMBER, + EBANK_NUMBER, + PLAN_ID, + PLAN_LIST, + INTEREST_ADJUST, + SETTLE_METHOD, + HIRE_LIST, + HIRE_DATE, + RENT, + CORPUS, + INTEREST, + PENALTY, + CORPUS_ADJUST, + PENALTY_ADJUST, + ROLL_BACK, + COIN, + hire_number, + hire_bank, + hire_account, + own_bank, + own_account, + own_number, + charge_way) + ( + SELECT REPLACE(UUID(), '-', '') AS id, + LCP2.QUOT_ID, + LCP2.CUST_ID, + LCP2.PROJECT_ID, + LCP2.PROJECT_PLAN_NUMBER, + LCP2.CONTRACT_ID, + LCP2.CONTRACT_PLAN_NUMBER, + LCP2.PAYMENT_NUMBER, + '' AS EBANK_NUMBER, + LCP2.PLAN_ID, + LCP2.PLAN_LIST, + '0' AS INTEREST_ADJUST, + 'settlemethod6' AS SETTLE_METHOD, + in_hire_list AS HIRE_LIST, + DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE, + LCP2.rent_over AS RENT, + LCP2.corpus_over AS CORPUS, + LCP2.interest_over AS INTEREST, + ( + in_rent - LCP2.corpus_over - LCP2.interest_over + ) AS PENALTY, + '0' AS CORPUS_ADJUST, + '0' AS PENALTY_ADJUST, + '0' AS ROLL_BACK, + LCP2.COIN AS COIN, + ca.acc_number, + ca.bank_name, + ca.account, + oa.acc_bank, + lci.subjectname, + oa.acc_number, + 'AutoBuckle' + FROM ( + SELECT LCP.QUOT_ID, + LCP.CUST_ID, + LCP.PROJECT_ID, + LCP.PROJECT_PLAN_NUMBER, + LCP.CONTRACT_ID, + LCP.CONTRACT_PLAN_NUMBER, + LCP.PAYMENT_NUMBER, + LCP.id AS PLAN_ID, + LCP.PLAN_LIST, + LCP.COIN, + (LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over, + (LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) + + ifnull(lcfi.corpus_adjust, 0))) AS corpus_over, + (LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) + + ifnull(lcfi.interest_adjust, 0))) AS interest_over, + round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) - + ((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) + + (ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))), + 2) AS penalty_over + FROM LC_RENT_PLAN LCP + LEFT JOIN ( + select LRI.PAYMENT_NUMBER AS payment_number, + LRI.PLAN_LIST AS plan_list, + sum(LRI.RENT) AS rent, + sum(LRI.CORPUS) AS corpus, + sum(LRI.INTEREST) AS interest, + sum(LRI.PENALTY) AS penalty, + sum(LRI.CORPUS_ADJUST) AS corpus_adjust, + sum(LRI.INTEREST_ADJUST) AS interest_adjust, + sum(LRI.PENALTY_ADJUST) AS penalty_adjust + from lc_rent_income LRI + where LRI.ROLL_BACK = '0' + AND LRI.contract_id = ln_contract_id + group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST + ) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list + left join lc_rent_income_temp_transfer lcfi + on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list + WHERE LCP.contract_id = ln_contract_id + AND LCP.plan_date = ln_plan_date + ) LCP2 + LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id + LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id + LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno + LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND + (oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010' + ); + -- in_type = 2为银联卡口手动刷新核销数据 + ELSEIF in_type = 2 THEN + INSERT INTO LC_RENT_INCOME (ID, + QUOT_ID, + CUST_ID, + PROJECT_ID, + PROJECT_PLAN_NUMBER, + CONTRACT_ID, + CONTRACT_PLAN_NUMBER, + PAYMENT_NUMBER, + EBANK_NUMBER, + PLAN_ID, + PLAN_LIST, + INTEREST_ADJUST, + SETTLE_METHOD, + HIRE_LIST, + HIRE_DATE, + RENT, + CORPUS, + INTEREST, + PENALTY, + CORPUS_ADJUST, + PENALTY_ADJUST, + ROLL_BACK, + COIN, + hire_number, + hire_bank, + hire_account, + own_bank, + own_account, + own_number, + charge_way) + ( + SELECT REPLACE(UUID(), '-', '') AS id, + LCP2.QUOT_ID, + LCP2.CUST_ID, + LCP2.PROJECT_ID, + LCP2.PROJECT_PLAN_NUMBER, + LCP2.CONTRACT_ID, + LCP2.CONTRACT_PLAN_NUMBER, + LCP2.PAYMENT_NUMBER, + '' AS EBANK_NUMBER, + LCP2.PLAN_ID, + LCP2.PLAN_LIST, + '0' AS INTEREST_ADJUST, + 'settlemethod6' AS SETTLE_METHOD, + in_hire_list AS HIRE_LIST, + DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.rent_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN in_rent - LCP2.penalty_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent > LCP2.penalty_over THEN in_rent - LCP2.penalty_over + ELSE '0' + END RENT, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.corpus_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN in_rent - (LCP2.penalty_over + LCP2.interest_over) + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN '0' + ELSE '0' + END CORPUS, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.interest_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN LCP2.interest_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN in_rent - LCP2.penalty_over + ELSE '0' + END INTEREST, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.penalty_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN LCP2.penalty_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN LCP2.penalty_over + ELSE in_rent + END AS PENALTY, + '0' AS CORPUS_ADJUST, + '0' AS PENALTY_ADJUST, + '0' AS ROLL_BACK, + LCP2.COIN AS COIN, + ca.acc_number, + ca.bank_name, + ca.account, + oa.acc_bank, + lci.subjectname, + oa.acc_number, + 'AutoBuckle' + FROM ( + SELECT LCP.QUOT_ID, + LCP.CUST_ID, + LCP.PROJECT_ID, + LCP.PROJECT_PLAN_NUMBER, + LCP.CONTRACT_ID, + LCP.CONTRACT_PLAN_NUMBER, + LCP.PAYMENT_NUMBER, + LCP.id AS PLAN_ID, + LCP.PLAN_LIST, + LCP.COIN, + (LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over, + (LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) + + ifnull(lcfi.corpus_adjust, 0))) AS corpus_over, + (LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) + + ifnull(lcfi.interest_adjust, 0))) AS interest_over, + round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) - + ((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) + + (ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))), + 2) AS penalty_over + FROM LC_RENT_PLAN LCP + LEFT JOIN ( + select LRI.PAYMENT_NUMBER AS payment_number, + LRI.PLAN_LIST AS plan_list, + sum(LRI.RENT) AS rent, + sum(LRI.CORPUS) AS corpus, + sum(LRI.INTEREST) AS interest, + sum(LRI.PENALTY) AS penalty, + sum(LRI.CORPUS_ADJUST) AS corpus_adjust, + sum(LRI.INTEREST_ADJUST) AS interest_adjust, + sum(LRI.PENALTY_ADJUST) AS penalty_adjust + from lc_rent_income LRI + where LRI.ROLL_BACK = '0' + AND LRI.contract_id = ln_contract_id + group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST + ) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list + left join lc_rent_income_temp_transfer lcfi + on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list + WHERE LCP.contract_id = ln_contract_id + AND LCP.plan_date = ln_plan_date + ) LCP2 + LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id + LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id + LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno + LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND + (oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010' + ); -USE `apzl`$$ + -- 如果in_type=3就是经销商保证金代偿,in_hire_list为核销罚息金额 + ELSEIF in_type = 3 THEN + INSERT INTO LC_RENT_INCOME (ID, + QUOT_ID, + CUST_ID, + PROJECT_ID, + PROJECT_PLAN_NUMBER, + CONTRACT_ID, + CONTRACT_PLAN_NUMBER, + PAYMENT_NUMBER, + EBANK_NUMBER, + PLAN_ID, + PLAN_LIST, + INTEREST_ADJUST, + SETTLE_METHOD, + HIRE_LIST, + HIRE_DATE, + RENT, + CORPUS, + INTEREST, + PENALTY, + CORPUS_ADJUST, + PENALTY_ADJUST, + ROLL_BACK, + COIN, + hire_number, + hire_bank, + hire_account, + own_bank, + own_account, + own_number, + charge_way) + ( + SELECT REPLACE(UUID(), '-', '') AS id, + LCP2.QUOT_ID, + LCP2.CUST_ID, + LCP2.PROJECT_ID, + LCP2.PROJECT_PLAN_NUMBER, + LCP2.CONTRACT_ID, + LCP2.CONTRACT_PLAN_NUMBER, + LCP2.PAYMENT_NUMBER, + '' AS EBANK_NUMBER, + LCP2.PLAN_ID, + LCP2.PLAN_LIST, + '0' AS INTEREST_ADJUST, + 'settlemethod6' AS SETTLE_METHOD, + in_hire_list AS HIRE_LIST, + DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE, + LCP2.rent_over AS RENT, + LCP2.corpus_over AS CORPUS, + LCP2.interest_over AS INTEREST, + in_hire_list AS PENALTY, + '0' AS CORPUS_ADJUST, + penalty_over - in_hire_list AS PENALTY_ADJUST, + '0' AS ROLL_BACK, + LCP2.COIN, + ca.acc_number, + ca.bank_name, + ca.account, + oa.acc_bank, + lci.subjectname, + oa.acc_number, + 'AutoBuckle' + FROM ( + SELECT LCP.QUOT_ID, + LCP.CUST_ID, + LCP.PROJECT_ID, + LCP.PROJECT_PLAN_NUMBER, + LCP.CONTRACT_ID, + LCP.CONTRACT_PLAN_NUMBER, + LCP.PAYMENT_NUMBER, + LCP.id AS PLAN_ID, + LCP.PLAN_LIST, + LCP.COIN, + (LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over, + (LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) + + ifnull(lcfi.corpus_adjust, 0))) AS corpus_over, + (LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) + + ifnull(lcfi.interest_adjust, 0))) AS interest_over, + round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) - + ((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) + + (ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))), + 2) AS penalty_over + FROM LC_RENT_PLAN LCP + LEFT JOIN ( + select LRI.PAYMENT_NUMBER AS payment_number, + LRI.PLAN_LIST AS plan_list, + sum(LRI.RENT) AS rent, + sum(LRI.CORPUS) AS corpus, + sum(LRI.INTEREST) AS interest, + sum(LRI.PENALTY) AS penalty, + sum(LRI.CORPUS_ADJUST) AS corpus_adjust, + sum(LRI.INTEREST_ADJUST) AS interest_adjust, + sum(LRI.PENALTY_ADJUST) AS penalty_adjust + from lc_rent_income LRI + where LRI.ROLL_BACK = '0' + AND LRI.contract_id = ln_contract_id + group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST + ) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list + left join lc_rent_income_temp_transfer lcfi + on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list + WHERE LCP.contract_id = ln_contract_id + AND LCP.plan_date = ln_plan_date + ) LCP2 + LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id + LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id + LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno + LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND + (oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010' + ); -DROP PROCEDURE IF EXISTS `proc_insert_hexiao`$$ - -CREATE DEFINER=`apzl`@`%` PROCEDURE `proc_insert_hexiao`(IN ln_contract_id VARCHAR(200), IN ln_plan_date VARCHAR(200), - IN in_rent VARCHAR(200), IN in_hire_list VARCHAR(200), - IN in_type VARCHAR(2)) -BEGIN - -- 如果in_type=1就是手工核销 - IF in_type = 1 THEN - INSERT INTO LC_RENT_INCOME ( - ID, - QUOT_ID, - CUST_ID, - PROJECT_ID, - PROJECT_PLAN_NUMBER, - CONTRACT_ID, - CONTRACT_PLAN_NUMBER, - PAYMENT_NUMBER, - EBANK_NUMBER, - PLAN_ID, - PLAN_LIST, - INTEREST_ADJUST, - SETTLE_METHOD, - HIRE_LIST, - HIRE_DATE, - RENT, - CORPUS, - INTEREST, - PENALTY, - CORPUS_ADJUST, - PENALTY_ADJUST, - ROLL_BACK, - COIN, - hire_number, - hire_bank, - hire_account, - own_bank, - own_account, - own_number, - charge_way -) - (SELECT - REPLACE (UUID(), '-', '') AS id, - O.QUOT_ID AS QUOT_ID, - O.CUST_ID AS CUST_ID, - O.PROJECT_ID AS PROJECT_ID, - O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER, - O.CONTRACT_ID AS CONTRACT_ID, - O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER, - O.PAYMENT_NUMBER AS PAYMENT_NUMBER, - '' AS EBANK_NUMBER, - O.id AS PLAN_ID, - O.PLAN_LIST AS PLAN_LIST, - '0' AS INTEREST_ADJUST, - 'settlemethod6' AS SETTLE_METHOD, - in_hire_list AS HIRE_LIST, - DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE, - vl.rent_over AS RENT, - vl.corpus_over AS CORPUS, - vl.interest_over AS INTEREST, - ( - in_rent - vl.corpus_over - vl.interest_over - ) AS PENALTY, - '0' AS CORPUS_ADJUST, - '0' AS PENALTY_ADJUST, - '0' AS ROLL_BACK, - O.COIN AS COIN , - ca.acc_number, - ca.bank_name, - ca.account, - oa.acc_bank, - lci.subjectname, - oa.acc_number, - 'AutoBuckle' - FROM - LC_RENT_PLAN O, - VI_LC_RENT_PLAN vl - LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id - LEFT JOIN lb_contract_info lci ON vl.contract_id=lci.id - LEFT JOIN code_library cl ON cl.codeno='ManySubject' AND lci.subjectid=cl.itemno - LEFT JOIN own_account oa ON oa.own_id=cl.bankno AND account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account') - WHERE O.id = vl.id - AND vl.contract_id =ln_contract_id - AND vl.plan_date = ln_plan_date - GROUP BY oa.own_id) ; - -- in_type = 2为银联卡口手动刷新核销数据 -ELSEIF in_type = 2 THEN -INSERT INTO LC_RENT_INCOME ( - ID, - QUOT_ID, - CUST_ID, - PROJECT_ID, - PROJECT_PLAN_NUMBER, - CONTRACT_ID, - CONTRACT_PLAN_NUMBER, - PAYMENT_NUMBER, - EBANK_NUMBER, - PLAN_ID, - PLAN_LIST, - INTEREST_ADJUST, - SETTLE_METHOD, - HIRE_LIST, - HIRE_DATE, - RENT, - CORPUS, - INTEREST, - PENALTY, - CORPUS_ADJUST, - PENALTY_ADJUST, - ROLL_BACK, - COIN, - hire_number, - hire_bank, - hire_account, - own_bank, - own_account, - own_number, - charge_way -) -(SELECT - REPLACE (UUID (), '-', '') AS id, - O.QUOT_ID AS QUOT_ID, - O.CUST_ID AS CUST_ID, - O.PROJECT_ID AS PROJECT_ID, - O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER, - O.CONTRACT_ID AS CONTRACT_ID, - O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER, - O.PAYMENT_NUMBER AS PAYMENT_NUMBER, - '' AS EBANK_NUMBER, - O.id AS PLAN_ID, - O.PLAN_LIST AS PLAN_LIST, - '0' AS INTEREST_ADJUST, - 'settlemethod6' AS SETTLE_METHOD, - in_hire_list AS HIRE_LIST, - DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE, -CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.rent_over - WHEN in_rent=vl.interest_over+vl.penalty_over THEN in_rent-vl.penalty_over - WHEN in_rentvl.penalty_over THEN in_rent-vl.penalty_over - ELSE '0' - END RENT, -CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.corpus_over - WHEN in_rent=vl.interest_over+vl.penalty_over THEN in_rent-(vl.penalty_over+vl.interest_over) - WHEN in_rent=vl.penalty_over THEN '0' - ELSE '0' - END CORPUS, -CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.interest_over - WHEN in_rent=vl.interest_over+vl.penalty_over THEN vl.interest_over - WHEN in_rent=vl.penalty_over THEN in_rent-vl.penalty_over - ELSE '0' - END INTEREST, - CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.penalty_over - WHEN in_rent=vl.interest_over+vl.penalty_over THEN vl.penalty_over - WHEN in_rent=vl.penalty_over THEN vl.penalty_over - ELSE in_rent - END AS PENALTY, -'0' AS CORPUS_ADJUST, - '0' AS PENALTY_ADJUST, - '0' AS ROLL_BACK, - O.COIN AS COIN , - ca.acc_number, - ca.bank_name, - ca.account, - oa.acc_bank, - lci.subjectname, - oa.acc_number, - 'AutoBuckle' -FROM - LC_RENT_PLAN O, - VI_LC_RENT_PLAN vl - LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id - LEFT JOIN lb_contract_info lci ON vl.contract_id=lci.id - LEFT JOIN code_library cl ON cl.codeno='ManySubject' AND lci.subjectid=cl.itemno - LEFT JOIN own_account oa ON oa.own_id=cl.bankno AND account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account') - WHERE O.id = vl.id - AND vl.contract_id =ln_contract_id - AND vl.plan_date = ln_plan_date - GROUP BY oa.own_id) ; - - -- 如果in_type=3就是经销商保证金代偿,in_hire_list为核销罚息金额 - ELSEIF in_type = 3 THEN - INSERT INTO LC_RENT_INCOME ( - ID, - QUOT_ID, - CUST_ID, - PROJECT_ID, - PROJECT_PLAN_NUMBER, - CONTRACT_ID, - CONTRACT_PLAN_NUMBER, - PAYMENT_NUMBER, - EBANK_NUMBER, - PLAN_ID, - PLAN_LIST, - INTEREST_ADJUST, - SETTLE_METHOD, - HIRE_LIST, - HIRE_DATE, - RENT, - CORPUS, - INTEREST, - PENALTY, - CORPUS_ADJUST, - PENALTY_ADJUST, - ROLL_BACK, - COIN, - hire_number, - hire_bank, - hire_account, - own_bank, - own_account, - own_number, - charge_way -) - (SELECT - REPLACE (UUID(), '-', '') AS id, - O.QUOT_ID AS QUOT_ID, - O.CUST_ID AS CUST_ID, - O.PROJECT_ID AS PROJECT_ID, - O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER, - O.CONTRACT_ID AS CONTRACT_ID, - O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER, - O.PAYMENT_NUMBER AS PAYMENT_NUMBER, - '' AS EBANK_NUMBER, - O.id AS PLAN_ID, - O.PLAN_LIST AS PLAN_LIST, - '0' AS INTEREST_ADJUST, - 'settlemethod6' AS SETTLE_METHOD, - '1' AS HIRE_LIST, - DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE, - vl.rent_over AS RENT, - vl.corpus_over AS CORPUS, - vl.interest_over AS INTEREST, - in_hire_list AS PENALTY, - '0' AS CORPUS_ADJUST, - penalty_over-in_hire_list AS PENALTY_ADJUST, - '0' AS ROLL_BACK, - O.COIN AS COIN , - ca.acc_number, - ca.bank_name, - ca.account, - oa.acc_bank, - lci.subjectname, - oa.acc_number, - 'AutoBuckle' - FROM - LC_RENT_PLAN O, - VI_LC_RENT_PLAN vl - LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id - LEFT JOIN lb_contract_info lci ON vl.contract_id=lci.id - LEFT JOIN code_library cl ON cl.codeno='ManySubject' AND lci.subjectid=cl.itemno - LEFT JOIN own_account oa ON oa.own_id=cl.bankno AND account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account') - WHERE O.id = vl.id - AND vl.contract_id =ln_contract_id - AND vl.plan_date = ln_plan_date - GROUP BY oa.own_id ) ; - - -- in_type = 4 为微信还款 -ELSEIF in_type = 4 THEN - INSERT INTO LC_RENT_INCOME ( - ID, - QUOT_ID, - CUST_ID, - PROJECT_ID, - PROJECT_PLAN_NUMBER, - CONTRACT_ID, - CONTRACT_PLAN_NUMBER, - PAYMENT_NUMBER, - EBANK_NUMBER, - PLAN_ID, - PLAN_LIST, - INTEREST_ADJUST, - SETTLE_METHOD, - HIRE_LIST, - HIRE_DATE, - RENT, - CORPUS, - INTEREST, - PENALTY, - CORPUS_ADJUST, - PENALTY_ADJUST, - ROLL_BACK, - COIN, - hire_number, - hire_bank, - hire_account, - own_bank, - own_account, - own_number, - charge_way -) - (SELECT - REPLACE (UUID(), '-', '') AS id, - O.QUOT_ID AS QUOT_ID, - O.CUST_ID AS CUST_ID, - O.PROJECT_ID AS PROJECT_ID, - O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER, - O.CONTRACT_ID AS CONTRACT_ID, - O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER, - O.PAYMENT_NUMBER AS PAYMENT_NUMBER, - '' AS EBANK_NUMBER, - O.id AS PLAN_ID, - O.PLAN_LIST AS PLAN_LIST, - '0' AS INTEREST_ADJUST, - 'settlemethod6' AS SETTLE_METHOD, - '1' AS HIRE_LIST, - DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE, - vl.rent_over AS RENT, - vl.corpus_over AS CORPUS, - vl.interest_over AS INTEREST, - ( - in_rent - vl.corpus_over - vl.interest_over - ) AS PENALTY, - '0' AS CORPUS_ADJUST, - '0' AS PENALTY_ADJUST, - '0' AS ROLL_BACK, - O.COIN AS COIN , - '', - '', - '', - CASE ln_plan_date WHEN '微信支付' THEN '中国银行股份有限公司北京潘家园支行' ELSE '上海浦东发展银行股份有限公司深圳文锦支行' END, - CASE ln_plan_date WHEN '微信支付' THEN '北京安鹏昌达资产管理有限公司' ELSE '安鹏国际融资租赁(深圳)有限公司' END, - CASE ln_plan_date WHEN '微信支付' THEN '344167318076' ELSE '79220155300000518' END, - CASE ln_plan_date WHEN '微信支付' THEN 'WXPay' ELSE 'WXUnionPay' END - FROM - LC_RENT_PLAN O, - VI_LC_RENT_PLAN vl - LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id - WHERE O.id = vl.id - AND vl.contract_id =ln_contract_id - AND vl.plan_list = in_hire_list ) ; - ELSE - SELECT 1; -END IF; -END$$ - -DELIMITER ; \ No newline at end of file + -- in_type = 4 为微信还款 + ELSEIF in_type = 4 THEN + INSERT INTO LC_RENT_INCOME (ID, + QUOT_ID, + CUST_ID, + PROJECT_ID, + PROJECT_PLAN_NUMBER, + CONTRACT_ID, + CONTRACT_PLAN_NUMBER, + PAYMENT_NUMBER, + EBANK_NUMBER, + PLAN_ID, + PLAN_LIST, + INTEREST_ADJUST, + SETTLE_METHOD, + HIRE_LIST, + HIRE_DATE, + RENT, + CORPUS, + INTEREST, + PENALTY, + CORPUS_ADJUST, + PENALTY_ADJUST, + ROLL_BACK, + COIN, + hire_number, + hire_bank, + hire_account, + own_bank, + own_account, + own_number, + charge_way) + ( + SELECT REPLACE(UUID(), '-', '') AS id, + LCP2.QUOT_ID, + LCP2.CUST_ID, + LCP2.PROJECT_ID, + LCP2.PROJECT_PLAN_NUMBER, + LCP2.CONTRACT_ID, + LCP2.CONTRACT_PLAN_NUMBER, + LCP2.PAYMENT_NUMBER, + '' AS EBANK_NUMBER, + LCP2.PLAN_ID, + LCP2.PLAN_LIST, + '0' AS INTEREST_ADJUST, + 'settlemethod6' AS SETTLE_METHOD, + in_hire_list AS HIRE_LIST, + DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE, + LCP2.rent_over AS RENT, + LCP2.corpus_over AS CORPUS, + LCP2.interest_over AS INTEREST, + ( + in_rent - LCP2.corpus_over - LCP2.interest_over + ) AS PENALTY, + '0' AS CORPUS_ADJUST, + '0' AS PENALTY_ADJUST, + '0' AS ROLL_BACK, + LCP2.COIN, + '', + '', + '', + CASE ln_plan_date WHEN 'WXPay' THEN '中国银行股份有限公司北京潘家园支行' ELSE lms.bank_name END, + CASE ln_plan_date WHEN 'WXPay' THEN '北京安鹏昌达资产管理有限公司' ELSE lms.acc_name END, + CASE ln_plan_date WHEN 'WXPay' THEN '344167318076' ELSE lms.acc_number END, + CASE ln_plan_date WHEN 'WXPay' THEN 'WXPay' ELSE 'WXUnionPay' END + FROM ( + SELECT LCP.QUOT_ID, + LCP.CUST_ID, + LCP.PROJECT_ID, + LCP.PROJECT_PLAN_NUMBER, + LCP.CONTRACT_ID, + LCP.CONTRACT_PLAN_NUMBER, + LCP.PAYMENT_NUMBER, + LCP.id AS PLAN_ID, + LCP.PLAN_LIST, + LCP.COIN, + (LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over, + (LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) + + ifnull(lcfi.corpus_adjust, 0))) AS corpus_over, + (LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) + + ifnull(lcfi.interest_adjust, 0))) AS interest_over, + round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) - + ((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) + + (ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))), + 2) AS penalty_over + FROM LC_RENT_PLAN LCP + LEFT JOIN ( + select LRI.PAYMENT_NUMBER AS payment_number, + LRI.PLAN_LIST AS plan_list, + sum(LRI.RENT) AS rent, + sum(LRI.CORPUS) AS corpus, + sum(LRI.INTEREST) AS interest, + sum(LRI.PENALTY) AS penalty, + sum(LRI.CORPUS_ADJUST) AS corpus_adjust, + sum(LRI.INTEREST_ADJUST) AS interest_adjust, + sum(LRI.PENALTY_ADJUST) AS penalty_adjust + from lc_rent_income LRI + where LRI.ROLL_BACK = '0' + AND LRI.contract_id = ln_contract_id + group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST + ) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list + left join lc_rent_income_temp_transfer lcfi + on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list + WHERE LCP.contract_id = ln_contract_id + AND LCP.plan_date = ln_plan_date + ) LCP2 + LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id + LEFT JOIN LB_MANY_SUBJECT lms ON lms.subject_id = LCI.subjectid AND lms.is_enable = 'Y' + ); + -- in_type = 5为通联扣款 + ELSEIF in_type = 5 THEN + INSERT INTO LC_RENT_INCOME (ID, + QUOT_ID, + CUST_ID, + PROJECT_ID, + PROJECT_PLAN_NUMBER, + CONTRACT_ID, + CONTRACT_PLAN_NUMBER, + PAYMENT_NUMBER, + EBANK_NUMBER, + PLAN_ID, + PLAN_LIST, + INTEREST_ADJUST, + SETTLE_METHOD, + HIRE_LIST, + HIRE_DATE, + RENT, + CORPUS, + INTEREST, + PENALTY, + CORPUS_ADJUST, + PENALTY_ADJUST, + ROLL_BACK, + COIN, + hire_number, + hire_bank, + hire_account, + own_bank, + own_account, + own_number, + charge_way) + ( + SELECT REPLACE(UUID(), '-', '') AS id, + LCP2.QUOT_ID, + LCP2.CUST_ID, + LCP2.PROJECT_ID, + LCP2.PROJECT_PLAN_NUMBER, + LCP2.CONTRACT_ID, + LCP2.CONTRACT_PLAN_NUMBER, + LCP2.PAYMENT_NUMBER, + '' AS EBANK_NUMBER, + LCP2.PLAN_ID, + LCP2.PLAN_LIST, + '0' AS INTEREST_ADJUST, + 'settlemethod6' AS SETTLE_METHOD, + in_hire_list AS HIRE_LIST, + DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.rent_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN in_rent - LCP2.penalty_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent > LCP2.penalty_over THEN in_rent - LCP2.penalty_over + ELSE '0' + END RENT, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.corpus_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN in_rent - (LCP2.penalty_over + LCP2.interest_over) + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN '0' + ELSE '0' + END CORPUS, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.interest_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN LCP2.interest_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN in_rent - LCP2.penalty_over + ELSE '0' + END INTEREST, + CASE + WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.penalty_over + WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND + in_rent >= LCP2.interest_over + LCP2.penalty_over + THEN LCP2.penalty_over + WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN LCP2.penalty_over + ELSE in_rent + END AS PENALTY, + '0' AS CORPUS_ADJUST, + '0' AS PENALTY_ADJUST, + '0' AS ROLL_BACK, + LCP2.COIN AS COIN, + ca.acc_number, + ca.bank_name, + ca.account, + oa.acc_bank, + lci.subjectname, + oa.acc_number, + 'TLCollect' + FROM ( + SELECT LCP.QUOT_ID, + LCP.CUST_ID, + LCP.PROJECT_ID, + LCP.PROJECT_PLAN_NUMBER, + LCP.CONTRACT_ID, + LCP.CONTRACT_PLAN_NUMBER, + LCP.PAYMENT_NUMBER, + LCP.id AS PLAN_ID, + LCP.PLAN_LIST, + LCP.COIN, + (LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over, + (LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) + + ifnull(lcfi.corpus_adjust, 0))) AS corpus_over, + (LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) + + ifnull(lcfi.interest_adjust, 0))) AS interest_over, + round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) - + ((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) + + (ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))), + 2) AS penalty_over + FROM LC_RENT_PLAN LCP + LEFT JOIN ( + select LRI.PAYMENT_NUMBER AS payment_number, + LRI.PLAN_LIST AS plan_list, + sum(LRI.RENT) AS rent, + sum(LRI.CORPUS) AS corpus, + sum(LRI.INTEREST) AS interest, + sum(LRI.PENALTY) AS penalty, + sum(LRI.CORPUS_ADJUST) AS corpus_adjust, + sum(LRI.INTEREST_ADJUST) AS interest_adjust, + sum(LRI.PENALTY_ADJUST) AS penalty_adjust + from lc_rent_income LRI + where LRI.ROLL_BACK = '0' + AND LRI.contract_id = ln_contract_id + group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST + ) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list + left join lc_rent_income_temp_transfer lcfi + on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list + WHERE LCP.contract_id = ln_contract_id + AND LCP.plan_date = ln_plan_date + ) LCP2 + LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id + LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id + LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno + LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND + (oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010' + ); + ELSE + SELECT 1; + END IF; +END; \ No newline at end of file