diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java index ed2bfd8e8e..7f419c16b9 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java +++ b/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 不能 } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java index 4e7f3e82bc..aeeedc2595 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java +++ b/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 busSalesOrderVehicles = busSalesOrderVehicleService.selByLoanContractSid(record.getSalesOrderSid()); busSalesOrderVehicles.removeAll(Collections.singleton(null)); @@ -293,8 +295,15 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid()); if (repaymentSchedule.getData() != null) { record.setBuilded("是"); + List 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); + } } } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java index d2d7037405..95c44f2bdd 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java +++ b/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 files = new ArrayList<>(); private List records = new ArrayList<>(); - private List historySids = new ArrayList<>(); + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java index 6a6b02542b..a997c3893c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java +++ b/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 historySids = new ArrayList<>(); + private List historySids = new ArrayList<>(); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java index 03cc1a9630..552268ed1c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java +++ b/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; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java new file mode 100644 index 0000000000..22490ea535 --- /dev/null +++ b/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; //更新日期 +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java new file mode 100644 index 0000000000..1d3b08875e --- /dev/null +++ b/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; //转付账户账号 +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java new file mode 100644 index 0000000000..ac73a89c73 --- /dev/null +++ b/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 CH_NOID = Collections.emptySet(); + + private CollectorsUtil() { + } + + @SuppressWarnings("unchecked") + private static Function castingIdentity() { + return i -> (R) i; + } + + /** + * Simple implementation class for {@code Collector}. + * + * @param + * the type of elements to be collected + * @param + * the type of the result + */ + static class CollectorImpl implements Collector { + private final Supplier supplier; + private final BiConsumer accumulator; + private final BinaryOperator combiner; + private final Function finisher; + private final Set characteristics; + + CollectorImpl(Supplier supplier, BiConsumer accumulator, BinaryOperator combiner, + Function finisher, Set characteristics) { + this.supplier = supplier; + this.accumulator = accumulator; + this.combiner = combiner; + this.finisher = finisher; + this.characteristics = characteristics; + } + + CollectorImpl(Supplier supplier, BiConsumer accumulator, BinaryOperator combiner, + Set characteristics) { + this(supplier, accumulator, combiner, castingIdentity(), characteristics); + } + + @Override + public BiConsumer accumulator() { + return accumulator; + } + + @Override + public Supplier supplier() { + return supplier; + } + + @Override + public BinaryOperator combiner() { + return combiner; + } + + @Override + public Function finisher() { + return finisher; + } + + @Override + public Set characteristics() { + return characteristics; + } + } + + public static Collector summingBigDecimal(ToBigDecimalFunction 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); + } + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java new file mode 100644 index 0000000000..bb3bd8eabb --- /dev/null +++ b/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 { + BigDecimal applyAsBigDecimal(T value); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java index 7645526bc6..1867040483 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java +++ b/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> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid); - @ApiOperation("查看单台还款计划表") + @ApiOperation("查看还款计划表") @GetMapping("/selByLoanContractSid") @ResponseBody ResultBean selByLoanContractSid(@RequestParam("loanContractSid") String loanContractSid); + @ApiOperation("查看还款计划表") + @GetMapping("/selHistoryBySid") + @ResponseBody + ResultBean> selHistoryBySid(@RequestParam("sid") String sid); + //-------------------------app接口-------------------- /** diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java index db393ebf2f..7ce9e0456f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java +++ b/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> selHistoryBySid(String sid) { + return null; + } + @Override public ResultBean> getRepaymentPlanList(PagerQuery pq) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java index d23cdf5073..9781b26e4d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java +++ b/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 listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -256,7 +261,20 @@ public class LoanBuckleApplyService extends MybatisBaseService 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 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 records = loanBuckleApplyRecordService.selByMainSid(sid); List 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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); + } + } + ); } } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java index f25c12d505..f412afe3e1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java +++ b/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 { + List fetchByMainSidAndPlanSid(@Param("sid") String sid, @Param("repaymentHistorySid") String repaymentHistorySid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml index 1184e5db5a..8d1af22bea 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml @@ -3,4 +3,10 @@ + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java index 429d4d5057..0c5be77a84 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java +++ b/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 { + public List fetchByMainSidAndPlanSid(String sid, String repaymentHistorySid) { + return baseMapper.fetchByMainSidAndPlanSid(sid,repaymentHistorySid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java index 50f03aab94..f70b3b588b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java +++ b/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 pagging = baseMapper.listPage(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java index ce139bd8f3..88ae7f2ea7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java +++ b/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 selUpdateStateList(@Param(Constants.WRAPPER) QueryWrapper qw); - List selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper qw); + List selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper qw); IPage transferPaymentList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); @@ -51,4 +51,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper qw); String getMaxUpdateTimeByBankContractNo(@Param("bankContractNo") String bankContractNo); + + TransferRecordVo selTransferRecord(@Param("sid") String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml index 7559b7274a..850333470a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml +++ b/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' + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java index bbc1cee881..620cec5d9e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java +++ b/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 buckleNewInit(String orgPath) { ResultBean rb = ResultBean.fireFail(); LoanBuckleApplyInit vo = new LoanBuckleApplyInit(); @@ -951,42 +955,95 @@ public class LoanRepaymentHistoryService extends MybatisBaseService histories = baseMapper.selbuckleNewInitList(qw); + List histories = baseMapper.selbuckleNewInitList(qw); + Map countMoney = new HashMap<>(); + Map> sids = new HashMap<>(); + Map newMap = new HashMap<>(); + Map> stringListMap = new HashMap<>(); Set planSids = new HashSet<>(); if (!histories.isEmpty()) { - for (LoanRepaymentHistoryVo history : histories) { - String planDetailSid = history.getPlanDetailSid(); - List 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 entry : countMoney.entrySet()) { + if (entry.getValue().compareTo(BigDecimal.ZERO) > 0) { + newMap.put(entry.getKey(), entry.getValue()); } } - Iterator it = histories.iterator(); - while (it.hasNext()) { - LoanRepaymentHistoryVo historyVo = it.next(); - if (!planSids.isEmpty()) { - if (planSids.contains(historyVo.getPlanDetailSid())) { - it.remove(); + for (Map.Entry> entry : sids.entrySet()) { + for (Map.Entry 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> 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 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 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= date_format('" + dueStartDate + "','%Y-%m-%d')"). @@ -1090,6 +1146,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService pagging = baseMapper.transferPaymentList(page, qw); + if (pagerQuery.getType().equals("1")) { + List 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 p = PagerUtil.pageToVo(pagging, null); return p; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java index 74b3e62595..0f13f8b877 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java +++ b/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 selHistoryBySid(@Param("sid") String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml index dbb4324d72..fd304239bb 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml +++ b/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} + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java index 87dc84b735..290c088e4b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java +++ b/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> selHistoryBySid(String sid) { + return loanRepaymentScheduleService.selHistoryBySid(sid); + } + @Override public ResultBean> getRepaymentPlanList(PagerQuery pq) { ResultBean> rb = ResultBean.fireFail(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java index abaddbce4c..2a5aa379e6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java +++ b/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> selHistoryBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + List repaymentHistories = baseMapper.selHistoryBySid(sid); + return rb.success().setData(repaymentHistories); + } }