diff --git a/src_sql/view/vi_lc_splitting_pay_list.sql b/src_sql/view/vi_lc_splitting_pay_list.sql index a38854588..9b489c339 100644 --- a/src_sql/view/vi_lc_splitting_pay_list.sql +++ b/src_sql/view/vi_lc_splitting_pay_list.sql @@ -3,7 +3,7 @@ DELIMITER $$ ALTER ALGORITHM=UNDEFINED DEFINER=`apzl`@`%` SQL SECURITY DEFINER VIEW `vi_lc_splitting_pay_list` AS ( SELECT `o`.`ID` AS `ID`, - `di`.`distributor_name` AS `distributor_name`, + `di`.`DISTRIBUTOR_NAME` AS `distributor_name`, `lci`.`CONTRACT_NO` AS `contract_no`, `ci`.`customername` AS `customername`, `o`.`PLAN_LIST` AS `plan_list`, @@ -17,9 +17,14 @@ SELECT `vlri`.`charge_way` AS `charge_way` FROM (((((`apzl`.`lc_rent_plan` `o` LEFT JOIN `apzl`.`lb_contract_info` `lci` - ON ((`lci`.`ID` = `o`.`CONTRACT_ID`))) + ON ((`lci`.`ID` = `o`.`CONTRACT_ID`)) + LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lci.id + LEFT JOIN LC_COMMISSION_CHARGE_CONFIG lccc ON lccc.product_id=lci.product_id AND lccc.distributor_id=lci.distributor_id AND lccc.INCOME_NUMBER = lcc.lease_term + ) LEFT JOIN `apzl`.`distributor_info` `di` - ON ((`di`.`distributor_no` = `lci`.`distributor_id`))) + ON ((`di`.`distributor_no` = `lci`.`distributor_id`)) + + ) LEFT JOIN `apzl`.`lb_union_lessee` `lul` ON ((`lul`.`CONTRACT_ID` = `lci`.`ID`))) LEFT JOIN `apzl`.`customer_info` `ci` @@ -36,6 +41,9 @@ WHERE ((`o`.`CORPUS_SP` IS NOT NULL) AND (((((`vlri`.`rent` + IFNULL(`vlri`.`penalty`,0)) - `o`.`RENT`) - IFNULL(`o`.`PENALTY`,0)) >= 0) OR (`o`.`COLLECT_STATUS` = '代偿')) AND ((`o`.`splitting_status` = 'N') - OR ISNULL(`o`.`splitting_status`))))$$ + OR ISNULL(`o`.`splitting_status`)) + AND ISNULL(lccc.id) + ) +)$$ DELIMITER ; \ No newline at end of file diff --git a/src_sql/view/vi_split_config.sql b/src_sql/view/vi_split_config.sql index b5df3174a..c36bd2d6c 100644 --- a/src_sql/view/vi_split_config.sql +++ b/src_sql/view/vi_split_config.sql @@ -4,17 +4,33 @@ CREATE AS ( SELECT - lci.distributor_id AS distributor_id, - lci.id AS contract_id, - lci.CONTRACT_NO AS CONTRACT_NO, - lrp.PLAN_LIST AS plan_list, - CASE WHEN lrp.plan_list=lccc.charge_1 AND lrp.plan_list=lccc.charge_2 AND lrp.plan_list=lccc.charge_3 AND lrp.plan_list=lccc.charge_4 THEN lccc.charge_4 ELSE 0 END lccc_charge, - CASE WHEN lrp.plan_list=lccc.charge_1 AND lrp.plan_list=lccc.charge_2 AND lrp.plan_list=lccc.charge_3 AND lrp.plan_list=lccc.charge_4 THEN lccc.ratio_4 ELSE 0 END lccc_ratio - -FROM lc_commission_charge_config lccc - LEFT JOIN apzl.lb_contract_info lci - ON lccc.product_id = lci.PRODUCT_ID AND lccc.distributor_id=lci.distributor_id - LEFT JOIN (SELECT contract_id,MAX(plan_list) AS plan_list,COLLECT_STATUS,interest_sp FROM lc_rent_plan WHERE 1=1 AND COLLECT_STATUS IN ('微信', '网银收款', '代偿', '批量收款','手工收款') GROUP BY contract_id) lrp - ON lci.ID = lrp.CONTRACT_ID -WHERE lci.id NOT IN(SELECT contract_id FROM lc_split_occupy_process) AND lrp.plan_list IS NOT NULL AND lrp.interest_sp IS NOT NULL + `lci`.`distributor_id` AS `distributor_id`, + `lci`.`ID` AS `contract_id`, + `lci`.`CONTRACT_NO` AS `CONTRACT_NO`, + `lrp`.`plan_list` AS `plan_list`, + (CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN `lccc`.`charge_1` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN `lccc`.`charge_2` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN `lccc`.`charge_3` WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN `lccc`.`charge_4` ELSE 0 END) AS `lccc_charge`, + (CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN `lccc`.`ratio_1` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN `lccc`.`ratio_2` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN `lccc`.`ratio_3` WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN `lccc`.`ratio_4` ELSE 0 END) AS `lccc_ratio`, + (CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN 1 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN 2 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN 3 WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN 4 ELSE 0 END) AS `lccc_list` +FROM ((`apzl`.`lc_commission_charge_config` `lccc` + LEFT JOIN (SELECT ci.product_id,ci.distributor_id,ci.id,ci.contract_no,lcc.lease_term FROM `apzl`.`lb_contract_info` ci JOIN lc_calc_condition lcc ON ci.id=lcc.contract_id ) `lci` + ON (((`lccc`.`product_id` = `lci`.`PRODUCT_ID`) + AND (`lccc`.`distributor_id` = `lci`.`distributor_id`)) + AND lccc.income_number=lci.lease_term)) + LEFT JOIN (SELECT + `apzl`.`lc_rent_plan`.`CONTRACT_ID` AS `contract_id`, + MAX(`apzl`.`lc_rent_plan`.`PLAN_LIST`) AS `plan_list`, + `apzl`.`lc_rent_plan`.`COLLECT_STATUS` AS `COLLECT_STATUS`, + `apzl`.`lc_rent_plan`.`INTEREST_sp` AS `interest_sp`, + COUNT(0) AS `plan_count` + FROM `apzl`.`lc_rent_plan` + WHERE ((1 = 1) + AND (`apzl`.`lc_rent_plan`.`COLLECT_STATUS` IN('微信','网银收款','代偿','批量收款','手工收款'))) + GROUP BY `apzl`.`lc_rent_plan`.`CONTRACT_ID`) `lrp` + ON ((`lci`.`ID` = `lrp`.`contract_id`))) +WHERE ((NOT(`lci`.`ID` IN(SELECT + `apzl`.`lc_split_occupy_process`.`contract_id` + FROM `apzl`.`lc_split_occupy_process`))) + AND (`lrp`.`plan_list` IS NOT NULL) + AND (`lrp`.`interest_sp` IS NOT NULL) + AND (`lrp`.`plan_count` = `lrp`.`plan_list`)) ); diff --git a/src_sql/view/vi_splitting_pay.sql b/src_sql/view/vi_splitting_pay.sql index 79e2a26e0..617e2ecd7 100644 --- a/src_sql/view/vi_splitting_pay.sql +++ b/src_sql/view/vi_splitting_pay.sql @@ -33,7 +33,7 @@ FROM (((`apzl`.`vi_split_config` `o` LEFT JOIN `apzl`.`lb_union_lessee` `lul` ON (((`lul`.`CONTRACT_ID` = `o`.`contract_id`) AND (`lul`.`IS_MAIN` = 'Y')))) -WHERE (lsp.pay_list<>O.lccc_charge +WHERE (IFNULL(lsp.pay_list,0)<>O.lccc_charge AND (`o`.`lccc_charge` > 0)) )$$ diff --git a/src_tenwa/com/tenwa/lease/flow/rent/rentreback/OtherPayMethod.java b/src_tenwa/com/tenwa/lease/flow/rent/rentreback/OtherPayMethod.java index aeba0f2dc..612c0caa1 100644 --- a/src_tenwa/com/tenwa/lease/flow/rent/rentreback/OtherPayMethod.java +++ b/src_tenwa/com/tenwa/lease/flow/rent/rentreback/OtherPayMethod.java @@ -142,6 +142,7 @@ public class OtherPayMethod { try { BizObjectManager bomLspt = JBOFactory.getBizObjectManager(LC_SPLITTING_PAY_TEMP.CLASS_NAME,tx); BizObject bolspt = bomLspt.newObject(); + bolspt.setAttributeValue("contract_id", boLRP.getAttribute("CONTRACT_ID").toString()); bolspt.setAttributeValue("plan_id", plan_id); bolspt.setAttributeValue("splitting_money", splitting_money); bolspt.setAttributeValue("service_ratio", ratio.multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP).toString());