Browse Source

优化还款计划导入算法,设置转累欠状态

master
fanzongzhe 8 months ago
parent
commit
80827a3cec
  1. 30
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankFeign.java
  3. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankFeignFallback.java
  4. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  5. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  6. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankRest.java
  7. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  8. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  9. 38
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  10. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  11. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  12. 38
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

30
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -3935,7 +3935,20 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
planDetails.setPaymentMoney(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData();
String bankSid = "";
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData();
if (isOther.equals("0")) {
if (StringUtils.isNotBlank(schedule.getBankSid())) {
bankSid = schedule.getBankSid();
}
} else if (isOther.equals("1")) {
if (StringUtils.isNotBlank(schedule.getOtherBankSid())) {
bankSid = schedule.getOtherBankSid();
}
}
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
@ -3975,7 +3988,20 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
planDetails.setPaymentMoney(subtract2);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData();
String bankSid = "";
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData();
if (isOther.equals("0")) {
if (StringUtils.isNotBlank(schedule.getBankSid())) {
bankSid = schedule.getBankSid();
}
} else if (isOther.equals("1")) {
if (StringUtils.isNotBlank(schedule.getOtherBankSid())) {
bankSid = schedule.getOtherBankSid();
}
}
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankFeign.java

@ -123,4 +123,8 @@ public interface LoanFinBankFeign {
@ResponseBody
ResultBean<LoanFinBank> reAdvancesByOrderSid(@RequestParam("orderSid") String orderSid);
}
@ApiOperation("根据sid查询资方")
@GetMapping("/fetchEntityBySid")
@ResponseBody
ResultBean<LoanFinBank> fetchEntityBySid(@RequestParam("sid") String sid);
}

7
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankFeignFallback.java

@ -80,4 +80,9 @@ public class LoanFinBankFeignFallback implements LoanFinBankFeign {
return null;
}
}
@Override
public ResultBean<LoanFinBank> fetchEntityBySid(String sid) {
return null;
}
}

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java

