Compare commits

...

6 Commits

Author SHA1 Message Date
yunuo970428 ecbdf71f0b Merge remote-tracking branch 'origin/master' 1 week ago
dimengzhe b4a0eafc76 修改 1 week ago
dimengzhe 251a273d27 修改 2 weeks ago
dimengzhe f4ddbfe355 回购付款凭证及生成月还的垫付 2 weeks ago
dimengzhe ccaf2c6394 Merge remote-tracking branch 'origin/master' 2 weeks ago
dimengzhe 56eb7cc7cf 回购付款凭证及生成月还的垫付 2 weeks ago
  1. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  2. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java
  3. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java
  4. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java
  5. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java
  6. 28
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java
  7. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml
  8. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java
  9. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  10. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  11. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  12. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml
  13. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java
  14. 95
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -85,6 +85,10 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehFeign
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign; import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
@ -192,6 +196,8 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
private FinPaymentapplyDetailsBelowService finPaymentapplyDetailsBelowService; private FinPaymentapplyDetailsBelowService finPaymentapplyDetailsBelowService;
@Autowired @Autowired
private FinPaymentapplyDetailsBelowEveService finPaymentapplyDetailsBelowEveService; private FinPaymentapplyDetailsBelowEveService finPaymentapplyDetailsBelowEveService;
@Autowired
private LoanRepurchaseApplyFeign loanRepurchaseApplyFeign;
public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) { public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) {
FinPaymentrecordQuery query = pq.getParams(); FinPaymentrecordQuery query = pq.getParams();
@ -603,6 +609,10 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getApplySid(), finPaymentrecord.getSid()); loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getApplySid(), finPaymentrecord.getSid());
}); });
} else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) { } else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) {
LoanRepurchaseApplyDetailsVo loanRepurchaseApply = loanRepurchaseApplyFeign.fetchDetailsBySid(finPaymentrecord.getApplySid()).getData();
if(loanRepurchaseApply != null){
loanRepurchaseApplyFeign.pushRiskToFin(finPaymentrecord.getApplySid());
}else{
if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) { if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) {
String shouxufei = "0"; String shouxufei = "0";
if (null != finPaymentrecord.getPaymentCharges()) { if (null != finPaymentrecord.getPaymentCharges()) {
@ -616,6 +626,8 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
} }
loanSettleApplyFeign.pushBankVoucher(finPaymentrecord.getBusSid(), accountNumber, payTypeCode, shouxufei); loanSettleApplyFeign.pushBankVoucher(finPaymentrecord.getBusSid(), accountNumber, payTypeCode, shouxufei);
} }
}
} else if (StringUtils.isBlank(costTypeKey) || "015".equals(costTypeKey) || "016".equals(costTypeKey) || "017".equals(costTypeKey)) { } else if (StringUtils.isBlank(costTypeKey) || "015".equals(costTypeKey) || "016".equals(costTypeKey) || "017".equals(costTypeKey)) {
Voucher voucher = pushVoucher(finPaymentrecord.getSid()); Voucher voucher = pushVoucher(finPaymentrecord.getSid());
voucherService.saveVoucher(voucher); voucherService.saveVoucher(voucher);
@ -973,6 +985,10 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
} }
}); });
} else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) { } else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) {
LoanRepurchaseApplyDetailsVo loanRepurchaseApply = loanRepurchaseApplyFeign.fetchDetailsBySid(finPaymentrecord.getApplySid()).getData();
if(loanRepurchaseApply != null){
loanRepurchaseApplyFeign.pushRiskToFin(finPaymentrecord.getApplySid());
}else{
if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) { if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) {
String shouxufei = "0"; String shouxufei = "0";
if (null != finPaymentrecord.getPaymentCharges()) { if (null != finPaymentrecord.getPaymentCharges()) {
@ -991,6 +1007,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
vouchers.add(v); vouchers.add(v);
} }
} }
}
} else if (StringUtils.isBlank(costTypeKey) || "015".equals(costTypeKey) || "016".equals(costTypeKey) || "017".equals(costTypeKey)) { } else if (StringUtils.isBlank(costTypeKey) || "015".equals(costTypeKey) || "016".equals(costTypeKey) || "017".equals(costTypeKey)) {
Voucher voucher = pushVoucher(finPaymentrecord.getSid()); Voucher voucher = pushVoucher(finPaymentrecord.getSid());
if (null != voucher) { if (null != voucher) {

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity; import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -80,4 +81,7 @@ public class LoanRepaymentPlanDetails extends BaseEntity {
private Integer oweState; //是否转累欠状态(0是,1否) private Integer oweState; //是否转累欠状态(0是,1否)
private Date updateTime; //更新日期 private Date updateTime; //更新日期
@TableField(exist = false)
private String moneysl;
} }

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java

@ -117,5 +117,8 @@ public interface LoanRepurchaseApplyFeign {
@ResponseBody @ResponseBody
public ResultBean<AppRepurchaseDetailsVo> appDetail(@PathVariable("sid") String sid); public ResultBean<AppRepurchaseDetailsVo> appDetail(@PathVariable("sid") String sid);
@ApiOperation("app详情")
@PostMapping("/pushRiskToFin")
@ResponseBody
ResultBean pushRiskToFin(@RequestParam("applySid") String applySid);
} }

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java

@ -102,4 +102,9 @@ public class LoanRepurchaseApplyFeignFallback implements LoanRepurchaseApplyFeig
public ResultBean<AppRepurchaseDetailsVo> appDetail(String sid) { public ResultBean<AppRepurchaseDetailsVo> appDetail(String sid) {
return null; return null;
} }
@Override
public ResultBean pushRiskToFin(String applySid) {
return null;
}
} }

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java

