From d8e7ff19027e67563a7d82c0bd53d065f66ee653 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Wed, 3 Jan 2024 17:44:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E4=BB=98=E6=8E=A8=E4=BB=A3=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E5=88=97=E8=A1=A8=E3=80=81=E8=BF=98=E6=AC=BE=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=83=85=E5=86=B5=E8=A1=A8=E6=9F=A5=E8=AF=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinManufacturerBankFeign.java | 4 + .../FinManufacturerBankFeignFallback.java | 5 + .../FinManufacturerBankMapper.java | 2 + .../FinManufacturerBankMapper.xml | 6 + .../FinManufacturerBankRest.java | 5 + .../FinManufacturerBankService.java | 6 + .../LoanRepaymentPlanDetails.java | 12 +- .../LoanTransferPaymentRecord.java | 4 +- .../LoanRepaymentHistoryMapper.java | 2 + .../LoanRepaymentHistoryMapper.xml | 23 ++- .../LoanRepaymentHistoryService.java | 167 ++++++++---------- .../LoanRepaymentPlanDetailsMapper.java | 3 + .../LoanRepaymentPlanDetailsMapper.xml | 124 ++++++------- .../LoanRepaymentPlanDetailsService.java | 4 + .../LoanTransferPaymentApplyService.java | 128 +++++++++++++- .../LoanTransferPaymentRecordMapper.xml | 6 +- 16 files changed, 325 insertions(+), 176 deletions(-) diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java index 1cd2519ec8..01782862c4 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java @@ -102,4 +102,8 @@ public interface FinManufacturerBankFeign { @ResponseBody public ResultBean listByPayment(@RequestParam("orgPath") String orgPath, @RequestParam("key") String key); + @ApiOperation("根据账号获取银行账户信息") + @GetMapping("/selOneByBankNo") + @ResponseBody + public ResultBean selOneByBankNo(@RequestParam("bankAccount") String bankAccount, @RequestParam("useOrgSid") String useOrgSid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java index b5ce5cbb12..02c7648740 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java @@ -94,4 +94,9 @@ public class FinManufacturerBankFeignFallback implements FinManufacturerBankFeig public ResultBean listByPayment(String orgPath, String key) { return null; } + + @Override + public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) { + return null; + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java index 29a55b3922..3566d5082b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java @@ -68,4 +68,6 @@ public interface FinManufacturerBankMapper extends BaseMapper selAppAccountByOrgSid(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("name") String name); List listByPayment(@Param("useOrgSid") String useOrgSid, @Param("key") String key); + + FinManufacturerBank selOneByBankNo(@Param("bankAccount") String bankAccount, @Param("useOrgSid") String useOrgSid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml index 5599f7927a..4fc519eeee 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml @@ -93,4 +93,10 @@ where useOrgSid = #{useOrgSid} and dueBankKey = #{key} + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java index 5e2dbe14ed..689d46b87b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java @@ -110,4 +110,9 @@ public class FinManufacturerBankRest implements FinManufacturerBankFeign { public ResultBean listByPayment(String orgPath, String key) { return finManufacturerBankService.listByPayment(orgPath,key); } + + @Override + public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) { + return finManufacturerBankService.selOneByBankNo(bankAccount,useOrgSid); + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java index 0aefac0f50..082056866d 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java @@ -272,4 +272,10 @@ public class FinManufacturerBankService extends MybatisBaseService list = baseMapper.listByPayment(useOrgSid, key); return rb.success().setData(list); } + + public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) { + ResultBean rb = ResultBean.fireFail(); + FinManufacturerBank finManufacturerBank = baseMapper.selOneByBankNo(bankAccount,useOrgSid); + return rb.success().setData(finManufacturerBank); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java index a3f99343c0..69a4af6eeb 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java @@ -70,11 +70,13 @@ public class LoanRepaymentPlanDetails extends BaseEntity { private String orgSidPath; - private String returnWayKey; + private String returnWayKey; //还款方式key(01直还、02间还、03转付) private String returnWay; - private String actualPerson; - private BigDecimal paymentMoney; - private BigDecimal fund; - + private String actualPerson; //实际还款人 + private BigDecimal paymentMoney; //公司垫款金额 + private BigDecimal fund; //资金占用费 + private Integer overdue; //是否曾逾期(0是,1否) + private Integer oweState; //是否转累欠状态(0是,1否) + private Date updateTime; //更新日期 } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java index 7451c2bc60..aeaf75bb19 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java @@ -37,6 +37,6 @@ public class LoanTransferPaymentRecord extends BaseEntity { private String account; @ApiModelProperty("转付账户账号") private String accountNumber; - - + @ApiModelProperty("资方合同号") + private String bankContractNo; } 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 c72bba9f50..6f434b8eab 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 @@ -49,4 +49,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper repaymentDetailsList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper qw); + + String getMaxUpdateTimeByBankName(@Param("bankName") String bankName); } 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 58f8c8650f..87b34fdfa8 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 @@ -198,6 +198,8 @@ t.repaidMoney, t.outstandingMoney, v.bankBeInter, + pd.overdue as dueOverdue, + pd.updateTime as updateDate, CASE WHEN t.repaidMoney = 0 THEN '01' @@ -223,18 +225,14 @@ AND h.updateState = '1'),0) as repaidMoney , IFNULL( - p.dueMoney - ( - SELECT - SUM( - IFNULL( h.actualMoney, 0 )) + (p.dueMoney - IFNULL((SELECT + SUM(IFNULL( h.actualMoney, 0 )) FROM loan_repayment_history AS h WHERE h.planDetailSid = p.sid AND h.updateState = '1' - ), - 0 - ) AS outstandingMoney + ),0)),0) AS outstandingMoney FROM loan_repayment_plan_details AS p ) AS t ON pd.sid = t.sid @@ -352,5 +350,16 @@ ${ew.sqlSegment} + \ 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 91b051ea2d..db134ffb8c 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 @@ -8,6 +8,8 @@ import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportReturn; import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportVo; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempExportVo; +import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; @@ -21,6 +23,7 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -491,7 +494,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService= date_format('" + dueStartDate + "','%Y-%m-%d')"). @@ -701,6 +704,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService qw = new QueryWrapper<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //======================= String orgSidPath = orgPath; orgSidPath = orgSidPath + "/"; @@ -714,6 +718,9 @@ public class LoanRepaymentHistoryService extends MybatisBaseService histories = baseMapper.selUpdateStateList(qw); + HashSet bankNames = new HashSet<>(); + HashSet pSids = new HashSet<>(); + String useOrgSid = ""; if (!histories.isEmpty()) { for (String historySid : histories) { LoanRepaymentHistory repaymentHistory = fetchBySid(historySid); @@ -721,6 +728,41 @@ public class LoanRepaymentHistoryService extends MybatisBaseService map = new HashMap<>(); + if (!bankNames.isEmpty()) { + for (String bankName : bankNames) { + String updateTime = baseMapper.getMaxUpdateTimeByBankName(bankName); + if (StringUtils.isNotBlank(updateTime)) { + map.put(bankName, updateTime); + } + } + } + if (!map.isEmpty()) { + for (Map.Entry entry : map.entrySet()) { + String updateTime = entry.getValue(); + try { + Date u = sdf.parse(updateTime); + Date today = new Date(); + String f = sdf.format(today); + Date date = sdf.parse(f); + if (u.compareTo(date) == 0) { + Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 + cal_1.setTime(date); + cal_1.add(Calendar.DAY_OF_MONTH, -1); + u = cal_1.getTime(); + } + int i = loanRepaymentPlanDetailsService.updateTime(entry.getKey(), u, useOrgSid); + } catch (ParseException e) { + e.printStackTrace(); + } } } } else { @@ -747,7 +789,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService histories = baseMapper.selbuckleNewInitList(qw); Set planSids = new HashSet<>(); if (!histories.isEmpty()) { @@ -963,11 +1005,19 @@ public class LoanRepaymentHistoryService extends MybatisBaseService= date_format('" + dueStartDate + "','%Y-%m-%d')"). apply(StringUtils.isNotEmpty(dueEndDate), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" ); + String updateStartDate = pagerQuery.getUpdateStartDate(); + String updateEndDate = pagerQuery.getUpdateEndDate(); + qw.apply(StringUtils.isNotEmpty(updateStartDate), "date_format (a.updateDate,'%Y-%m-%d') >= date_format('" + updateStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(updateEndDate), "date_format (a.updateDate,'%Y-%m-%d') <= date_format('" + updateEndDate + "','%Y-%m-%d')" + ); qw.eq("1", "1"); qw.orderBy(true, true, "a.useOrgName") .orderBy(true, true, "a.vinNo") @@ -978,55 +1028,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService updateTimes = baseMapper.selnewUpdateTimeByPlanSid(sid); - updateTimes.removeAll(Collections.singleton(null)); - if (!updateTimes.isEmpty()) { - String updateTime = updateTimes.get(0); + if (StringUtils.isNotBlank(record.getUpdateDate())) { try { - Date updateTimeParse = sdf.parse(updateTime); - Date dueDateParse = sdf.parse(record.getDueDate()); - String format = sdf.format(new Date()); - Date parseNewDate = sdf.parse(format); - if (updateTimeParse.compareTo(dueDateParse) > 0) { - record.setNowOverdue("0"); - } else { - record.setNowOverdue("1"); - } - if (updateTimeParse.compareTo(parseNewDate) == 0) { - Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 - cal_1.add(Calendar.DAY_OF_MONTH, -1); - record.setUpdateDate(sdf.format(cal_1.getTime())); - } else { - record.setUpdateDate(sdf.format(updateTimeParse)); - } - for (String time : updateTimes) { - Date parseTime = sdf.parse(time); - if (parseTime.compareTo(dueDateParse) > 0) { - record.setDueOverdue("0"); + Date u = sdf.parse(record.getUpdateDate()); + Date d = sdf.parse(record.getDueDate()); + if (d.compareTo(u) <= 0) { + BigDecimal sum = new BigDecimal(2); + if (StringUtils.isNotBlank(record.getOutstandingMoney())) { + sum = new BigDecimal(record.getOutstandingMoney()); + } + if (StringUtils.isNotBlank(record.getFund())) { + sum = sum.add(new BigDecimal(record.getFund())); + } + if (StringUtils.isNotBlank(record.getBankBeInter())) { + sum = sum.add(new BigDecimal(record.getBankBeInter())); + } + if (sum.compareTo(BigDecimal.ZERO) > 0) { + record.setNowOverdue("0"); + } else { + record.setNowOverdue("1"); } - } - if (StringUtils.isBlank(record.getDueOverdue())) { - record.setDueOverdue("1"); - } - } catch (ParseException e) { - e.printStackTrace(); - } - } else { - String format = sdf.format(new Date()); - try { - Date parseNewDate = sdf.parse(format); - Date dueDateParse = sdf.parse(record.getDueDate()); - if (parseNewDate.compareTo(dueDateParse) > 0) { - record.setNowOverdue("0"); - record.setDueOverdue("0"); } else { record.setNowOverdue("1"); - record.setDueOverdue("1"); } } catch (ParseException e) { e.printStackTrace(); } + } else { + record.setNowOverdue("1"); } } } @@ -1034,58 +1063,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService r.getNowOverdue().equals(pagerQuery.getNowOverdue())) .collect(Collectors.toList()); } - if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) { - records = records.stream().filter(r -> r.getDueOverdue().equals(pagerQuery.getDueOverdue())) - .collect(Collectors.toList()); - } - if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) || StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { - records = records.stream().filter(new Predicate() { - @Override - public boolean test(RepaymentStatisticsVo v) { - if (StringUtils.isNotBlank(v.getUpdateDate())) { - if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isBlank(pagerQuery.getUpdateEndDate())) { - String updateStartDate = pagerQuery.getUpdateStartDate(); - try { - Date parseUpdateTime = sdf.parse(v.getUpdateDate()); - Date startTime = sdf.parse(updateStartDate); - if (parseUpdateTime.compareTo(startTime) >= 0) { - return true; - } - } catch (ParseException e) { - e.printStackTrace(); - } - } else if (StringUtils.isBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { - String updateEndDate = pagerQuery.getUpdateEndDate(); - try { - Date parseUpdateTime = sdf.parse(v.getUpdateDate()); - Date endTime = sdf.parse(updateEndDate); - if (parseUpdateTime.compareTo(endTime) <= 0) { - return true; - } - } catch (ParseException e) { - e.printStackTrace(); - } - } else { - String updateStartDate = pagerQuery.getUpdateStartDate(); - String updateEndDate = pagerQuery.getUpdateEndDate(); - try { - Date parseUpdateTime = sdf.parse(v.getUpdateDate()); - Date endTime = sdf.parse(updateEndDate); - Date startTime = sdf.parse(updateStartDate); - if (parseUpdateTime.compareTo(endTime) <= 0 && parseUpdateTime.compareTo(startTime) >= 0) { - return true; - } - } catch (ParseException e) { - e.printStackTrace(); - } - } - } - return false; - } - }).collect(Collectors.toList()); - } - - if (!records.isEmpty()) { List lastList = this.pageBySubList(records, (int) pq.getSize(), (int) pq.getCurrent()); pagerVo.setRecords(lastList); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java index e716f8d0e2..130debd400 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java @@ -14,6 +14,7 @@ import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformatio import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; @@ -37,4 +38,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper periodDetails(String saleVehSid); List planList(); + + int updateTime(@Param("bankName")String bankName,@Param("updateTime") Date updateTime,@Param("useOrgSid") String useOrgSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml index 68be48cb66..369dd3a5d0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml @@ -1,6 +1,12 @@ + + UPDATE loan_repayment_plan_details + SET updateTime = #{updateTime} + WHERE bankName = #{bankName} + and useOrgSid = #{useOrgSid}; + DELETE FROM loan_repayment_plan_details @@ -12,16 +18,16 @@ from loan_repayment_plan_details where bankContractNo = #{bankContractNo} and `period` = #{period} - -- and policyOrOther = '0' + -- and policyOrOther = '0' \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java index 4447b7b5ce..c7942fcc11 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java @@ -111,4 +111,8 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService planList() { return baseMapper.planList(); } + + public int updateTime(String bankName, Date updateTime,String useOrgSid) { + return baseMapper.updateTime(bankName,updateTime,useOrgSid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java index 5c4cf98d63..3b3c932a75 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java @@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; +import cn.hutool.core.math.Money; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -9,6 +10,10 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; +import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; +import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -48,6 +53,7 @@ import com.yxt.common.core.vo.PagerVo; import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -57,6 +63,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -89,6 +96,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService paymentInit(String[] sids) { ResultBean rb = ResultBean.fireFail(); @@ -585,6 +596,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService loanTransferPaymentRecords = loanTransferPaymentRecordService.selByMainSid(businessSid); if (!loanTransferPaymentRecords.isEmpty()) { + String payFormKey = apply.getPayFormKey(); //01按资方合同编号单笔付款/02按收款账号合并付款 + //按照合同号合并付款 + Map map = new HashMap<>(); + Set setConOrNumber = new HashSet<>(); for (LoanTransferPaymentRecord applyRecord : loanTransferPaymentRecords) { LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); if (null != repaymentHistory) { @@ -602,11 +617,116 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService collect = loanTransferPaymentRecords.stream().filter(new Predicate() { + @Override + public boolean test(LoanTransferPaymentRecord r) { + if (payFormKey.equals("01")) { + if (StringUtils.isNotBlank(r.getBankContractNo())) { + if (c.equals(r.getBankContractNo())) { + return true; + } + } + } else if (payFormKey.equals("02")) { + if (StringUtils.isNotBlank(r.getAccountNumber())) { + if (c.equals(r.getAccountNumber())) { + return true; + } + } + } + return false; + } + }).collect(Collectors.toList()); + for (LoanTransferPaymentRecord p : collect) { + BigDecimal a = new BigDecimal(0); + BigDecimal b = new BigDecimal(0); + if (null != p.getTransferPrincipal()) { + a = p.getTransferPrincipal(); + } + if (null != p.getDefaultInterest()) { + b = p.getDefaultInterest(); + } + decimal = a.add(b).add(decimal); + } + map.put(c, decimal); + } + if (!map.isEmpty()) { + for (Map.Entry entry : map.entrySet()) { + FinPaymentrecordDto payDto = new FinPaymentrecordDto(); + payDto.setBusSid(apply.getSid()); + payDto.setCreateBySid(apply.getCreateBySid()); + payDto.setCost(entry.getValue().intValue()); + payDto.setAccountsReceive(entry.getValue().intValue()); + payDto.setCostTitleKey("008"); + payDto.setCostTitleValue("月还"); + payDto.setCostTypeKey("006"); + payDto.setCostTypeValue("月还代收"); + if (StringUtils.isNotBlank(apply.getPayRemarks())) { + payDto.setBusRemarks(apply.getPayRemarks()); + } + payDto.setUseOrgSid(apply.getUseOrgSid()); + payDto.setCreateOrgSid(apply.getUseOrgSid()); + List collect = loanTransferPaymentRecords.stream().filter(new Predicate() { + @Override + public boolean test(LoanTransferPaymentRecord r) { + if (payFormKey.equals("01")) { + if (StringUtils.isNotBlank(r.getBankContractNo())) { + if (entry.getKey().equals(r.getBankContractNo())) { + return true; + } + } + } else if (payFormKey.equals("02")) { + if (StringUtils.isNotBlank(r.getAccountNumber())) { + if (entry.getKey().equals(r.getAccountNumber())) { + return true; + } + } + } + return false; + } + }).collect(Collectors.toList()); + if (!collect.isEmpty()) { + LoanTransferPaymentRecord paymentRecord = collect.get(0); + if (StringUtils.isNotBlank(paymentRecord.getAccountNumber())) { + payDto.setReceiveBankAccount(paymentRecord.getAccountNumber()); + FinManufacturerBank bank = finManufacturerBankFeign.selOneByBankNo(paymentRecord.getAccountNumber(), apply.getUseOrgSid()).getData(); + if (null != bank) { + if (StringUtils.isNotBlank(bank.getDepositBank())) { + payDto.setReceiveBank(bank.getDepositBank()); + } + } + } + if (StringUtils.isNotBlank(paymentRecord.getAccount())) { + payDto.setReceiveCompany(paymentRecord.getAccount()); + } + } + finPaymentrecordFeign.save(payDto); + } } } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml index ef8dbb2cd9..7719f0f720 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml @@ -10,9 +10,9 @@