diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java index 67f148f90f..2524079a89 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java @@ -85,6 +85,10 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehFeign import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo; import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; @@ -192,6 +196,8 @@ public class FinPaymentrecordService extends MybatisBaseService listPageVo(PagerQuery pq) { FinPaymentrecordQuery query = pq.getParams(); @@ -603,19 +609,25 @@ public class FinPaymentrecordService extends MybatisBaseService appDetail(@PathVariable("sid") String sid); - + @ApiOperation("app详情") + @PostMapping("/pushRiskToFin") + @ResponseBody + ResultBean pushRiskToFin(@RequestParam("applySid") String applySid); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java index 229fc65fd9..7b929ea82e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java @@ -102,4 +102,9 @@ public class LoanRepurchaseApplyFeignFallback implements LoanRepurchaseApplyFeig public ResultBean appDetail(String sid) { return null; } + + @Override + public ResultBean pushRiskToFin(String applySid) { + return null; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java index 445534f5dc..0fe40d6094 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyVo.java @@ -51,5 +51,5 @@ public class LoanRepurchaseApplyVo implements Vo { private String nodeState; // 流程实例的sid @ApiModelProperty("风控状态:0正常") - private Integer riskState; + private String riskStateValue; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java index 36a659dffe..75c94d1653 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java @@ -561,6 +561,34 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService vinAmountMap = new HashMap<>(); + + // 四舍五入到2位小数的平均值 + BigDecimal roundedAverage = executeAmountInArear.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP); + // n台车 × roundedAverage + BigDecimal totalRounded = roundedAverage.multiply(BigDecimal.valueOf(size)).setScale(2, RoundingMode.HALF_UP); + + if (executeAmountInArear.setScale(2, RoundingMode.HALF_UP).compareTo(totalRounded) == 0) { + // 能整除,直接平均 + System.out.println(roundedAverage); + } else { + // 不能整除,最后一台车补差值 + BigDecimal totalForNMinusOne = roundedAverage.multiply(BigDecimal.valueOf(size - 1)); + BigDecimal lastAmount = executeAmountInArear.subtract(totalForNMinusOne).setScale(2, RoundingMode.HALF_UP); + + for (int i = 0; i < size; i++) { + if (i == size - 1) { + vinAmountMap.put("111", lastAmount); + } else { + vinAmountMap.put("222", roundedAverage); + } + } + } + } + public void pushRiskToFin(String sid) { LoanCaseExecuteApply loanCaseExecuteApply = fetchBySid(sid); if (loanCaseExecuteApply != null) { diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml index a973d564be..afe1ecd9fc 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml @@ -71,7 +71,8 @@ date_format ( p.dueDate, '%Y-%m-%d' ) dueDate, p.dueMoney, p.dept salesDept, - v.settleState + v.settleState, + v.riskState FROM loan_repayment_plan_details as p LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as v ON p.busVinSid = v.sid diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java index ddbc27ba58..56674f560e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java @@ -170,6 +170,7 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService selectByBusVinSid2(@Param("busVinSid") String busVinSid); } 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 546cef87c8..cc7502384f 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 @@ -1059,4 +1059,27 @@ ) lbpv_sum ON lbpv_sum.saleVehSid = ss.busVinSid GROUP BY ss.busVinSid having beMoney>0 + + 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 06c190ec0a..60221470b2 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 @@ -378,6 +378,9 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService selectByBusVinSid(String busVinSid) { return baseMapper.selectByBusVinSid(busVinSid); } + public List selectByBusVinSid2(String busVinSid) { + return baseMapper.selectByBusVinSid2(busVinSid); + } //逾期且累欠的金额 public String getYqLq(String busVinSid) { @@ -403,4 +406,6 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService appDetail(String sid) { return loanRepurchaseApplyService.appDetail(sid); } + + @Override + public ResultBean pushRiskToFin(String applySid) { + ResultBean rb = ResultBean.fireFail(); + loanRepurchaseApplyService.pushRiskToFin(applySid); + return rb.success(); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java index 0ee41672d4..90053be2cd 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java @@ -20,6 +20,8 @@ import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderRetu import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; @@ -46,6 +48,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageSaveDto; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.*; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; @@ -58,6 +61,7 @@ import com.yxt.anrui.riskcenter.api.loansettlebankcost.LoanSettleBankCostVo; import com.yxt.anrui.riskcenter.api.loansettlecompanycost.LoanSettleCompanyCostVo; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrelievemortgage.LoanRelieveMortgageService; import com.yxt.anrui.riskcenter.biz.loanrepurchasecompanycost.LoanRepurchaseCompanyCostService; import com.yxt.anrui.riskcenter.biz.loanrepurchasecost.LoanRepurchaseCostService; @@ -142,6 +146,10 @@ public class LoanRepurchaseApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -768,17 +776,41 @@ public class LoanRepurchaseApplyService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - Future future1 = pool.submit(() -> { - pushRiskToFin(businessSid); - }); - } catch (Exception e) { - e.printStackTrace(); + LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid); + if(loanRepurchaseCost != null){ + BigDecimal bankSettlePrice = loanRepurchaseCost.getBankSettlePrice();//资方结清金额 + if(bankSettlePrice != null && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){ + FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); + finPaymentrecordDto.setApplySid(loanRepurchaseApply.getSid()); + finPaymentrecordDto.setPayCompanySid(""); + finPaymentrecordDto.setPayType(1); + finPaymentrecordDto.setCreateOrgSid(loanRepurchaseApply.getUseOrgSid()); + finPaymentrecordDto.setUseOrgSid(loanRepurchaseApply.getUseOrgSid()); + finPaymentrecordDto.setCostTypeKey("008"); + finPaymentrecordDto.setCostTypeValue("资方结清款"); + finPaymentrecordDto.setCostTitleKey("014"); + finPaymentrecordDto.setCostTitleValue("资方结清款"); + finPaymentrecordDto.setReceiveBank(""); + finPaymentrecordDto.setReceiveBankAccount(loanRepurchaseCost.getBankAccount()); + finPaymentrecordDto.setReceiveCompany(loanRepurchaseCost.getAccountName()); + if(loanRepurchaseCost.getBankSettlePrice() != null){ + finPaymentrecordDto.setCost(loanRepurchaseCost.getBankSettlePrice().toString()); + finPaymentrecordDto.setAccountsReceive(loanRepurchaseCost.getBankSettlePrice().toString()); + } + finPaymentrecordDto.setBusSid(loanRepurchaseApply.getBillNo()); + finPaymentrecordDto.setPayRemark(loanRepurchaseApply.getPayRemarks()); + finPaymentrecordDto.setPayCode(""); + finPaymentrecordDto.setCreateBySid(loanRepurchaseApply.getCreateBySid()); + finPaymentrecordDto.setUpdateBySid(loanRepurchaseApply.getCreateBySid()); + finPaymentrecordDto.setRemarks(loanRepurchaseApply.getRemarks()); + finPaymentrecordDto.setPurchaseSystemSid(""); + finPaymentrecordDto.setPurchaseSystemName(""); + finPaymentrecordDto.setBusRemarks(loanRepurchaseApply.getPayRemarks()); + finPaymentrecordDto.setFinDataType(1); + String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData(); + + } + } } else { //极光推送 @@ -804,9 +836,48 @@ public class LoanRepurchaseApplyService extends MybatisBaseService list = loanRepaymentPlanDetailsService.selectByBusVinSid2(loanRepurchaseApply.getBusVinSid()); + list.removeAll(Collections.singleton(null)); + if(!list.isEmpty()){ + BigDecimal bankSettlePrice = loanRepurchaseCost.getBankSettlePrice(); + if(bankSettlePrice != null && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){ + for (int jj = 0; jj < list.size(); jj++) { + LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(jj); + String moneysl = loanRepaymentPlanDetails.getMoneysl(); + if(StringUtils.isNotBlank(moneysl) && bankSettlePrice.compareTo(BigDecimal.ZERO)>0){ + if(bankSettlePrice.compareTo(new BigDecimal(moneysl))>0){ + bankSettlePrice = bankSettlePrice.subtract(new BigDecimal(moneysl)); + BigDecimal paymentMoney = loanRepaymentPlanDetails.getPaymentMoney(); + if(paymentMoney != null){ + paymentMoney = paymentMoney.add(new BigDecimal(moneysl)); + }else{ + paymentMoney = new BigDecimal(moneysl); + } + loanRepaymentPlanDetails.setPaymentMoney(paymentMoney); + loanRepaymentPlanDetailsService.updateById(loanRepaymentPlanDetails); + }else{ + bankSettlePrice = BigDecimal.ZERO; + BigDecimal paymentMoney = loanRepaymentPlanDetails.getPaymentMoney(); + if(paymentMoney != null){ + paymentMoney = paymentMoney.add(bankSettlePrice); + }else{ + paymentMoney = bankSettlePrice; + } + loanRepaymentPlanDetails.setPaymentMoney(paymentMoney); + loanRepaymentPlanDetailsService.updateById(loanRepaymentPlanDetails); + } + }else{ + break; + } + } + } + } + + //推送凭证 if(loanRepurchaseApply != null){ List voucherResultDetailDtos = new ArrayList<>(); - LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid); DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(loanRepurchaseApply.getBankName(), "investorsCode").getData(); Voucher voucher = new Voucher(); SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanRepurchaseApply.getUseOrgSid()).getData();