@ -51,5 +51,5 @@ public class LoanRepurchaseApplyVo implements Vo {
private String nodeState; // 流程实例的sid private String nodeState; // 流程实例的sid
@ApiModelProperty("风控状态:0正常") @ApiModelProperty("风控状态:0正常")
private Integer riskState; private String riskStateValue;
} }

28
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java

@ -561,6 +561,34 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec
} }
} }
public static void main(String[] args) {
int size = 3;
BigDecimal executeAmountInArear = new BigDecimal("10.00");
Map<String, BigDecimal> vinAmountMap = new HashMap<>();
// 四舍五入到2位小数的平均值
BigDecimal roundedAverage = executeAmountInArear.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP);
// n台车 × roundedAverage
BigDecimal totalRounded = roundedAverage.multiply(BigDecimal.valueOf(size)).setScale(2, RoundingMode.HALF_UP);
if (executeAmountInArear.setScale(2, RoundingMode.HALF_UP).compareTo(totalRounded) == 0) {
// 能整除,直接平均
System.out.println(roundedAverage);
} else {
// 不能整除,最后一台车补差值
BigDecimal totalForNMinusOne = roundedAverage.multiply(BigDecimal.valueOf(size - 1));
BigDecimal lastAmount = executeAmountInArear.subtract(totalForNMinusOne).setScale(2, RoundingMode.HALF_UP);
for (int i = 0; i < size; i++) {
if (i == size - 1) {
vinAmountMap.put("111", lastAmount);
} else {
vinAmountMap.put("222", roundedAverage);
}
}
}
}
public void pushRiskToFin(String sid) { public void pushRiskToFin(String sid) {
LoanCaseExecuteApply loanCaseExecuteApply = fetchBySid(sid); LoanCaseExecuteApply loanCaseExecuteApply = fetchBySid(sid);
if (loanCaseExecuteApply != null) { if (loanCaseExecuteApply != null) {

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml

@ -71,7 +71,8 @@
date_format ( p.dueDate, '%Y-%m-%d' ) dueDate, date_format ( p.dueDate, '%Y-%m-%d' ) dueDate,
p.dueMoney, p.dueMoney,
p.dept salesDept, p.dept salesDept,
v.settleState v.settleState,
v.riskState
FROM FROM
loan_repayment_plan_details as p loan_repayment_plan_details as p
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as v ON p.busVinSid = v.sid LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as v ON p.busVinSid = v.sid

1
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java

@ -170,6 +170,7 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
apply(StringUtils.isNotEmpty(last), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(last), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')"
); );
queryWrapper.apply("a.settleState != 1"); queryWrapper.apply("a.settleState != 1");
queryWrapper.eq("a.riskState",0);//风控状态为正常的时候
records = baseMapper.selRepaymentDetailsByDueDate(queryWrapper); records = baseMapper.selRepaymentDetailsByDueDate(queryWrapper);
records.removeAll(Collections.singleton(null)); records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) { if (!records.isEmpty()) {

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

@ -119,4 +119,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
String getWdq(String busVinSid); String getWdq(String busVinSid);
String selectAllMoney(String busVinSid); String selectAllMoney(String busVinSid);
List<LoanRepaymentPlanDetails> selectByBusVinSid2(@Param("busVinSid") String busVinSid);
} }

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

@ -1059,4 +1059,27 @@
) lbpv_sum ON lbpv_sum.saleVehSid = ss.busVinSid ) lbpv_sum ON lbpv_sum.saleVehSid = ss.busVinSid
GROUP BY ss.busVinSid having beMoney>0 GROUP BY ss.busVinSid having beMoney>0
</select> </select>
<select id="selectByBusVinSid2"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
SELECT
lrpd.*,
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) as aa,
lrpd.paymentMoney,
lrpd.paymentInterest,
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)-COALESCE(lrpd.paymentMoney,0)-COALESCE(lrpd.paymentInterest,0))AS moneysl
FROM
loan_repayment_plan_details lrpd
LEFT JOIN
loan_repayment_history lrh ON lrh.planDetailSid = lrpd.sid
WHERE
lrpd.busVinSid = #{busVinSid}
GROUP BY
lrpd.sid
HAVING
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)-COALESCE(lrpd.paymentMoney,0)-COALESCE(lrpd.paymentInterest,0)) > 0
ORDER BY
lrpd.period ASC
</select>
</mapper> </mapper>

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

