demand: TMS系统 - 客户账单管理 - 财务收款统计 - 查询收款统计列表接口适应新算法逻辑调整 TMS系统 - 客户账单管理 - 财务收款统计 - 查询收款详情接口适应新算法逻辑调整 TMS系统 - 客户账单管理 - 销售回款率统计 - 查询回款率统计列表接口适应新算法逻辑调整
This commit is contained in:
parent
ea03c30f1c
commit
5e3d62bcb1
@ -314,7 +314,8 @@
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ < ]]>
|
||||
then case
|
||||
when b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
@ -323,25 +324,79 @@
|
||||
else a.payment_due_date
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period in (30,60,90)
|
||||
and a.settle_day = '1'
|
||||
then case
|
||||
when b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period = 30 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period = 60 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when b.trade_date <![CDATA[ <= ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
else case
|
||||
when b.trade_date <![CDATA[ <= ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
end
|
||||
) AS recdMoneyIn,
|
||||
sum( if(
|
||||
a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag='0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
)
|
||||
,ifnull(d.pay_money,0) ,0) ) AS recdPayMoney60D,
|
||||
sum(
|
||||
case
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period = 30
|
||||
and a.settle_day = '1'
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
) AS recdPayMoney60D,
|
||||
sum(
|
||||
case
|
||||
when a.settle_type = '2'
|
||||
@ -362,7 +417,8 @@
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ >= ]]>
|
||||
then case
|
||||
when b.trade_date <![CDATA[ >= ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
@ -371,9 +427,34 @@
|
||||
else a.payment_due_date
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period in (30,60,90)
|
||||
and a.settle_day = '1'
|
||||
then case
|
||||
when (
|
||||
(a.credit_period = 30 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH))
|
||||
or (a.credit_period = 60 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH))
|
||||
or (a.credit_period = 90 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH))
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when (a.settle_type='2' and a.credit_period <![CDATA[ >= ]]> 30 and b.trade_date <![CDATA[ > ]]> a.payment_due_date and b.trade_date <![CDATA[ >= ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY ) ) or ( ( (a.settle_type='2' and a.credit_period <![CDATA[ < ]]> 30) or a.settle_type='1' ) and b.trade_date <![CDATA[ > ]]> a.payment_due_date )
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
then case
|
||||
when b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when ( (a.settle_type='2' and a.credit_period <![CDATA[ < ]]> 30) or a.settle_type='1' )
|
||||
then case
|
||||
when b.trade_date <![CDATA[ > ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
else 0
|
||||
end
|
||||
) AS recdPayMoneyGreat60D
|
||||
@ -933,7 +1014,8 @@
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ < ]]>
|
||||
then case
|
||||
when b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
@ -942,25 +1024,79 @@
|
||||
else a.payment_due_date
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period in (30,60,90)
|
||||
and a.settle_day = '1'
|
||||
then case
|
||||
when b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period = 30 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period = 60 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when b.trade_date <![CDATA[ <= ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
else case
|
||||
when b.trade_date <![CDATA[ <= ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
end
|
||||
) AS recdMoneyIn,
|
||||
sum( if(
|
||||
a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag='0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
)
|
||||
,ifnull(d.pay_money,0) ,0) ) AS recdPayMoney60D,
|
||||
sum(
|
||||
case
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period = 30
|
||||
and a.settle_day = '1'
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when a.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when a.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
) AS recdPayMoney60D,
|
||||
sum(
|
||||
case
|
||||
when a.settle_type = '2'
|
||||
@ -981,7 +1117,8 @@
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ >= ]]>
|
||||
then case
|
||||
when b.trade_date <![CDATA[ >= ]]>
|
||||
(
|
||||
case
|
||||
when a.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
@ -990,9 +1127,34 @@
|
||||
else a.payment_due_date
|
||||
end
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type = '2'
|
||||
and a.credit_period in (30,60,90)
|
||||
and a.settle_day = '1'
|
||||
then case
|
||||
when (
|
||||
(a.credit_period = 30 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH))
|
||||
or (a.credit_period = 60 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH))
|
||||
or (a.credit_period = 90 and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH))
|
||||
)
|
||||
then ifnull(d.pay_money,0)
|
||||
when (a.settle_type='2' and a.credit_period <![CDATA[ >= ]]> 30 and b.trade_date <![CDATA[ > ]]> a.payment_due_date and b.trade_date <![CDATA[ >= ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY ) ) or ( ( (a.settle_type='2' and a.credit_period <![CDATA[ < ]]> 30) or a.settle_type='1' ) and b.trade_date <![CDATA[ > ]]> a.payment_due_date )
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when a.settle_type='2'
|
||||
and a.credit_period <![CDATA[ >= ]]> 30
|
||||
then case
|
||||
when b.trade_date <![CDATA[ > ]]> a.payment_due_date
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_SUB( a.payment_due_date, INTERVAL (a.credit_period-60) DAY )
|
||||
then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
when ( (a.settle_type='2' and a.credit_period <![CDATA[ < ]]> 30) or a.settle_type='1' )
|
||||
then case
|
||||
when b.trade_date <![CDATA[ > ]]> a.payment_due_date then ifnull(d.pay_money,0)
|
||||
else 0
|
||||
end
|
||||
else 0
|
||||
end
|
||||
) AS recdPayMoneyGreat60D
|
||||
|
||||
@ -333,76 +333,248 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and espbr.settle_bill_no=esb.settle_bill_no
|
||||
<if test="params.queryDataType != null and params.queryDataType == 1">
|
||||
and (
|
||||
( esb.settle_type = '2'
|
||||
and esb.credit_period in (30,35,45,60,75,90)
|
||||
and EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH)
|
||||
else esb.payment_due_date
|
||||
end
|
||||
<!-- 优先级1:延期账单,账期内收款 -->
|
||||
(
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period in (30,35,45,60,75,90)
|
||||
and EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
) or b.trade_date <![CDATA[ <= ]]> esb.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH)
|
||||
else esb.payment_due_date
|
||||
end
|
||||
)
|
||||
)
|
||||
<!-- 优先级2:月结且固定结算日 -->
|
||||
OR
|
||||
(
|
||||
NOT (
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
and esb.settle_type = '2'
|
||||
and esb.credit_period in (30,60,90)
|
||||
and esb.settle_day = '1'
|
||||
and b.trade_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period = 30 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period = 60 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
end
|
||||
)
|
||||
)
|
||||
<!-- 优先级3:普通账期内收款 -->
|
||||
OR
|
||||
(
|
||||
NOT (
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
and NOT (
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period in (30,60,90)
|
||||
and esb.settle_day = '1'
|
||||
)
|
||||
and b.trade_date <![CDATA[ <= ]]> esb.payment_due_date
|
||||
)
|
||||
)
|
||||
</if>
|
||||
<if test="params.queryDataType != null and params.queryDataType == 2">
|
||||
and ( esb.settle_type='2' and esb.credit_period <![CDATA[ >= ]]> 30 and b.trade_date <![CDATA[ > ]]> esb.payment_due_date and b.trade_date <![CDATA[ > ]]> esb.payment_due_date and b.trade_date <![CDATA[ < ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag='0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
) )
|
||||
and (
|
||||
(
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period = 30
|
||||
and esb.settle_day = '1'
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
OR
|
||||
(
|
||||
NOT (
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period = 30
|
||||
and esb.settle_day = '1'
|
||||
)
|
||||
and esb.settle_type='2'
|
||||
and esb.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> esb.payment_due_date
|
||||
and b.trade_date <![CDATA[ < ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY )
|
||||
and NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = a.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(a.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
</if>
|
||||
<if test="params.queryDataType != null and params.queryDataType == 3">
|
||||
and (
|
||||
( esb.settle_type = '2'
|
||||
and esb.credit_period in (30,35,45,60,75,90)
|
||||
and EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
and b.trade_date <![CDATA[ >= ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH)
|
||||
else esb.payment_due_date
|
||||
end
|
||||
(
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period in (30,35,45,60,75,90)
|
||||
and EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
) or ( ( esb.settle_type='2' and esb.credit_period <![CDATA[ >= ]]> 30 and b.trade_date <![CDATA[ > ]]> esb.payment_due_date and b.trade_date <![CDATA[ >= ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY ) ) or ( ( (esb.settle_type='2' and esb.credit_period <![CDATA[ < ]]> 30) or esb.settle_type='1' ) and b.trade_date <![CDATA[ > ]]> esb.payment_due_date ) )
|
||||
and b.trade_date <![CDATA[ >= ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH)
|
||||
else esb.payment_due_date
|
||||
end
|
||||
)
|
||||
)
|
||||
OR
|
||||
(
|
||||
NOT (
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
and esb.settle_type = '2'
|
||||
and esb.credit_period in (30,60,90)
|
||||
and esb.settle_day = '1'
|
||||
and b.trade_date <![CDATA[ >= ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period = 30 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 60 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 5 MONTH)
|
||||
end
|
||||
)
|
||||
)
|
||||
OR
|
||||
(
|
||||
NOT (
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM emis_settle_invoice_record f
|
||||
WHERE f.del_flag = '0'
|
||||
AND f.settle_bill_no = esb.settle_bill_no
|
||||
AND f.bl_delay = '1'
|
||||
AND f.apply_date <![CDATA[ < ]]>
|
||||
(
|
||||
case
|
||||
when esb.credit_period in (30,35,45) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 2 MONTH)
|
||||
when esb.credit_period in (60,75) then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 3 MONTH)
|
||||
when esb.credit_period = 90 then DATE_ADD(STR_TO_DATE(CONCAT(REPLACE(esb.bill_month,'-',''),'01'),'%Y%m%d'), INTERVAL 4 MONTH)
|
||||
else NULL
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
and NOT (
|
||||
esb.settle_type = '2'
|
||||
and esb.credit_period in (30,60,90)
|
||||
and esb.settle_day = '1'
|
||||
|
||||
)
|
||||
and esb.settle_type='2'
|
||||
and esb.credit_period <![CDATA[ >= ]]> 30
|
||||
and b.trade_date <![CDATA[ > ]]> esb.payment_due_date
|
||||
and b.trade_date <![CDATA[ >= ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY )
|
||||
)
|
||||
)
|
||||
</if>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user