158 lines
11 KiB
XML
158 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<fenixs namespace="flow.FundCollectionFlow">
|
||
<fenix id="queryRentPlanList">
|
||
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 <> '已回笼'
|
||
<andEqual field="lrp.id" value="planId" match="?planId != empty" />
|
||
<andEqual field="lul.customer_name" value="customername" match="?customername != empty" />
|
||
<andEqual field="lci.contract_number" value="contract_number" match="?contract_number != empty" />
|
||
<andGreaterThanEqual field="lrp.plan_date" value="plan_dateStart" match="?plan_dateStart != empty" />
|
||
<andLessThanEqual field="lrp.plan_date" value="plan_dateEnd" match="?plan_dateEnd != empty" />
|
||
<andEqual field="lrp.payment_number" value="paymentNumber" match="?paymentNumber != empty" />
|
||
<andLessThan field="lrp.plan_list" value="plan_listLess" match="?plan_listLess != empty" />
|
||
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
|
||
</fenix>
|
||
<!-- lc_rent_income 表 plan_id字段未加索引,所以使用了 payment_number 和 plan_list 查询 -->
|
||
<!-- lc_rent_income_temp 表 plan_id字段未加索引,所以使用了 payment_number 和 plan_list 查询 -->
|
||
<fenix id="getRentPlanPenaltyByPlanId">
|
||
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{}
|
||
<andEqual field="payment_number" value="paymentNumber" match="?paymentNumber != empty" />
|
||
<andEqual field="plan_list" value="planList" match="?planList != empty" />
|
||
) 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{}
|
||
<andEqual field="payment_number" value="paymentNumber" match="?paymentNumber != empty" />
|
||
<andEqual field="plan_list" value="planList" match="?planList != empty" />
|
||
) lrit on lrp.payment_number = lrit.payment_number and lrp.plan_list = lrit.plan_list
|
||
<trimWhere>
|
||
<andEqual field="lrp.id" value="planId" match="?planId != empty" />
|
||
<andEqual field="lrp.payment_number" value="paymentNumber" match="?paymentNumber != empty" />
|
||
<andEqual field="lrp.plan_list" value="planList" match="?planList != empty" />
|
||
</trimWhere>
|
||
) tt
|
||
</fenix>
|
||
</fenixs> |