@ -378,6 +378,9 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public List<LoanRepaymentPlanDetails> selectByBusVinSid(String busVinSid) { public List<LoanRepaymentPlanDetails> selectByBusVinSid(String busVinSid) {
return baseMapper.selectByBusVinSid(busVinSid); return baseMapper.selectByBusVinSid(busVinSid);
} }
public List<LoanRepaymentPlanDetails> selectByBusVinSid2(String busVinSid) {
return baseMapper.selectByBusVinSid2(busVinSid);
}
//逾期且累欠的金额 //逾期且累欠的金额
public String getYqLq(String busVinSid) { public String getYqLq(String busVinSid) {
@ -403,4 +406,6 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public String selectAllMoney(String busVinSid) { public String selectAllMoney(String busVinSid) {
return baseMapper.selectAllMoney(busVinSid); return baseMapper.selectAllMoney(busVinSid);
} }
} }

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml

@ -42,7 +42,20 @@
la.customerName, la.customerName,
la.amount, la.amount,
date_format(la.prepareDate, '%Y-%m-%d' ) AS prepareDate, date_format(la.prepareDate, '%Y-%m-%d' ) AS prepareDate,
bv.riskState case bv.riskState
when 0 then '正常'
when 1 then '交回'
when 4 then '赎回中'
when 5 then '二次销售中'
when 6 then '转租中'
when 7 then '处置损失'
when 8 then '不追偿'
when 9 then '直接诉讼立案'
when 11 then '亏损立案'
when 12 then '执行'
when 13 then '诉讼结案'
when 14 then '执行结案'
end as riskStateValue
FROM FROM
loan_repurchase_apply la loan_repurchase_apply la
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = la.busVinSid left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = la.busVinSid

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java

