diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index 41b1ef6e93..cd93978036 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -4418,260 +4418,258 @@ public class FinCollectionConfirmationService extends MybatisBaseService bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid); - if (bankResultBean.getData() != null) { - LoanFinBank loanFinBank = bankResultBean.getData(); - if (null != loanFinBank.getReAdvances()) { - if (loanFinBank.getReAdvances() == 1) { - try { - Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); - historyEntity.setActualDate(collDate); - if (planDetails.getDueDate().compareTo(collDate) > 0) { - //未逾期 - Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 - cal_1.setTime(planDetails.getDueDate()); - cal_1.add(Calendar.DAY_OF_MONTH, -1); - historyEntity.setPrepareDate(cal_1.getTime()); - } else { - //已逾期 - historyEntity.setPrepareDate(new DateTime()); - } - } catch (ParseException e) { - e.printStackTrace(); - } - historyEntity.setPaymentState("待转付"); - historyEntity.setPaymentStateKey("001"); - FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); - jr.setCreateBySid(userSid); - SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData(); - jr.setCreateByName(userVo.getName()); - jr.setBusSid(planSid); - jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setPayCostTitleKey("007"); - jr.setPayCostTitleValue("资方退还垫款"); - jr.setOrgSidPath(planDetails.getOrgSidPath()); - jr.setUseOrgName(planDetails.getUseOrgName()); - jr.setUseOrgSid(planDetails.getUseOrgSid()); - jr.setStaffDeptName(planDetails.getDept()); - jr.setStaffName(planDetails.getStaffName()); - jr.setStaffDeptSid(planDetails.getDeptSid()); - jr.setStaffUserSid(planDetails.getSalesUserSid()); - finUncollectedReceivablesDetailedJRService.insert(jr); - } - } - } - } else if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 0) { - try { - Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); - historyEntity.setActualDate(collDate); - if (planDetails.getDueDate().compareTo(collDate) > 0) { - //未逾期 - Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 - cal_1.setTime(planDetails.getDueDate()); - cal_1.add(Calendar.DAY_OF_MONTH, -1); - historyEntity.setPrepareDate(cal_1.getTime()); - } else { - //已逾期 - historyEntity.setPrepareDate(new DateTime()); - } - } catch (ParseException e) { - e.printStackTrace(); - } - historyEntity.setPaymentState("待转付"); - historyEntity.setPaymentStateKey("001"); - } - } else { - try { - Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); - historyEntity.setActualDate(collDate); - if (planDetails.getDueDate().compareTo(collDate) > 0) { - //未逾期 - Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 - cal_1.setTime(planDetails.getDueDate()); - cal_1.add(Calendar.DAY_OF_MONTH, -1); - historyEntity.setPrepareDate(cal_1.getTime()); - } else { - //已逾期 - historyEntity.setPrepareDate(new DateTime()); - } - } catch (ParseException e) { - e.printStackTrace(); - } - historyEntity.setPaymentState("待转付"); - historyEntity.setPaymentStateKey("001"); - } - loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity); - } - if (v.getReceivablesName().equals("资方逾期利息")) { - if (null != planDetails.getPaymentInterest()) { - if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) { - BigDecimal paymentInterest = planDetails.getPaymentInterest(); - String subscriptionMoney = v.getSubscriptionMoney(); - BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney)); - planDetails.setPaymentInterest(subtract); - BigDecimal paymentMoney = planDetails.getPaymentMoney(); - BigDecimal subtract2 = paymentMoney.subtract(new BigDecimal(subscriptionMoney)); - planDetails.setPaymentMoney(subtract2); - loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); - String orderSid = planDetails.getSalesOrderSid(); - String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData(); - String bankSid = ""; - String scheduleSid = planDetails.getScheduleSid(); - LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData(); - if (isOther.equals("0")) { - if (StringUtils.isNotBlank(schedule.getBankSid())) { - bankSid = schedule.getBankSid(); - } - } else if (isOther.equals("1")) { - if (StringUtils.isNotBlank(schedule.getOtherBankSid())) { - bankSid = schedule.getOtherBankSid(); - } - } - ResultBean bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid); - if (bankResultBean.getData() != null) { - LoanFinBank loanFinBank = bankResultBean.getData(); - if (null != loanFinBank.getReAdvances()) { - if (loanFinBank.getReAdvances() == 1) { - FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); - jr.setCreateBySid(userSid); - SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData(); - jr.setCreateByName(userVo.getName()); - jr.setBusSid(planSid); - jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setPayCostTitleKey("007"); - jr.setPayCostTitleValue("资方退还垫款"); - jr.setOrgSidPath(planDetails.getOrgSidPath()); - jr.setUseOrgName(planDetails.getUseOrgName()); - jr.setUseOrgSid(planDetails.getUseOrgSid()); - jr.setStaffDeptName(planDetails.getDept()); - jr.setStaffName(planDetails.getStaffName()); - jr.setStaffDeptSid(planDetails.getDeptSid()); - jr.setStaffUserSid(planDetails.getSalesUserSid()); - finUncollectedReceivablesDetailedJRService.insert(jr); - } - } - } - } - } - } - } - //推送间还月还收款凭证 - CollectionVoucher.CollectionVoucherDetail d = getDueMoneyAndOverDueMoneyVoucher(v, collectionDate); - voucherDetails.add(d); - } - //认资金占用费消减平台资金占用费 - if (v.getReceivablesName().equals("资金占用费")) { - String planSid = ""; + String planSid = ""; + if (v.getReceivablesName().equals("月还")) { + planSid = v.getReceivablesSid(); + } else { FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid()); if (jr != null) { planSid = jr.getBusSid(); } - LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData(); - if (null != planDetails) { - LoanPlanDetailsVoForFundVoucher f = loanRepaymentPlanDetailsFeign.getLoanPlanDetailsVoForFundVoucher(planDetails.getBusVinSid()); - if (null != f) { - List g = getFundGenralVoucher(planDetails, f); - if (!g.isEmpty()) { - g.stream().forEach(gv -> { - generalVoucherDetails.add(gv); - }); - } - LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory(); - if (null != f.getDuePushMoney()) { - loanPushFundHistory.setFund(f.getDuePushMoney()); - } - loanPushFundHistory.setBusVinSid(planDetails.getBusVinSid()); - loanPushFundHistory.setUseOrgName(planDetails.getUseOrgName()); - loanPushFundHistory.setUseOrgSid(planDetails.getUseOrgSid()); - String lastTimes = loanPushFundHistoryFeign.getLastDateByBusVinSid(planDetails.getBusVinSid()).getData(); - if (StringUtils.isNotBlank(lastTimes)) { - try { - loanPushFundHistory.setLastAccrualDate(sdfTimes.parse(lastTimes)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - loanPushFundHistoryFeign.saveHistoryByEntity(loanPushFundHistory); -// fundHistoryList.add(loanPushFundHistory); - } - //推送资金占用费出纳确认后 - CollectionVoucher.CollectionVoucherDetail d = getFundVoucher(v, collectionDate, planDetails); - if (null != d) { - CollectionVoucher.CollectionVoucherDetail v1 = new CollectionVoucher.CollectionVoucherDetail(); - BeanUtil.copyProperties(d, v1); - v1.setSceneCode(SceneCodeEnum.FUND_VOUCHER1.getCode()); - voucherDetails.add(v1); - CollectionVoucher.CollectionVoucherDetail v2 = new CollectionVoucher.CollectionVoucherDetail(); - BeanUtil.copyProperties(d, v2); - v2.setSceneCode(SceneCodeEnum.FUND_VOUCHER2.getCode()); - collectionAfterVoucherDetails.add(v2); - } - } - } - //认名义价、合同违约金、其他费用收款 - if (v.getReceivablesName().equals("名义价") || - v.getReceivablesName().equals("合同违约金") || - v.getReceivablesName().equals("其他费用") || - v.getReceivablesName().equals("结清时资方逾期利息") - ) { - CollectionVoucher.CollectionVoucherDetail d = getBalanceMoneyVoucher(v, collectionDate); - voucherDetails.add(d); } + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData(); + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); + if("0".equals(busSalesOrderVehicle.getRiskState().toString())){ + //认资方退还垫款或者结清时资方逾期利息 + if (v.getReceivablesName().equals("资方退还垫款") || v.getReceivablesName().equals("贷款保证金扣罚")) { + CollectionVoucher.CollectionVoucherDetail d = getReturnBackMoneyVoucher(v, collectionDate); + voucherDetails.add(d); + } + //推送间还待转付列表 + if (v.getReceivablesName().equals("月还") || v.getReceivablesName().equals("资方逾期利息")) { + if (null != planDetails) { + if (v.getReceivablesName().equals("月还")) { + //推送间还认款记录 + LoanRepaymentHistory historyEntity = new LoanRepaymentHistory(); + historyEntity.setPlanDetailSid(planSid); + historyEntity.setScheduleSid(planDetails.getScheduleSid()); + historyEntity.setSkdBillNo(finalConfirmation.getBillNo()); + historyEntity.setUpdateTime(new DateTime()); + historyEntity.setUpdateState("1"); + historyEntity.setDataTime(new DateTime()); + historyEntity.setBuckle("审核通过"); + historyEntity.setBuckleKey("003"); + historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney())); + historyEntity.setReturnWay("间还"); + historyEntity.setReturnWayKey("02"); + if (null != planDetails.getPaymentMoney()) { + if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) { + BigDecimal paymentMoney = planDetails.getPaymentMoney(); + String subscriptionMoney = v.getSubscriptionMoney(); + BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney)); + planDetails.setPaymentMoney(subtract); + loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); + String orderSid = planDetails.getSalesOrderSid(); + String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData(); + String bankSid = ""; + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData(); + if (isOther.equals("0")) { + if (StringUtils.isNotBlank(schedule.getBankSid())) { + bankSid = schedule.getBankSid(); + } + } else if (isOther.equals("1")) { + if (StringUtils.isNotBlank(schedule.getOtherBankSid())) { + bankSid = schedule.getOtherBankSid(); + } + } + ResultBean bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid); + if (bankResultBean.getData() != null) { + LoanFinBank loanFinBank = bankResultBean.getData(); + if (null != loanFinBank.getReAdvances()) { + if (loanFinBank.getReAdvances() == 1) { + try { + Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); + historyEntity.setActualDate(collDate); + if (planDetails.getDueDate().compareTo(collDate) > 0) { + //未逾期 + Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 + cal_1.setTime(planDetails.getDueDate()); + cal_1.add(Calendar.DAY_OF_MONTH, -1); + historyEntity.setPrepareDate(cal_1.getTime()); + } else { + //已逾期 + historyEntity.setPrepareDate(new DateTime()); + } + } catch (ParseException e) { + e.printStackTrace(); + } + historyEntity.setPaymentState("待转付"); + historyEntity.setPaymentStateKey("001"); + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(userSid); + SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planSid); + jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setPayCostTitleKey("007"); + jr.setPayCostTitleValue("资方退还垫款"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } + } + } + } else if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 0) { + try { + Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); + historyEntity.setActualDate(collDate); + if (planDetails.getDueDate().compareTo(collDate) > 0) { + //未逾期 + Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 + cal_1.setTime(planDetails.getDueDate()); + cal_1.add(Calendar.DAY_OF_MONTH, -1); + historyEntity.setPrepareDate(cal_1.getTime()); + } else { + //已逾期 + historyEntity.setPrepareDate(new DateTime()); + } + } catch (ParseException e) { + e.printStackTrace(); + } + historyEntity.setPaymentState("待转付"); + historyEntity.setPaymentStateKey("001"); + } + } else { + try { + Date collDate = sdf.parse(finalConfirmation.getCollectionDate()); + historyEntity.setActualDate(collDate); + if (planDetails.getDueDate().compareTo(collDate) > 0) { + //未逾期 + Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 + cal_1.setTime(planDetails.getDueDate()); + cal_1.add(Calendar.DAY_OF_MONTH, -1); + historyEntity.setPrepareDate(cal_1.getTime()); + } else { + //已逾期 + historyEntity.setPrepareDate(new DateTime()); + } + } catch (ParseException e) { + e.printStackTrace(); + } + historyEntity.setPaymentState("待转付"); + historyEntity.setPaymentStateKey("001"); + } + loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity); + } + if (v.getReceivablesName().equals("资方逾期利息")) { + if (null != planDetails.getPaymentInterest()) { + if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) { + BigDecimal paymentInterest = planDetails.getPaymentInterest(); + String subscriptionMoney = v.getSubscriptionMoney(); + BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney)); + planDetails.setPaymentInterest(subtract); + BigDecimal paymentMoney = planDetails.getPaymentMoney(); + BigDecimal subtract2 = paymentMoney.subtract(new BigDecimal(subscriptionMoney)); + planDetails.setPaymentMoney(subtract2); + loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); + String orderSid = planDetails.getSalesOrderSid(); + String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData(); + String bankSid = ""; + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData(); + if (isOther.equals("0")) { + if (StringUtils.isNotBlank(schedule.getBankSid())) { + bankSid = schedule.getBankSid(); + } + } else if (isOther.equals("1")) { + if (StringUtils.isNotBlank(schedule.getOtherBankSid())) { + bankSid = schedule.getOtherBankSid(); + } + } + ResultBean bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid); + if (bankResultBean.getData() != null) { + LoanFinBank loanFinBank = bankResultBean.getData(); + if (null != loanFinBank.getReAdvances()) { + if (loanFinBank.getReAdvances() == 1) { + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(userSid); + SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planSid); + jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setPayCostTitleKey("007"); + jr.setPayCostTitleValue("资方退还垫款"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } + } + } + } + } + } + } + //推送间还月还收款凭证 + CollectionVoucher.CollectionVoucherDetail d = getDueMoneyAndOverDueMoneyVoucher(v, collectionDate); + voucherDetails.add(d); + } + //认资金占用费消减平台资金占用费 + if (v.getReceivablesName().equals("资金占用费")) { + if (null != planDetails) { + LoanPlanDetailsVoForFundVoucher f = loanRepaymentPlanDetailsFeign.getLoanPlanDetailsVoForFundVoucher(planDetails.getBusVinSid()); + if (null != f) { + List g = getFundGenralVoucher(planDetails, f); + if (!g.isEmpty()) { + g.stream().forEach(gv -> { + generalVoucherDetails.add(gv); + }); + } + LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory(); + if (null != f.getDuePushMoney()) { + loanPushFundHistory.setFund(f.getDuePushMoney()); + } + loanPushFundHistory.setBusVinSid(planDetails.getBusVinSid()); + loanPushFundHistory.setUseOrgName(planDetails.getUseOrgName()); + loanPushFundHistory.setUseOrgSid(planDetails.getUseOrgSid()); + String lastTimes = loanPushFundHistoryFeign.getLastDateByBusVinSid(planDetails.getBusVinSid()).getData(); + if (StringUtils.isNotBlank(lastTimes)) { + try { + loanPushFundHistory.setLastAccrualDate(sdfTimes.parse(lastTimes)); + } catch (ParseException e) { + e.printStackTrace(); + } + } + loanPushFundHistoryFeign.saveHistoryByEntity(loanPushFundHistory); +// fundHistoryList.add(loanPushFundHistory); + } + //推送资金占用费出纳确认后 + CollectionVoucher.CollectionVoucherDetail d = getFundVoucher(v, collectionDate, planDetails); + if (null != d) { + CollectionVoucher.CollectionVoucherDetail v1 = new CollectionVoucher.CollectionVoucherDetail(); + BeanUtil.copyProperties(d, v1); + v1.setSceneCode(SceneCodeEnum.FUND_VOUCHER1.getCode()); + voucherDetails.add(v1); + CollectionVoucher.CollectionVoucherDetail v2 = new CollectionVoucher.CollectionVoucherDetail(); + BeanUtil.copyProperties(d, v2); + v2.setSceneCode(SceneCodeEnum.FUND_VOUCHER2.getCode()); + collectionAfterVoucherDetails.add(v2); + } + } + } + //认名义价、合同违约金、其他费用收款 + if (v.getReceivablesName().equals("名义价") || + v.getReceivablesName().equals("合同违约金") || + v.getReceivablesName().equals("其他费用") || + v.getReceivablesName().equals("结清时资方逾期利息") + ) { + CollectionVoucher.CollectionVoucherDetail d = getBalanceMoneyVoucher(v, collectionDate); + voucherDetails.add(d); + } + } + }); //查询该申请已认款金额总数 subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);