@ -16,67 +16,26 @@
a1.bankName,
a1.bankName,
a1.bankContractNo,
a1.bankContractNo,
a1.dueMoney AS bankMonthRep,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
MIN( a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) +
SUM(a1.yq_total) + IFNULL(
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
(SELECT
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()
AND lrpd.busVinSid = a1.busVinSid)),
0
)
) AS beOverdueMoney,
ROUND(
ROUND(
(
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
SUM(a1.yq_total) + IFNULL(
MAX(a1.qjyh), -- 保证聚合正确性
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()
AND lrpd.busVinSid = a1.busVinSid)),
0
)
) / a1.qjyh,
1
1
) AS beOverdueMoneyAndPeriod,
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
a1.riskStaffUserName,
MAX(a1.riskStaffUserName) AS riskStaffUserName,
a1.reaRepaymentName AS repaymentName,
MAX(a1.reaRepaymentName) AS repaymentName,
a1.createTime,
MAX(a1.createTime) AS createTime,
a1.orgSidPath,
a1.orgSidPath,
a1.lockCarState
MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM
FROM (
( SELECT
SELECT
lrpd.sid,
lrpd.sid,
lrpd.busVinSid,
lrpd.busVinSid,
lrpd.useOrgName,
lrpd.useOrgName,
@ -89,63 +48,67 @@
lrpd.bankContractNo,
lrpd.bankContractNo,
lrpd.dueMoney,
lrpd.dueMoney,
lrpd.dueDate,
lrpd.dueDate,
(
COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)
lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
) AS qjyh,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.dueMoney AS yq_hsqs,
lrpd.paymentMoney AS yd_dkje,
lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
bv.riskStaffUserName,
bv.reaRepaymentName,
bv.reaRepaymentName,
lr.createTime,
lbcr.createTime,
(SELECT
CASE lbcv.lockCarState
CASE
WHEN 0 THEN '未控制'
lbcv.lockCarState
WHEN 1 THEN '控制成功'
WHEN 0
WHEN 2 THEN '控制失败'
THEN '未控制'
WHEN 3 THEN '已解控'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
END AS lockCarState
END AS lockCarState
FROM
FROM loan_repayment_plan_details lrpd
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbca.createTime DESC
LIMIT 1) AS lockCarState
FROM
loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
ON lrh.planDetailSid = lrpd.sid
INNER JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid
ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs
LEFT JOIN (
ON lrpd.scheduleSid = lrs.sid
SELECT
LEFT JOIN
(SELECT
saleVehSid,
saleVehSid,
createTime
MAX(createTime) AS createTime -- 取最新记录
FROM
FROM loan_be_collection_record
loan_be_collection_record
GROUP BY saleVehSid
ORDER BY createTime DESC) lr
) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN (
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()
SELECT
lbcv.saleVehSid,
lbcv.lockCarState,
ROW_NUMBER() OVER (PARTITION BY lbcv.saleVehSid ORDER BY lbca.createTime DESC) AS rn
FROM loan_be_collection_veh lbcv
JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
) lbcv ON lbcv.saleVehSid = lrpd.busVinSid AND lbcv.rn = 1
WHERE lrpd.dueDate < CURDATE() -- 移除DATE_FORMAT函数
GROUP BY lrpd.sid
GROUP BY lrpd.sid
HAVING (yq_total > 0)) a1
HAVING (lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) > 0
) a1
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
GROUP BY saleVehSid
) lbpv_sum ON lbpv_sum.saleVehSid = a1.busVinSid
LEFT JOIN (
SELECT
lrpd.busVinSid,
SUM(lfd.fund) AS fund_sum
FROM loan_fund_day lfd
JOIN loan_repayment_plan_details lrpd
ON lrpd.sid = lfd.busSid
WHERE lrpd.dueDate < CURDATE()
GROUP BY lrpd.busVinSid
) lfd_sum ON lfd_sum.busVinSid = a1.busVinSid
<where >
<where >
${ew.sqlSegment}
${ew.sqlSegment}
</where>
</where>
@ -162,134 +125,113 @@
<select id= "initVehListByBorrSid"
<select id= "initVehListByBorrSid"
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
SELECT
SELECT
RIGHT (a1.vinNo, 8) AS vinNo,
RIGHT(a1.vinNo, 8) AS vinNo,
a1.customer AS custName,
MAX(a1.customer) AS custName, -- 使用聚合函数确保分组正确
a1.mobile AS custPhone,
MAX(a1.mobile) AS custPhone,
a1.loanContractNo,
a1.loanContractNo,
a1.bankContractNo,
MAX(a1.bankContractNo) AS bankContractNo,
a1.bankName,
MAX(a1.bankName) AS bankName,
a1.borrowerName AS loanName,
MAX(a1.borrowerName) AS loanName,
a1.vehMark AS carNum,
MAX(a1.vehMark) AS carNum,
a1.dueDate AS firstBeDate,
MIN(a1.dueDate) AS firstBeDate, -- 根据业务需求确定合适的聚合函数
COUNT(a1.sid) AS beOverduePeriod,
COUNT(a1.sid) AS beOverduePeriod,
(
CAST(SUM(a1.yq_total) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.bankBeInter_sum), 0) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.fund_sum), 0) AS DECIMAL(10,2)) AS beOverdueMoney,
SUM(a1.yq_total) + IFNULL(
ROUND(
(SELECT
(SUM(a1.yq_total) + IFNULL(MAX(a1.bankBeInter_sum), 0) + IFNULL(MAX(a1.fund_sum), 0)) / MAX(a1.qjyh),
SUM(lbpv.bankBeInter)
1
FROM
) AS beOverdueMoneyAndPeriod,
loan_be_padsincere_veh lbpv
a1.busVinSid AS saleVehSid,
WHERE lbpv.saleVehSid = a1.busVinSid),
MAX(a1.salesOrderSid) AS salesOrderSid,
0
MAX(a1.lockCarState) AS lockCarState
) + IFNULL(
FROM (
(SELECT
SELECT
SUM(fund)
lrpd.sid,
FROM
lrpd.busVinSid,
loan_fund_day
lrpd.loanContractNo,
WHERE busSid IN
lrpd.bankContractNo,
(SELECT
lrpd.vinNo,
lrpd.sid
lrpd.bankName,
FROM
lrpd.borrowerName,
loan_repayment_plan_details lrpd
lrpd.dueDate,
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())),
lrpd.vehMark,
0
lrpd.dueMoney,
)
(IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)) AS qjyh,
) AS beOverdueMoney,
(lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) AS yq_total,
ROUND((
lbpv_agg.bankBeInter_sum,
SUM(a1.yq_total) + IFNULL(
lfd_agg.fund_sum,
(SELECT
lrpd.customer,
SUM(lbpv.bankBeInter)
ct.mobile,
FROM
lrpd.borrowerSid,
loan_be_padsincere_veh lbpv
lrpd.salesOrderSid,
WHERE lbpv.saleVehSid = a1.busVinSid),
lbcv_agg.lockCarState
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())),
0
)
) / a1.qjyh, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarState
FROM
FROM
(SELECT
loan_repayment_plan_details lrpd
lrpd.sid,
LEFT JOIN loan_repayment_history lrh
lrpd.busVinSid,
ON lrh.planDetailSid = lrpd.sid
lrpd.loanContractNo,
LEFT JOIN loan_repayment_schedule lrs
lrpd.bankContractNo,
ON lrpd.scheduleSid = lrs.sid
lrpd.vinNo,
LEFT JOIN anrui_crm.crm_customer_temp ct
lrpd.bankName,
ON lrpd.customerSid = ct.sid
lrpd.borrowerName,
LEFT JOIN (
lrpd.dueDate,
SELECT
lrpd.vehMark,
saleVehSid,
lrpd.dueMoney,
CASE lockCarState
(IFNULL(lrs.mainMidRepay,0) + IFNULL(lrs.otherMidRepay,0)) AS qjyh,
WHEN 0 THEN '未控制'
(
WHEN 1 THEN '控制成功'
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
WHEN 2 THEN '控制失败'
) AS yq_total,
WHEN 3 THEN '已解控'
(
END AS lockCarState
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
FROM (
) / lrpd.dueMoney AS yq_hsqs,
SELECT
lrpd.customer,
lbcv.saleVehSid,
ct.mobile,
lbcv.lockCarState,
lr.createTime,
ROW_NUMBER() OVER (
lrpd.borrowerSid,
PARTITION BY lbcv.saleVehSid
lrpd.salesOrderSid,
ORDER BY lbca.createTime DESC
(SELECT
) AS rn
CASE
FROM loan_be_collection_veh lbcv
lbcv.lockCarState
LEFT JOIN loan_be_collection_apply lbca
WHEN 0
ON lbca.sid = lbcv.mainSid
THEN '未控制'
WHERE
WHEN 1
lbca.collMeasure LIKE '%远程控制%'
THEN '控制成功'
AND lbca.nodeState = '已办结'
WHEN 2
) t WHERE rn = 1
THEN '控制失败'
) lbcv_agg
WHEN 3
ON lbcv_agg.saleVehSid = lrpd.busVinSid
THEN '已解控'
LEFT JOIN (
END AS lockCarState
SELECT
FROM
saleVehSid,
loan_be_collection_veh lbcv
SUM(bankBeInter) AS bankBeInter_sum
LEFT JOIN loan_be_collection_apply lbca
FROM loan_be_padsincere_veh
ON lbca.sid = lbcv.mainSid
GROUP BY saleVehSid
WHERE lbca.collMeasure LIKE '%远程控制%'
) lbpv_agg
AND lbca.nodeState = '已办结'
ON lbpv_agg.saleVehSid = lrpd.busVinSid
AND lbcv.saleVehSid = lrpd.busVinSid
LEFT JOIN (
ORDER BY lbca.createTime DESC
SELECT
LIMIT 1) AS lockCarState
lrpd_sub.busVinSid,
FROM
SUM(lfd.fund) AS fund_sum
loan_repayment_plan_details lrpd
FROM loan_fund_day lfd
LEFT JOIN loan_repayment_history lrh
JOIN loan_repayment_plan_details lrpd_sub
ON lrh.planDetailSid = lrpd.sid
ON lfd.busSid = lrpd_sub.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
WHERE
ON lrpd.busVinSid = bv.sid
lrpd_sub.dueDate < CURDATE()
LEFT JOIN loan_repayment_schedule lrs
GROUP BY
ON lrpd.scheduleSid = lrs.sid
lrpd_sub.busVinSid
LEFT JOIN
) lfd_agg
(SELECT
ON lfd_agg.busVinSid = lrpd.busVinSid
saleVehSid,
WHERE
createTime
lrpd.dueDate < CURDATE()
FROM
GROUP BY
loan_be_collection_record
lrpd.sid
ORDER BY createTime DESC
HAVING
LIMIT 1) lr
(lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) > 0
ON lrpd.busVinSid = lr.saleVehSid
) a1
LEFT JOIN anrui_crm.crm_customer_temp ct
WHERE
ON lrpd.customerSid = ct.sid
a1.borrowerSid = #{borrowerSid}
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()
GROUP BY
GROUP BY lrpd.sid
a1.loanContractNo,
HAVING (yq_total > 0)) a1
a1.vinNo,
WHERE a1.borrowerSid = #{borrowerSid}
a1.busVinSid
GROUP BY a1.loanContractNo,
a1.vinNo,
a1.busVinSid
</select>
</select>
<select id= "initReaRepayment" resultType= "com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo" >
<select id= "initReaRepayment" resultType= "com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo" >
@ -305,7 +247,7 @@
ON ld.busVinSid = bv.sid
ON ld.busVinSid = bv.sid
WHERE ld.busVinSid = #{saleVehSid}
WHERE ld.busVinSid = #{saleVehSid}
</select>
</select>
<select id= "excelList" resultType= "com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehExcelVo" >
<select id= "excelList" resultType= "com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehExcelVo" >
SELECT
SELECT
@row_number := @row_number + 1 AS rankNo,
@row_number := @row_number + 1 AS rankNo,
@ -319,65 +261,26 @@
a1.bankName,
a1.bankName,
a1.bankContractNo,
a1.bankContractNo,
a1.dueMoney AS bankMonthRep,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
MIN( a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) +
SUM(a1.yq_total) + IFNULL(
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
(SELECT
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())),
0
)
) AS beOverdueMoney,
ROUND(
ROUND(
(
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
SUM(a1.yq_total) + IFNULL(
MAX(a1.qjyh), -- 保证聚合正确性
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())),
0
)
) / a1.qjyh,
1
1
) AS beOverdueMoneyAndPeriod,
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
a1.riskStaffUserName,
MAX(a1.riskStaffUserName) AS riskStaffUserName,
a1.reaRepaymentName AS repaymentName,
MAX(a1.reaRepaymentName) AS repaymentName,
a1.createTime,
MAX(a1.createTime) AS createTime,
a1.orgSidPath,
a1.orgSidPath,
a1.lockCarState
MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM
FROM (
( SELECT
SELECT
lrpd.sid,
lrpd.sid,
lrpd.busVinSid,
lrpd.busVinSid,
lrpd.useOrgName,
lrpd.useOrgName,
@ -390,63 +293,67 @@
lrpd.bankContractNo,
lrpd.bankContractNo,
lrpd.dueMoney,
lrpd.dueMoney,
lrpd.dueDate,
lrpd.dueDate,
(
COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)
lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
) AS qjyh,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.dueMoney AS yq_hsqs,
lrpd.paymentMoney AS yd_dkje,
lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
bv.riskStaffUserName,
bv.reaRepaymentName,
bv.reaRepaymentName,
lr.createTime,
lbcr.createTime,
(SELECT
CASE lbcv.lockCarState
CASE
WHEN 0 THEN '未控制'
lbcv.lockCarState
WHEN 1 THEN '控制成功'
WHEN 0
WHEN 2 THEN '控制失败'
THEN '未控制'
WHEN 3 THEN '已解控'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
END AS lockCarState
END AS lockCarState
FROM
FROM loan_repayment_plan_details lrpd
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbca.createTime DESC
LIMIT 1) AS lockCarState
FROM
loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
ON lrh.planDetailSid = lrpd.sid
INNER JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid
ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs
LEFT JOIN (
ON lrpd.scheduleSid = lrs.sid
SELECT
LEFT JOIN
(SELECT
saleVehSid,
saleVehSid,
createTime
MAX(createTime) AS createTime -- 取最新记录
FROM
FROM loan_be_collection_record
loan_be_collection_record
GROUP BY saleVehSid
ORDER BY createTime DESC) lr
) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN (
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()
SELECT
lbcv.saleVehSid,
lbcv.lockCarState,
ROW_NUMBER() OVER (PARTITION BY lbcv.saleVehSid ORDER BY lbca.createTime DESC) AS rn
FROM loan_be_collection_veh lbcv
JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
) lbcv ON lbcv.saleVehSid = lrpd.busVinSid AND lbcv.rn = 1
WHERE lrpd.dueDate < CURDATE() -- 移除DATE_FORMAT函数
GROUP BY lrpd.sid
GROUP BY lrpd.sid
HAVING (yq_total > 0)) a1,(
HAVING (lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) > 0
) a1
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
GROUP BY saleVehSid
) lbpv_sum ON lbpv_sum.saleVehSid = a1.busVinSid
LEFT JOIN (
SELECT
lrpd.busVinSid,
SUM(lfd.fund) AS fund_sum
FROM loan_fund_day lfd
JOIN loan_repayment_plan_details lrpd
ON lrpd.sid = lfd.busSid
WHERE lrpd.dueDate < CURDATE()
GROUP BY lrpd.busVinSid
) lfd_sum ON lfd_sum.busVinSid = a1.busVinSid,(
SELECT
SELECT
@row_number := 0
@row_number := 0
) AS t
) AS t