Browse Source

划扣申请同期同车合并提交

master
fanzongzhe 1 year ago
parent
commit
fa923ca80e
  1. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java
  2. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  3. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java
  4. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java
  5. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java
  6. 49
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java
  7. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java
  8. 90
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java
  9. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java
  10. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  11. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  12. 340
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  13. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java
  14. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml
  15. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java
  16. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  17. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  18. 37
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  19. 140
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  20. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java
  21. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  22. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  23. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java

@ -34,4 +34,5 @@ public class BusLoancontractForRepayVo implements Vo {
private String policyName; // 金融产品名称
private String orderSid;
private String builded; //是否生成还款计划表
private boolean handleBtn; //ture 可以办理 false 不能
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java

@ -65,6 +65,7 @@ import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -281,6 +282,7 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
for (BusLoancontractForRepayVo record : records) {
record.setHandleBtn(false);
if (StringUtils.isNotBlank(record.getSalesOrderSid())) {
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleService.selByLoanContractSid(record.getSalesOrderSid());
busSalesOrderVehicles.removeAll(Collections.singleton(null));
@ -293,8 +295,15 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid());
if (repaymentSchedule.getData() != null) {
record.setBuilded("是");
List<LoanRepaymentHistory> histories = repaymentScheduleFeign.selHistoryBySid(repaymentSchedule.getData().getSid()).getData();
if (histories.isEmpty() || histories == null) {
record.setHandleBtn(true);
}
} else {
record.setBuilded("否");
if (StringUtils.isNotBlank(record.getBankContractNo())) {
record.setHandleBtn(true);
}
}
}
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java

@ -25,5 +25,5 @@ public class LoanBuckleApplyDto implements Dto {
private String orgPath;
private List<LoanBuckleFile> files = new ArrayList<>();
private List<LoanBuckleHistoryRecord> records = new ArrayList<>();
private List<String> historySids = new ArrayList<>();
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java

@ -42,6 +42,6 @@ public class LoanBuckleHistoryRecord {
@ApiModelProperty("实还日期")
private String actualDate;
private List<List> historySids = new ArrayList<>();
private List<String> historySids = new ArrayList<>();
}

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -23,5 +24,7 @@ public class LoanBuckleApplyRecord extends BaseEntity {
private String mainSid;
@ApiModelProperty("还款记录sid")
private String repaymentHistorySid;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
}

49
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java

@ -0,0 +1,49 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/1/16 13:43
*/
@Data
public class RepaymentHistoryVoForBuckle {
private String sid;
@ApiModelProperty("消贷合同编号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方合同")
private String bankContractNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("客户")
private String customer;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("借款人名称")
private String borrowerName;
@ApiModelProperty("应还日期")
private String dueDate;
@ApiModelProperty("应还金额")
private String dueMoney;
@ApiModelProperty("实还日期")
private String actualDate;
@ApiModelProperty("数据日期")
private String dataTime;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
@ApiModelProperty("本期未还金额")
private String outstandingMoney;
@ApiModelProperty("划扣状态")
private String buckle;
@ApiModelProperty("还款方式")
private String returnWay;
private String planDetailSid;
private String updateState; //更新状态
private String updateTime; //更新日期
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/16 14:30
*/
@Data
public class TransferRecordVo {
private String spread; //息差
private String transferPrincipal; //转付本金
private String defaultInterest; //转付罚息
private String accountType; //转付账户类型
private String account; //转付账户
private String accountNumber; //转付账户账号
}

90
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java

@ -0,0 +1,90 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
public class CollectorsUtil {
static final Set<Collector.Characteristics> CH_NOID = Collections.emptySet();
private CollectorsUtil() {
}
@SuppressWarnings("unchecked")
private static <I, R> Function<I, R> castingIdentity() {
return i -> (R) i;
}
/**
* Simple implementation class for {@code Collector}.
*
* @param <T>
* the type of elements to be collected
* @param <R>
* the type of the result
*/
static class CollectorImpl<T, A, R> implements Collector<T, A, R> {
private final Supplier<A> supplier;
private final BiConsumer<A, T> accumulator;
private final BinaryOperator<A> combiner;
private final Function<A, R> finisher;
private final Set<Characteristics> characteristics;
CollectorImpl(Supplier<A> supplier, BiConsumer<A, T> accumulator, BinaryOperator<A> combiner,
Function<A, R> finisher, Set<Characteristics> characteristics) {
this.supplier = supplier;
this.accumulator = accumulator;
this.combiner = combiner;
this.finisher = finisher;
this.characteristics = characteristics;
}
CollectorImpl(Supplier<A> supplier, BiConsumer<A, T> accumulator, BinaryOperator<A> combiner,
Set<Characteristics> characteristics) {
this(supplier, accumulator, combiner, castingIdentity(), characteristics);
}
@Override
public BiConsumer<A, T> accumulator() {
return accumulator;
}
@Override
public Supplier<A> supplier() {
return supplier;
}
@Override
public BinaryOperator<A> combiner() {
return combiner;
}
@Override
public Function<A, R> finisher() {
return finisher;
}
@Override
public Set<Characteristics> characteristics() {
return characteristics;
}
}
public static <T> Collector<T, ?, BigDecimal> summingBigDecimal(ToBigDecimalFunction<? super T> mapper) {
return new CollectorImpl<>(() -> new BigDecimal[1], (a, t) -> {
if (a[0] == null) {
a[0] = BigDecimal.ZERO;
}
a[0] = a[0].add(mapper.applyAsBigDecimal(t));
}, (a, b) -> {
a[0] = a[0].add(b[0]);
return a;
}, a -> a[0], CH_NOID);
}
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java

@ -0,0 +1,8 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils;
import java.math.BigDecimal;
@FunctionalInterface
public interface ToBigDecimalFunction<T> {
BigDecimal applyAsBigDecimal(T value);
}

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

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
@ -47,11 +48,16 @@ public interface LoanRepaymentScheduleFeign {
@ResponseBody
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid);
@ApiOperation("查看单台还款计划表")
@ApiOperation("查看还款计划表")
@GetMapping("/selByLoanContractSid")
@ResponseBody
ResultBean<LoanRepaymentSchedule> selByLoanContractSid(@RequestParam("loanContractSid") String loanContractSid);
@ApiOperation("查看还款计划表")
@GetMapping("/selHistoryBySid")
@ResponseBody
ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(@RequestParam("sid") String sid);
//-------------------------app接口--------------------
/**

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

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -40,6 +41,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null;
}
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
return null;

340
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -44,6 +44,7 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppRecordVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanbuckleplanhistory.LoanBucklePlanHistory;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
@ -51,6 +52,7 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -68,6 +70,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
@ -115,6 +118,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanBucklePlanHistoryService loanBucklePlanHistoryService;
public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) {
IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq);
@ -256,7 +261,20 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord();
applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
for (String historySid : historySids) {
LoanBucklePlanHistory loanBucklePlanHistory = new LoanBucklePlanHistory();
loanBucklePlanHistory.setMainSid(sid);
loanBucklePlanHistory.setPlanSid(record.getRecordSid());
loanBucklePlanHistory.setRecordSid(historySid);
loanBucklePlanHistoryService.insert(loanBucklePlanHistory);
}
}
}
}
}
@ -288,12 +306,25 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord();
applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
loanBuckleApplyRecordService.insert(applyRecord);
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(record.getRecordSid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("申请中");
repaymentHistory.setBuckleKey("002");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
for (String historySid : historySids) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(historySid);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("申请中");
repaymentHistory.setBuckleKey("002");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
LoanBucklePlanHistory loanBucklePlanHistory = new LoanBucklePlanHistory();
loanBucklePlanHistory.setMainSid(sid);
loanBucklePlanHistory.setPlanSid(record.getRecordSid());
loanBucklePlanHistory.setRecordSid(historySid);
loanBucklePlanHistoryService.insert(loanBucklePlanHistory);
}
}
}
}
@ -342,14 +373,45 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(sid);
List<LoanBuckleHistoryRecord> recordList = new ArrayList<>();
if (!records.isEmpty()) {
for (LoanBuckleApplyRecord record : records) {
String historySid = record.getRepaymentHistorySid();
LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord();
LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData();
if (null != recordVo) {
BeanUtil.copyProperties(recordVo, historyRecord);
for (LoanBuckleApplyRecord r : records) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(r.getRepaymentHistorySid());
if (null != planDetails) {
if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
record.setLoanContractNo(planDetails.getLoanContractNo());
}
if (StringUtils.isNotBlank(planDetails.getVinNo())) {
record.setVinNo(planDetails.getVinNo());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
record.setBankName(planDetails.getBankName());
}
if (StringUtils.isNotBlank(planDetails.getBankContractNo())) {
record.setBankContractNo(planDetails.getBankContractNo());
}
if (StringUtils.isNotBlank(planDetails.getCustomer())) {
record.setCustomer(planDetails.getCustomer());
}
if (StringUtils.isNotBlank(planDetails.getBorrowerName())) {
record.setBorrowerName(planDetails.getBorrowerName());
}
if (StringUtils.isNotBlank(planDetails.getPeriod())) {
record.setPeriod(planDetails.getPeriod());
}
}
if (r.getActualMoney() != null) {
record.setActualMoney(r.getActualMoney().toString());
}
recordList.add(historyRecord);
List<String> strings = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(sid, r.getRepaymentHistorySid());
record.setHistorySids(strings);
recordList.add(record);
// String historySid = record.getRepaymentHistorySid();
// LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord();
// LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData();
// if (null != recordVo) {
// BeanUtil.copyProperties(recordVo, historyRecord);
// }
// recordList.add(historyRecord);
}
}
initVo.setRecords(recordList);
@ -571,15 +633,34 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid);
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核通过");
repaymentHistory.setBuckleKey("003");
repaymentHistory.setClosingDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(businessSid, applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核通过");
repaymentHistory.setBuckleKey("003");
repaymentHistory.setClosingDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
}
}
}
// List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid);
// if (!applyRecords.isEmpty()) {
// for (LoanBuckleApplyRecord applyRecord : applyRecords) {
// LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setBuckle("审核通过");
// repaymentHistory.setBuckleKey("003");
// repaymentHistory.setClosingDate(new DateTime());
// loanRepaymentHistoryService.updateById(repaymentHistory);
// }
// }
// }
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -608,81 +689,77 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanBuckleApplyRecord v : records) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid());
if (null != repaymentHistory) {
String planDetailSid = repaymentHistory.getPlanDetailSid();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid);
if (null != planDetails) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(planDetailSid);
if (StringUtils.isNotBlank(state)) {
if (state.equals("0")) {
voucherDetail.setSceneCode("03");
} else if (state.equals("1")) {
voucherDetail.setSceneCode("02");
} else if (state.equals("2")) {
voucherDetail.setSceneCode("01");
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid());
if (null != planDetails) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(v.getRepaymentHistorySid());
if (StringUtils.isNotBlank(state)) {
if (state.equals("0")) {
voucherDetail.setSceneCode("03");
} else if (state.equals("1")) {
voucherDetail.setSceneCode("02");
} else if (state.equals("2")) {
voucherDetail.setSceneCode("01");
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
linkNo = busSalesOrderVehicle.getLinkNo();
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
voucherDetail.setCustomerCode(customerNumber);
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(repaymentHistory.getActualMoney());
voucherDetails.add(voucherDetail);
}
voucherDetail.setAmount(v.getActualMoney());
voucherDetails.add(voucherDetail);
}
}
generalVoucher.setVoucherDetails(voucherDetails);
@ -817,14 +894,32 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
}
}
}
// List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
// if (!applyRecords.isEmpty()) {
// for (LoanBuckleApplyRecord applyRecord : applyRecords) {
// LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setBuckle("审核未通过");
// repaymentHistory.setBuckleKey("004");
// loanRepaymentHistoryService.updateById(repaymentHistory);
// }
// }
// }
}
return rb.success().setData(resultBean.getData());
} else {
@ -843,16 +938,22 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
}
}
}
}
return rb.success().setData(resultBean.getData());
}
}
@ -964,8 +1065,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<AppRecordVo> records = new ArrayList<>();
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
String historySid = applyRecord.getRepaymentHistorySid();
LoanRepaymentHistoryRecordVo data = loanRepaymentHistoryService.buckleInfo(historySid).getData();
String planSid = applyRecord.getRepaymentHistorySid();
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsService.fetchBySid(planSid);
if (null != data) {
AppRecordVo appRecordVo = new AppRecordVo();
if (StringUtils.isNotBlank(data.getLoanContractNo())) {
@ -977,9 +1078,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(data.getVinNo())) {
appRecordVo.setVin("车架号:" + data.getVinNo());
}
if (StringUtils.isNotBlank(data.getReturnWay())) {
appRecordVo.setType(data.getReturnWay());
}
appRecordVo.setType("");
if (StringUtils.isNotBlank(data.getBankName())) {
appRecordVo.setZf(data.getBankName());
}
@ -992,27 +1091,11 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(data.getBorrowerName())) {
appRecordVo.setLoanName(data.getBorrowerName());
}
// if (StringUtils.isNotBlank(data.getDueDate())) {
// appRecordVo.setRepaymentDate(data.getDueDate());
// }
String yinghuan = "";
String weihuan = "";
String shihuan = "";
String shihuandate = "";
// if (StringUtils.isNotBlank(data.getDueMoney())) {
// yinghuan = data.getDueMoney();
// }
// if (StringUtils.isNotBlank(data.getOutstandingMoney())) {
// weihuan = data.getOutstandingMoney();
// }
if (StringUtils.isNotBlank(data.getActualDate())) {
shihuandate = data.getActualDate();
}
if (StringUtils.isNotBlank(data.getActualMoney())) {
shihuan = data.getActualMoney();
}
appRecordVo.setInfo1("");
appRecordVo.setInfo2("实还日期:" + shihuandate + ",实还金额:" + shihuan);
if (applyRecord.getActualMoney() != null) {
String shihuan = applyRecord.getActualMoney().toString();
appRecordVo.setInfo2("实还金额:" + shihuan);
}
records.add(appRecordVo);
}
}
@ -1039,11 +1122,18 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(sid);
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("未申请");
repaymentHistory.setBuckleKey("001");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(sid, applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("未申请");
repaymentHistory.setBuckleKey("001");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
}
}
}

1
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java

@ -12,4 +12,5 @@ import java.util.List;
@Mapper
public interface LoanBucklePlanHistoryMapper extends BaseMapper<LoanBucklePlanHistory> {
List<String> fetchByMainSidAndPlanSid(@Param("sid") String sid, @Param("repaymentHistorySid") String repaymentHistorySid);
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml

@ -3,4 +3,10 @@
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryMapper">
<select id="fetchByMainSidAndPlanSid" resultType="java.lang.String">
SELECT recordSid
FROM loan_buckle_plan_history
WHERE mainSid = #{sid}
AND planSid = #{repaymentHistorySid}
</select>
</mapper>

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java

@ -16,4 +16,7 @@ import java.util.List;
public class LoanBucklePlanHistoryService extends MybatisBaseService<LoanBucklePlanHistoryMapper, LoanBucklePlanHistory> {
public List<String> fetchByMainSidAndPlanSid(String sid, String repaymentHistorySid) {
return baseMapper.fetchByMainSidAndPlanSid(sid,repaymentHistorySid);
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java

@ -214,7 +214,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
);
qw.eq("a.isDelete", 0);
qw.orderByDesc("a.createTime");
qw.eq("v.vehType", "0");
qw.eq("v.vehType", "主车");
IPage<LoanRedemptionApplyVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanRedemptionApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java

@ -38,7 +38,7 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
List<String> selUpdateStateList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
List<LoanRepaymentHistoryVo> selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
List<RepaymentHistoryVoForBuckle> selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
IPage<TransferPaymentVo> transferPaymentList(IPage<LoanRepaymentHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
@ -51,4 +51,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
String getMaxUpdateTimeByBankContractNo(@Param("bankContractNo") String bankContractNo);
TransferRecordVo selTransferRecord(@Param("sid") String sid);
}

37
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -101,6 +101,7 @@
from loan_repayment_history
where planDetailSid = #{planSid}
and returnWayKey != '02'
and updateState = '1'
</select>
<select id="selUpdateStateList" resultType="java.lang.String">
SELECT
@ -113,7 +114,7 @@
</where>
</select>
<select id="selbuckleNewInitList"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryVo">
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentHistoryVoForBuckle">
SELECT
h.sid,
p.loanContractNo,
@ -155,18 +156,18 @@
date_format(h.actualDate, '%Y-%m-%d') AS actualDate,
h.actualMoney,
h.planDetailSid,
r.spread,
r.transferPrincipal,
r.defaultInterest,
r.accountType,
r.account,
r.accountNumber,
-- r.spread,
-- r.transferPrincipal,
-- r.defaultInterest,
-- r.accountType,
-- r.account,
-- r.accountNumber,
date_format(h.transferDate, '%Y-%m-%d') AS transferDate,
date_format(h.prepareDate, '%Y-%m-%d') AS prepareDate
FROM
loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid
LEFT JOIN loan_transfer_payment_record AS r ON h.sid = r.repaymentHistorySid
-- LEFT JOIN loan_transfer_payment_record AS r ON h.sid = r.repaymentHistorySid
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy as po ON s.policySid = po.sid
LEFT JOIN loan_fin_bank as b ON b.sid = po.bankSid
@ -178,7 +179,8 @@
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo">
SELECT DISTINCT
a.*,
(SELECT c.bankBeInter FROM loan_be_padsincere_veh as c WHERE c.saleVehSid = a.busVinSid AND c.period = a.period) as bankBeInter
(SELECT c.bankBeInter FROM loan_be_padsincere_veh as c WHERE c.saleVehSid = a.busVinSid AND c.period = a.period)
as bankBeInter
FROM
(
SELECT
@ -354,9 +356,8 @@
</where>
</select>
<select id="getMaxUpdateTimeByBankContractNo" resultType="java.lang.String">
SELECT
MAX(h.actualDate)
as updateTime
SELECT MAX(h.actualDate)
as updateTime
FROM loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p
ON h.planDetailSid = p.sid
@ -364,5 +365,17 @@
AND h.returnWayKey = '01'
AND p.bankContractNo = #{bankContractNo}
</select>
<select id="selTransferRecord"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.TransferRecordVo">
SELECT r.spread,
r.transferPrincipal,
r.defaultInterest,
r.accountType,
r.account,
r.accountNumber
FROM loan_transfer_payment_record AS r
where r.repaymentHistorySid = #{sid}
and r.state = 1
</select>
</mapper>

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

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.math.Money;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@ -38,6 +39,7 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils.CollectorsUtil;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
@ -74,6 +76,7 @@ import java.util.concurrent.*;
import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@ -932,6 +935,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
}
public ResultBean<LoanBuckleApplyInit> buckleNewInit(String orgPath) {
ResultBean<LoanBuckleApplyInit> rb = ResultBean.fireFail();
LoanBuckleApplyInit vo = new LoanBuckleApplyInit();
@ -951,42 +955,95 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.ne("h.buckleKey", "002");
qw.ne("h.buckleKey", "003");
qw.eq("h.updateState", "1");
List<LoanRepaymentHistoryVo> histories = baseMapper.selbuckleNewInitList(qw);
List<RepaymentHistoryVoForBuckle> histories = baseMapper.selbuckleNewInitList(qw);
Map<String, BigDecimal> countMoney = new HashMap<>();
Map<String, List<String>> sids = new HashMap<>();
Map<String, BigDecimal> newMap = new HashMap<>();
Map<String, List<String>> stringListMap = new HashMap<>();
Set<String> planSids = new HashSet<>();
if (!histories.isEmpty()) {
for (LoanRepaymentHistoryVo history : histories) {
String planDetailSid = history.getPlanDetailSid();
List<LoanRepaymentHistory> historyList = baseMapper.selByPlanSid(planDetailSid);
if (!historyList.isEmpty()) {
BigDecimal actualMoney = new BigDecimal(0);
for (LoanRepaymentHistory repaymentHistory : historyList) {
actualMoney = repaymentHistory.getActualMoney().add(actualMoney);
}
if (actualMoney.compareTo(BigDecimal.ZERO) == -1) {
planSids.add(planDetailSid);
}
}
countMoney = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, CollectorsUtil.summingBigDecimal(RepaymentHistoryVoForBuckle::getActualMoney)));
sids = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, Collectors.mapping(RepaymentHistoryVoForBuckle::getSid, Collectors.toList())));
}
for (Map.Entry<String, BigDecimal> entry : countMoney.entrySet()) {
if (entry.getValue().compareTo(BigDecimal.ZERO) > 0) {
newMap.put(entry.getKey(), entry.getValue());
}
}
Iterator<LoanRepaymentHistoryVo> it = histories.iterator();
while (it.hasNext()) {
LoanRepaymentHistoryVo historyVo = it.next();
if (!planSids.isEmpty()) {
if (planSids.contains(historyVo.getPlanDetailSid())) {
it.remove();
for (Map.Entry<String, List<String>> entry : sids.entrySet()) {
for (Map.Entry<String, BigDecimal> entry2 : newMap.entrySet()) {
if (entry.getKey().equals(entry2.getKey())) {
stringListMap.put(entry.getKey(), entry.getValue());
}
}
}
if (!histories.isEmpty()) {
for (LoanRepaymentHistoryVo history : histories) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid());
if (null != recordVo) {
BeanUtil.copyProperties(recordVo, record);
for (Map.Entry<String, List<String>> entry : stringListMap.entrySet()) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
record.setRecordSid(entry.getKey());
record.setHistorySids(entry.getValue());
record.setActualMoney(newMap.get(entry.getKey()).toString());
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(entry.getKey());
if (null != planDetails) {
if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
record.setLoanContractNo(planDetails.getLoanContractNo());
}
if (StringUtils.isNotBlank(planDetails.getVinNo())) {
record.setVinNo(planDetails.getVinNo());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
record.setBankName(planDetails.getBankName());
}
if (StringUtils.isNotBlank(planDetails.getBankContractNo())) {
record.setBankContractNo(planDetails.getBankContractNo());
}
if (StringUtils.isNotBlank(planDetails.getCustomer())) {
record.setCustomer(planDetails.getCustomer());
}
if (StringUtils.isNotBlank(planDetails.getBorrowerName())) {
record.setBorrowerName(planDetails.getBorrowerName());
}
if (StringUtils.isNotBlank(planDetails.getPeriod())) {
record.setPeriod(planDetails.getPeriod());
}
historyRecords.add(record);
}
}
historyRecords.add(record);
}
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// String planDetailSid = history.getPlanDetailSid();
// List<LoanRepaymentHistory> historyList = baseMapper.selByPlanSid(planDetailSid);
// if (!historyList.isEmpty()) {
// BigDecimal actualMoney = new BigDecimal(0);
// for (LoanRepaymentHistory repaymentHistory : historyList) {
// actualMoney = repaymentHistory.getActualMoney().add(actualMoney);
// }
// if (actualMoney.compareTo(BigDecimal.ZERO) == -1) {
// planSids.add(planDetailSid);
// }
// }
// }
// }
// Iterator<LoanRepaymentHistoryVo> it = histories.iterator();
// while (it.hasNext()) {
// LoanRepaymentHistoryVo historyVo = it.next();
// if (!planSids.isEmpty()) {
// if (planSids.contains(historyVo.getPlanDetailSid())) {
// it.remove();
// }
// }
// }
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
// LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid());
// if (null != recordVo) {
// BeanUtil.copyProperties(recordVo, record);
// }
// historyRecords.add(record);
// }
// }
vo.setRecords(historyRecords);
return rb.success().setData(vo);
}
@ -1077,7 +1134,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
if (StringUtils.isNotBlank(pagerQuery.getAccountTypeKey())) {
qw.like("r.accountTypeKey", pagerQuery.getAccountTypeKey());
}
qw.eq("r.state", 0);
String dueStartDate = pagerQuery.getDueStartDate();
String dueEndDate = pagerQuery.getDueEndDate();
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')").
@ -1090,6 +1146,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
);
qw.apply("(b.reAdvances = '1' OR IFNULL(p.paymentMoney,0) <= 0)");
IPage<TransferPaymentVo> pagging = baseMapper.transferPaymentList(page, qw);
if (pagerQuery.getType().equals("1")) {
List<TransferPaymentVo> records = pagging.getRecords();
if (!records.isEmpty()) {
for (TransferPaymentVo record : records) {
TransferRecordVo transferRecordVo = baseMapper.selTransferRecord(record.getSid());
if (null != transferRecordVo) {
if (StringUtils.isNotBlank(transferRecordVo.getTransferPrincipal())) {
record.setTransferPrincipal(transferRecordVo.getTransferPrincipal());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccount())) {
record.setAccount(transferRecordVo.getAccount());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccountNumber())) {
record.setAccountNumber(transferRecordVo.getAccountNumber());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccountType())) {
record.setAccountType(transferRecordVo.getAccountType());
}
if (StringUtils.isNotBlank(transferRecordVo.getSpread())) {
record.setSpread(transferRecordVo.getSpread());
}
if (StringUtils.isNotBlank(transferRecordVo.getDefaultInterest())) {
record.setDefaultInterest(transferRecordVo.getDefaultInterest());
}
}
}
}
}
PagerVo<TransferPaymentVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper;
@ -32,4 +33,5 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
LoanRepaymentSchedule selByLoanContractSid(@Param("loanContractSid") String loanContractSid);
List<LoanRepaymentHistory> selHistoryBySid(@Param("sid") String sid);
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml

@ -58,4 +58,10 @@
from loan_repayment_schedule
where loanContractSid = #{loanContractSid}
</select>
<select id="selHistoryBySid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory">
SELECT sid
FROM loan_repayment_history
WHERE scheduleSid = #{sid}
</select>
</mapper>

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

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
@ -51,6 +52,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return loanRepaymentScheduleService.selByLoanContractSid(loanContractSid);
}
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return loanRepaymentScheduleService.selHistoryBySid(sid);
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
ResultBean<PagerVo<AppRepaymentPlanVo>> rb = ResultBean.fireFail();

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

@ -40,6 +40,7 @@ import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -2414,4 +2415,10 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
LoanRepaymentSchedule repaymentSchedule = baseMapper.selByLoanContractSid(loanContractSid);
return rb.success().setData(repaymentSchedule);
}
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
List<LoanRepaymentHistory> repaymentHistories = baseMapper.selHistoryBySid(sid);
return rb.success().setData(repaymentHistories);
}
}

Loading…
Cancel
Save