Browse Source

更改

master
ligaode 1 month ago
parent
commit
037525b058
  1. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java
  2. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java
  3. 551
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

2
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java

@ -296,6 +296,6 @@ public interface SysUserFeign {
@ApiOperation(value = "根据部门sid和角色名查询用户") @ApiOperation(value = "根据部门sid和角色名查询用户")
@PostMapping(value = "/selectByDeptSidAndRoleName") @PostMapping(value = "/selectByDeptSidAndRoleName")
ResultBean<List<DeptUserVo>> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid, ResultBean<List<DeptUserVo>> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid,
@RequestParam("roleNames") List<String> roleNames); @RequestParam("roleNames") List<String> roleNames);
} }

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java

@ -33,21 +33,6 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-riskcenter(逾期催收记录) <br/>
* File: LoanBeCollectionRecordFeign.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordFeign <br/>
* Description: 逾期催收记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-12-11 13:45:40 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "逾期催收记录") @Api(tags = "逾期催收记录")
@FeignClient( @FeignClient(
contextId = "anrui-riskcenter-LoanBeCollectionRecord", contextId = "anrui-riskcenter-LoanBeCollectionRecord",
@ -65,12 +50,12 @@ public interface LoanBeCollectionRecordFeign {
@PostMapping("/save") @PostMapping("/save")
@ResponseBody @ResponseBody
public ResultBean save(@RequestBody LoanBeCollectionRecordDto dto); public ResultBean save(@RequestBody LoanBeCollectionRecordDto dto);
@ApiOperation("根据sid删除记录") @ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids") @DeleteMapping("/delBySids")
@ResponseBody @ResponseBody
public ResultBean delBySids(@RequestBody String[] sids); public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录") @ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}") @GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody @ResponseBody

551
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -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') &lt; 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') &lt; 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') &lt; 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 &lt; 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 &lt; 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') &lt; 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') &lt; 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 &lt; 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 &lt; 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') &lt; 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') &lt; 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') &lt; 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') &lt; 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 &lt; 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 &lt; 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

Loading…
Cancel
Save