@ -97,6 +97,11 @@ public interface LoanRepaymentScheduleFeign {
public ResultBean importSleepHistoryData(@RequestParam("userSid") String userSid);
@ApiOperation("根据还款计划明细返回资方sid")
@GetMapping("/returnBankOrOtherBankByPlanSid")
@ResponseBody
ResultBean<String> returnBankOrOtherBankByPlanSid(@RequestParam("planSid") String planSid);
//-------------------------app接口--------------------
/**

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java

@ -88,6 +88,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null;
}
@Override
public ResultBean<String> returnBankOrOtherBankByPlanSid(String planSid) {
return null;
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
return null;

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankRest.java

@ -191,4 +191,11 @@ public class LoanFinBankRest implements LoanFinBankFeign {
public ResultBean<LoanFinBank> reAdvancesByOrderSid(String orderSid) {
return loanFinBankService.reAdvancesByOrderSid(orderSid);
}
@Override
public ResultBean<LoanFinBank> fetchEntityBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanFinBank loanFinBank = loanFinBankService.fetchBySid(sid);
return rb.success().setData(loanFinBank);
}
}

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -651,7 +651,13 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
List<LoanRepaymentPlanDetails> planDetails = loanRepaymentPlanDetailsService.selPlanByNoAndPeriod(repaymentExcelInfo.getBankContractNo(), repaymentExcelInfo.getPeriod());
if (!planDetails.isEmpty()) {
for (LoanRepaymentPlanDetails planDetail : planDetails) {
String check = loanRepaymentPlanDetailsService.InsertForCheckPaymentAndBank(planDetail.getSid());
String isOther = loanRepaymentScheduleService.returnBankOrOtherBankByPlanSid(planDetail.getSid()).getData();
String check = "";
if (isOther.equals("0")) {
check = loanRepaymentPlanDetailsService.InsertForCheckPaymentAndBank(planDetail.getSid());
} else if (isOther.equals("1")) {
check = loanRepaymentPlanDetailsService.InsertForCheckPaymentAndBankOther(planDetail.getSid());
}
if (StringUtils.isNotBlank(check)) {
if (!check.equals("0")) {
LoanRepaymentHistory repaymentHistory = new LoanRepaymentHistory();
@ -817,7 +823,13 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
//对当前涉及的还款计划是否为中车类是否有垫款
if (!pSids.isEmpty()) {
for (String pSid : pSids) {
String reAdvances = loanRepaymentPlanDetailsService.reAdvancesOrPaymentMoney(pSid);
String isOther = loanRepaymentScheduleService.returnBankOrOtherBankByPlanSid(pSid).getData();
String reAdvances = "";
if (isOther.equals("0")) {
reAdvances = loanRepaymentPlanDetailsService.reAdvancesOrPaymentMoney(pSid);
} else if (isOther.equals("1")) {
reAdvances = loanRepaymentPlanDetailsService.reAdvancesOrPaymentMoneyOther(pSid);
}
if (StringUtils.isNotBlank(reAdvances)) {
if (reAdvances.equals("0")) {
DifferenceVo difference = loanRepaymentPlanDetailsService.selDifference(pSid);

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -42,10 +42,12 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
int updateOverDueState(@Param("planSids") List<String> planSids);
String reAdvancesOrPaymentMoney(@Param("pSid") String pSid);
String reAdvancesOrPaymentMoneyOther(@Param("pSid") String pSid);
DifferenceVo selDifference(@Param("pSid") String pSid);
String InsertForCheckPaymentAndBank(@Param("sid") String sid);
String InsertForCheckPaymentAndBankOther(@Param("sid") String sid);
int saveVehMark(@Param("busVinSid") String busVinSid,@Param("vehMark") String vehMark);

38
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -5,13 +5,13 @@
insert into
loan_repayment_plan_details(createBySid,sid,createTime,isEnable,salesOrderSid,loanContractSid,loanContractNo,
policyName,bankContractNo,customer,customerSid,borrowerSid,borrowerName,`period`,scheduleSid,bankName,deptSid,dept,useOrgSid,useOrgName,
orgSidPath,busVinSid,vinNo,vehMark,policyOrOther,dueMoney,dueDate,updateTime,oweState)
orgSidPath,busVinSid,vinNo,vehMark,policyOrOther,dueMoney,dueDate,updateTime)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.createBySid},#{item.sid},#{item.createTime},#{item.isEnable},#{item.salesOrderSid},#{item.loanContractSid},#{item.loanContractNo},
#{item.policyName},#{item.bankContractNo},#{item.customer},#{item.customerSid},#{item.borrowerSid},#{item.borrowerName},
#{item.period},#{item.scheduleSid},#{item.bankName},#{item.deptSid},#{item.dept},#{item.useOrgSid},#{item.useOrgName},#{item.orgSidPath},
#{item.busVinSid},#{item.vinNo},#{item.vehMark},#{item.policyOrOther},#{item.dueMoney},#{item.dueDate},#{item.updateTime},#{item.oweState})
#{item.busVinSid},#{item.vinNo},#{item.vehMark},#{item.policyOrOther},#{item.dueMoney},#{item.dueDate},#{item.updateTime})
</foreach>
</insert>
<update id="updateTime">
@ -229,6 +229,20 @@
LEFT JOIN loan_fin_bank as b ON b.sid = s.bankSid
WHERE p.sid = #{pSid}
</select>
<select id="reAdvancesOrPaymentMoneyOther" resultType="java.lang.String">
SELECT CASE
WHEN p.paymentMoney > 0
AND b.reAdvances = 1
THEN
'0'
ELSE '1'
END as h
FROM loan_repayment_plan_details as p
LEFT JOIN loan_repayment_schedule as s ON p.scheduleSid = s.sid
LEFT JOIN loan_fin_bank as b ON b.sid = s.otherBankSid
WHERE p.sid = #{pSid}
</select>
<select id="selDifference" resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo">
SELECT p.sid,
IFNULL(
@ -260,6 +274,19 @@
LEFT JOIN loan_fin_bank AS b ON b.sid = s.bankSid
WHERE p.sid = #{sid}
</select>
<select id="InsertForCheckPaymentAndBankOther" resultType="java.lang.String">
SELECT CASE
WHEN
IFNULL(p.paymentMoney, 0) > 0
AND b.reAdvances = 0 THEN
'0'
ELSE '1'
END AS h
FROM loan_repayment_plan_details AS p
LEFT JOIN loan_repayment_schedule AS s ON p.scheduleSid = s.sid
LEFT JOIN loan_fin_bank AS b ON b.sid = s.otherBankSid
WHERE p.sid = #{sid}
</select>
<select id="getListByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select *
@ -561,6 +588,13 @@
<!-- </if>-->
</foreach>
</trim>
<trim prefix="oweState =case" suffix="end,">
<foreach collection="list" item="item" index="index">
<!-- <if test="item.oweState !=null and item.oweState != ''">-->
when id=#{item.id} then #{item.oweState}
<!-- </if>-->
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" index="index" item="item"

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -121,6 +121,9 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public String reAdvancesOrPaymentMoney(String pSid) {
return baseMapper.reAdvancesOrPaymentMoney(pSid);
}
public String reAdvancesOrPaymentMoneyOther(String pSid) {
return baseMapper.reAdvancesOrPaymentMoneyOther(pSid);
}
public DifferenceVo selDifference(String pSid) {
return baseMapper.selDifference(pSid);
@ -129,6 +132,9 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public String InsertForCheckPaymentAndBank(String sid) {
return baseMapper.InsertForCheckPaymentAndBank(sid);
}
public String InsertForCheckPaymentAndBankOther(String sid) {
return baseMapper.InsertForCheckPaymentAndBankOther(sid);
}
public int saveVehMark(String busVinSid, String vehMark) {
return baseMapper.saveVehMark(busVinSid, vehMark);

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java

@ -104,6 +104,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return loanRepaymentScheduleService.importSleepHistoryData(userSid);
}
@Override
public ResultBean<String> returnBankOrOtherBankByPlanSid(String planSid) {
return loanRepaymentScheduleService.returnBankOrOtherBankByPlanSid(planSid);
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
ResultBean<PagerVo<AppRepaymentPlanVo>> rb = ResultBean.fireFail();

38
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -5337,7 +5337,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
for (int i = 0; i < mainPeriod; i++) {
LoanRepaymentPlanDetails mainDto = new LoanRepaymentPlanDetails();
mainDto.setIsEnable(3);
mainDto.setOweState(0);
mainDto.setCreateBySid(userSid);
mainDto.setSalesOrderSid(salesOrderSid);
mainDto.setLoanContractNo(loanContractNo);
@ -5378,7 +5377,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
for (int i = 0; i < Integer.parseInt(oPeriod); i++) {
LoanRepaymentPlanDetails otherDto = new LoanRepaymentPlanDetails();
otherDto.setIsEnable(3);
otherDto.setOweState(0);
otherDto.setCreateBySid(userSid);
otherDto.setSalesOrderSid(salesOrderSid);
otherDto.setLoanContractNo(loanContractNo);
@ -5431,7 +5429,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
for (int i = 0; i < mainPeriod; i++) {
LoanRepaymentPlanDetails mainDto = new LoanRepaymentPlanDetails();
mainDto.setIsEnable(3);
mainDto.setOweState(0);
mainDto.setCreateBySid(userSid);
mainDto.setSalesOrderSid(salesOrderSid);
mainDto.setLoanContractNo(loanContractNo);
@ -5608,9 +5605,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
}
List<LoanRepaymentSchedule> schedules = saveHistoryRecord(list, userSid);
System.out.println("============================");
System.out.println(schedules);
System.out.println("============================");
generateHistoryData(schedules, userSid);
} catch (Exception e) {
e.printStackTrace();
@ -5795,7 +5789,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
BeanUtil.copyProperties(importSleepData, p, "id", "sid");
p.setCreateBySid(userSid);
p.setIsEnable(3);
p.setOweState(0);
p.setUpdateTime(new Date());
planDetails.add(p);
}
@ -6137,6 +6130,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
histories.add(history);
}
p.setOverdue(0);
p.setOweState(0);
if (B1.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
@ -6255,6 +6249,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
histories.add(history);
}
p.setOverdue(0);
p.setOweState(0);
if (B1.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
@ -6486,6 +6481,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
histories.add(history);
}
p.setOverdue(0);
p.setOweState(0);
if (B1.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
@ -6604,6 +6600,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
histories.add(history);
}
p.setOverdue(0);
p.setOweState(0);
if (B1.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
@ -7148,4 +7145,31 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
appRepaymentHistoryListDetailsWxVo.setRecords(appRepaymentHistoryRecords);
return appRepaymentHistoryListDetailsWxVo;
}
public ResultBean<String> returnBankOrOtherBankByPlanSid(String planSid) {
ResultBean rb = ResultBean.fireFail();
String bankOrOtherBank = ""; // 0主产品,1其他融
LoanRepaymentPlanDetails p = loanRepaymentPlanDetailsService.fetchBySid(planSid);
if (null != p) {
String scheduleSid = p.getScheduleSid();
LoanRepaymentSchedule schedule = fetchBySid(scheduleSid);
String isOtherPolicy = schedule.getIsOtherPolicy();
String sameBank = schedule.getSameBank();
String policyOrOther = p.getPolicyOrOther();
if (isOtherPolicy.equals("1")) {
if (sameBank.equals("1")) {
bankOrOtherBank = "0";
} else if (sameBank.equals("0")) {
if (policyOrOther.equals("0")) {
bankOrOtherBank = "0";
} else if (policyOrOther.equals("1")) {
bankOrOtherBank = "1";
}
}
} else if (isOtherPolicy.equals("0")) {
bankOrOtherBank = "0";
}
}
return rb.success().setData(bankOrOtherBank);
}
}

Loading…
Cancel
Save