|
|
@ -4418,260 +4418,258 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
//更新审核时间
|
|
|
|
finSelectedReceivablesDetailed.setAuditDate(DateUtil.today()); |
|
|
|
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed); |
|
|
|
//认资方退还垫款或者结清时资方逾期利息
|
|
|
|
if (v.getReceivablesName().equals("资方退还垫款") || v.getReceivablesName().equals("贷款保证金扣罚")) { |
|
|
|
CollectionVoucher.CollectionVoucherDetail d = getReturnBackMoneyVoucher(v, collectionDate); |
|
|
|
voucherDetails.add(d); |
|
|
|
} |
|
|
|
//推送间还待转付列表
|
|
|
|
if (v.getReceivablesName().equals("月还") || v.getReceivablesName().equals("资方逾期利息")) { |
|
|
|
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) { |
|
|
|
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<LoanFinBank> 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<LoanFinBank> 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<GeneralVoucher.GeneralVoucherDetail> 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<LoanFinBank> 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<LoanFinBank> 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<GeneralVoucher.GeneralVoucherDetail> 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); |
|
|
@ -4688,7 +4686,20 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
confirmation.setConfirmDate(DateUtil.today()); |
|
|
|
confirmation.setConfirmNameSid(userSid); |
|
|
|
baseMapper.updateById(confirmation); |
|
|
|
pushToRiskToFin(confirmation, finSelectedReceivablesDetailedVos, collectionDate, voucher); |
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("demo-pool-%d").build(); |
|
|
|
ExecutorService pool = new java.util.concurrent.ThreadPoolExecutor(2, 100, |
|
|
|
0L, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new java.util.concurrent.ThreadPoolExecutor.AbortPolicy()); |
|
|
|
FinCollectionConfirmation finalConfirmation1 = confirmation; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
pushToRiskToFin(finalConfirmation1, finSelectedReceivablesDetailedVos, collectionDate, voucher); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
//推送凭证业务
|
|
|
|
if (!generalVoucherDetails.isEmpty()) { |
|
|
|
generalVoucher.setVoucherDetails(generalVoucherDetails); |
|
|
@ -4729,8 +4740,17 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
String customerNumber = ""; |
|
|
|
for (int i = 0; i < finSelectedReceivablesDetailedVoList.size(); i++) { |
|
|
|
FinSelectedReceivablesDetailedVo v = finSelectedReceivablesDetailedVoList.get(i); |
|
|
|
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(v.getReceivablesSid()); |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(finUncollectedReceivablesDetailed.getBusVinSid()).getData(); |
|
|
|
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(); |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); |
|
|
|
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); |
|
|
|
if (salesOrder != null && busSalesOrderVehicle != null) { |
|
|
|
//判断财务系统是否有客户
|
|
|
|