@ -124,4 +124,11 @@ public class LoanRepurchaseApplyRest implements LoanRepurchaseApplyFeign {
public ResultBean<AppRepurchaseDetailsVo> appDetail(String sid) { public ResultBean<AppRepurchaseDetailsVo> appDetail(String sid) {
return loanRepurchaseApplyService.appDetail(sid); return loanRepurchaseApplyService.appDetail(sid);
} }
@Override
public ResultBean pushRiskToFin(String applySid) {
ResultBean rb = ResultBean.fireFail();
loanRepurchaseApplyService.pushRiskToFin(applySid);
return rb.success();
}
} }

95
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java

@ -20,6 +20,8 @@ import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderRetu
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
@ -46,6 +48,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageSaveDto; import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageSaveDto;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.*; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.*;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo;
@ -58,6 +61,7 @@ import com.yxt.anrui.riskcenter.api.loansettlebankcost.LoanSettleBankCostVo;
import com.yxt.anrui.riskcenter.api.loansettlecompanycost.LoanSettleCompanyCostVo; import com.yxt.anrui.riskcenter.api.loansettlecompanycost.LoanSettleCompanyCostVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrelievemortgage.LoanRelieveMortgageService; import com.yxt.anrui.riskcenter.biz.loanrelievemortgage.LoanRelieveMortgageService;
import com.yxt.anrui.riskcenter.biz.loanrepurchasecompanycost.LoanRepurchaseCompanyCostService; import com.yxt.anrui.riskcenter.biz.loanrepurchasecompanycost.LoanRepurchaseCompanyCostService;
import com.yxt.anrui.riskcenter.biz.loanrepurchasecost.LoanRepurchaseCostService; import com.yxt.anrui.riskcenter.biz.loanrepurchasecost.LoanRepurchaseCostService;
@ -142,6 +146,10 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
private BasePurchaseSystemFeign basePurchaseSystemFeign; private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired @Autowired
private DictCommonFeign dictCommonFeign; private DictCommonFeign dictCommonFeign;
@Autowired
private FinPaymentrecordFeign finPaymentrecordFeign;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
public PagerVo<LoanRepurchaseApplyVo> listPage(PagerQuery<LoanRepurchaseApplyQuery> pq) { public PagerVo<LoanRepurchaseApplyVo> listPage(PagerQuery<LoanRepurchaseApplyQuery> pq) {
IPage<LoanRepurchaseApply> page = PagerUtil.queryToPage(pq); IPage<LoanRepurchaseApply> page = PagerUtil.queryToPage(pq);
@ -768,17 +776,41 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
loanRelieveMortgageSaveDto.setBankName(repurchaseApply.getBankName()); loanRelieveMortgageSaveDto.setBankName(repurchaseApply.getBankName());
loanRelieveMortgageSaveDto.setBusSid(repurchaseApply.getSid()); loanRelieveMortgageSaveDto.setBusSid(repurchaseApply.getSid());
loanRelieveMortgageService.saveRelieveMortgage(loanRelieveMortgageSaveDto); loanRelieveMortgageService.saveRelieveMortgage(loanRelieveMortgageSaveDto);
try { LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid);
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() if(loanRepurchaseCost != null){
.setNameFormat("demo-pool-%d").build(); BigDecimal bankSettlePrice = loanRepurchaseCost.getBankSettlePrice();//资方结清金额
ExecutorService pool = new ThreadPoolExecutor(2, 100, if(bankSettlePrice != null && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){
0L, TimeUnit.MILLISECONDS, FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); finPaymentrecordDto.setApplySid(loanRepurchaseApply.getSid());
Future future1 = pool.submit(() -> { finPaymentrecordDto.setPayCompanySid("");
pushRiskToFin(businessSid); finPaymentrecordDto.setPayType(1);
}); finPaymentrecordDto.setCreateOrgSid(loanRepurchaseApply.getUseOrgSid());
} catch (Exception e) { finPaymentrecordDto.setUseOrgSid(loanRepurchaseApply.getUseOrgSid());
e.printStackTrace(); finPaymentrecordDto.setCostTypeKey("008");
finPaymentrecordDto.setCostTypeValue("资方结清款");
finPaymentrecordDto.setCostTitleKey("014");
finPaymentrecordDto.setCostTitleValue("资方结清款");
finPaymentrecordDto.setReceiveBank("");
finPaymentrecordDto.setReceiveBankAccount(loanRepurchaseCost.getBankAccount());
finPaymentrecordDto.setReceiveCompany(loanRepurchaseCost.getAccountName());
if(loanRepurchaseCost.getBankSettlePrice() != null){
finPaymentrecordDto.setCost(loanRepurchaseCost.getBankSettlePrice().toString());
finPaymentrecordDto.setAccountsReceive(loanRepurchaseCost.getBankSettlePrice().toString());
}
finPaymentrecordDto.setBusSid(loanRepurchaseApply.getBillNo());
finPaymentrecordDto.setPayRemark(loanRepurchaseApply.getPayRemarks());
finPaymentrecordDto.setPayCode("");
finPaymentrecordDto.setCreateBySid(loanRepurchaseApply.getCreateBySid());
finPaymentrecordDto.setUpdateBySid(loanRepurchaseApply.getCreateBySid());
finPaymentrecordDto.setRemarks(loanRepurchaseApply.getRemarks());
finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanRepurchaseApply.getPayRemarks());
finPaymentrecordDto.setFinDataType(1);
String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData();
}
} }
} else { } else {
//极光推送 //极光推送
@ -804,9 +836,48 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
public void pushRiskToFin(String businessSid){ public void pushRiskToFin(String businessSid){
LoanRepurchaseApply loanRepurchaseApply = fetchBySid(businessSid); LoanRepurchaseApply loanRepurchaseApply = fetchBySid(businessSid);
LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid);
//查询月还明细表,遍历
List<LoanRepaymentPlanDetails> list = loanRepaymentPlanDetailsService.selectByBusVinSid2(loanRepurchaseApply.getBusVinSid());
list.removeAll(Collections.singleton(null));
if(!list.isEmpty()){
BigDecimal bankSettlePrice = loanRepurchaseCost.getBankSettlePrice();
if(bankSettlePrice != null && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){
for (int jj = 0; jj < list.size(); jj++) {
LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(jj);
String moneysl = loanRepaymentPlanDetails.getMoneysl();
if(StringUtils.isNotBlank(moneysl) && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){
if(bankSettlePrice.compareTo(new BigDecimal(moneysl))>0){
bankSettlePrice = bankSettlePrice.subtract(new BigDecimal(moneysl));
BigDecimal paymentMoney = loanRepaymentPlanDetails.getPaymentMoney();
if(paymentMoney != null){
paymentMoney = paymentMoney.add(new BigDecimal(moneysl));
}else{
paymentMoney = new BigDecimal(moneysl);
}
loanRepaymentPlanDetails.setPaymentMoney(paymentMoney);
loanRepaymentPlanDetailsService.updateById(loanRepaymentPlanDetails);
}else{
bankSettlePrice = BigDecimal.ZERO;
BigDecimal paymentMoney = loanRepaymentPlanDetails.getPaymentMoney();
if(paymentMoney != null){
paymentMoney = paymentMoney.add(bankSettlePrice);
}else{
paymentMoney = bankSettlePrice;
}
loanRepaymentPlanDetails.setPaymentMoney(paymentMoney);
loanRepaymentPlanDetailsService.updateById(loanRepaymentPlanDetails);
}
}else{
break;
}
}
}
}
//推送凭证
if(loanRepurchaseApply != null){ if(loanRepurchaseApply != null){
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>(); List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>();
LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid);
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(loanRepurchaseApply.getBankName(), "investorsCode").getData(); DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(loanRepurchaseApply.getBankName(), "investorsCode").getData();
Voucher voucher = new Voucher(); Voucher voucher = new Voucher();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanRepurchaseApply.getUseOrgSid()).getData(); SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanRepurchaseApply.getUseOrgSid()).getData();

Loading…
Cancel
Save