select lrpi.id,
lrpi.contract_id,
lrpi.contract_number,
lrpi.payment_number,
lrpi.customer_name as customername,
lrpi.plan_list,
lrpi.plan_date,
lrpi.rent,
lrpi.corpus,
lrpi.interest,
lrpi.penalty,
round(lrpi.rent - lrpi.rent_sum - lrpi.rent_sum_temp, 2) as rent_over,
round(lrpi.corpus - lrpi.corpus_sum - lrpi.corpus_sum_temp, 2) as corpus_over,
round(lrpi.interest - lrpi.interest_sum - lrpi.interest_sum_temp, 2) as interest_over,
round(lrpi.penalty - lrpi.penalty_sum - lrpi.penalty_sum_temp, 2) as penalty_over,
round(lrpi.rent + lrpi.penalty - lrpi.rent_sum - lrpi.rent_sum_temp - lrpi.penalty_sum -
lrpi.penalty_sum_temp, 2) as all_over,
case
when lrpi.rent_sum + lrpi.rent_sum_temp = 0 and lrpi.penalty_sum + lrpi.penalty_sum_temp = 0 then '未回笼'
when lrpi.rent - lrpi.rent_sum - lrpi.rent_sum_temp = 0 and
lrpi.penalty - lrpi.penalty_sum - lrpi.penalty_sum_temp = 0 then '已回笼'
else '部分回笼' end as planstatus,
round(lrpi.penalty_sum + lrpi.penalty_sum_temp, 2) as penalty_sum
from (select lrp.id,
lrp.contract_id,
lci.contract_number,
lrp.payment_number,
lul.customer_name,
lrp.plan_list,
lrp.plan_date,
lrp.rent,
lrp.corpus,
lrp.interest,
round(ifnull((select sum(lri.rent)
from lc_rent_income lri
where roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as rent_sum,
round(ifnull((select sum(lri.rent)
from lc_rent_income_temp lri
where is_flowing = '0'
and roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as rent_sum_temp,
round(ifnull((select sum(lri.corpus + lri.corpus_adjust)
from lc_rent_income lri
where roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as corpus_sum,
round(ifnull((select sum(lri.corpus + lri.corpus_adjust)
from lc_rent_income_temp lri
where is_flowing = '0'
and roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as corpus_sum_temp,
round(ifnull((select sum(lri.interest + lri.interest_adjust)
from lc_rent_income lri
where roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as interest_sum,
round(ifnull((select sum(lri.interest + lri.interest_adjust)
from lc_rent_income_temp lri
where is_flowing = '0'
and roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as interest_sum_temp,
round(ifnull((select sum(lri.penalty + penalty_adjust)
from lc_rent_income lri
where roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as penalty_sum,
round(ifnull((select sum(lri.penalty + penalty_adjust)
from lc_rent_income_temp lri
where is_flowing = '0'
and roll_back = '0'
and lri.payment_number = lrp.payment_number
and lri.plan_list = lrp.plan_list
), 0), 2) as penalty_sum_temp,
getrentpenalty(lrp.payment_number, lrp.plan_list, date_format(now(), '%Y/%m/%d')) as penalty
from lc_rent_plan lrp
left join lb_contract_info lci on lrp.contract_id = lci.id
left join lb_union_lessee lul on lrp.contract_id = lul.contract_id and lul.is_main = 'Y'
left join customer_account ca on ca.contract_id = lci.id
where lrp.plan_status <> '已回笼'
and lrp.plan_date < date_add(date_format(current_date(), '%Y-%m-01'), interval 1 month)
and lci.contract_status = '31'
and (lci.corpus_source <> 'PSBC' or isnull(lci.corpus_source))
and not exists(select 1
from lc_occupy_rent_list lorl
where lorl.payment_number = lrp.payment_number
and ((lorl.plan_id = lrp.id and
lorl.flow_name in ('微信银联收款', '微信支付收款', '网银收款')) or
lorl.flow_name in ('合同中途终止', '提前结清申请'))
)
) lrpi
select tt.penalty,
tt.fact_penalty,
tt.penalty_adjust,
tt.penalty - tt.fact_penalty - tt.penalty_adjust as penalty_over
from (select round(getrentpenalty(lrp.payment_number, lrp.plan_list, ${factDate}),
2) as penalty,
round(ifnull(lri.fact_penalty, 0) + ifnull(lrit.fact_penalty, 0), 2) as fact_penalty,
round(ifnull(lri.penalty_adjust, 0) + ifnull(lrit.penalty_adjust, 0), 2) as penalty_adjust
from lc_rent_plan lrp
left join (select payment_number,
plan_list,
sum(penalty) as fact_penalty,
sum(penalty_adjust) as penalty_adjust
from lc_rent_income
where roll_back = '0'
@if{?planId != empty}
and (payment_number, plan_list) in (select lrp1.payment_number, lrp1.plan_list from lc_rent_plan lrp1 where id = #{planId})
@end{}
) lri on lrp.payment_number = lri.payment_number and lrp.plan_list = lri.plan_list
left join (select payment_number,
plan_list,
sum(penalty) as fact_penalty,
sum(penalty_adjust) as penalty_adjust
from lc_rent_income_temp
where is_flowing = '0'
and roll_back = '0'
@if{?planId != empty}
and (payment_number, plan_list) in (select lrp1.payment_number, lrp1.plan_list from lc_rent_plan lrp1 where id = #{planId})
@end{}
) lrit on lrp.payment_number = lrit.payment_number and lrp.plan_list = lrit.plan_list
) tt