|
|
@ -65,8 +65,10 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepurchasecost.LoanRepurchaseCost; |
|
|
@ -81,6 +83,7 @@ import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesN |
|
|
|
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepurchaseapply.LoanRepurchaseApplyService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepurchasecost.LoanRepurchaseCostService; |
|
|
@ -173,6 +176,8 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
private FinSelectedReceivablesDetailedFeign finSelectedReceivablesDetailedFeign; |
|
|
|
@Autowired |
|
|
|
private LoanBePadsincereVehService loanBePadsincereVehService; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentHistoryService loanRepaymentHistoryService; |
|
|
|
|
|
|
|
public PagerVo<LoanSecondarySalesNotApplyVo> listPageVo(PagerQuery<LoanSecondarySalesNotApplyQuery> pq) { |
|
|
|
LoanSecondarySalesNotApplyQuery query = pq.getParams(); |
|
|
@ -600,8 +605,8 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
//TOdO:
|
|
|
|
List<String> busVinSidList = loanSecondarySalesNotVehService.selectByMainSid(businessSid); |
|
|
|
busVinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if(!busVinSidList.isEmpty()){ |
|
|
|
pushRiskToFin2(finalLoanSecondarySalesNotApply,busVinSidList); |
|
|
|
if (!busVinSidList.isEmpty()) { |
|
|
|
pushRiskToFin2(finalLoanSecondarySalesNotApply, busVinSidList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
@ -638,16 +643,16 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
//查询车辆还款计划明细
|
|
|
|
List<LoanRepaymentPlanDetails> loanRepaymentPlanDetails = loanRepaymentPlanDetailsService.selectByBusVinSid(loanSecondarySalesNotVehDetailsVo.getBusVinSid()); |
|
|
|
//查询车辆是否有垫款金额
|
|
|
|
BigDecimal dkje = loanBePadsincereVehService.selByBusVinSid(loanSecondarySalesNotVehDetailsVo.getBusVinSid()); |
|
|
|
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehService.selByBusVinSid(loanSecondarySalesNotVehDetailsVo.getBusVinSid()); |
|
|
|
//获取明细sid集合
|
|
|
|
List<String> jhmxSids = loanRepaymentPlanDetails.stream().map(c -> c.getSid()). |
|
|
|
collect(Collectors.toList()); |
|
|
|
//查询金融应收所有应收款
|
|
|
|
List<FinUncollectedReceivablesDetailedJR> data = finUncollectedReceivablesDetailedJRFeign.selByBusSid(jhmxSids).getData(); |
|
|
|
if (!data.isEmpty()){ |
|
|
|
if (!data.isEmpty()) { |
|
|
|
for (FinUncollectedReceivablesDetailedJR datum : data) { |
|
|
|
List<FinSelectedReceivablesDetailed> finSelectedReceivablesDetaileds = finSelectedReceivablesDetailedFeign.fetchByReceivablesSid(datum.getSid()).getData(); |
|
|
|
if (finSelectedReceivablesDetaileds.isEmpty()){ |
|
|
|
if (finSelectedReceivablesDetaileds.isEmpty()) { |
|
|
|
List<FinSelectedReceivablesDetailed> selectList = new ArrayList<>(); |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
@ -668,9 +673,9 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
fin.setOrgSidPath(loanSecondarySalesNotApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
finSelectedReceivablesDetailedFeign.saveAll(selectList); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
BigDecimal ys = finSelectedReceivablesDetaileds.stream().map(FinSelectedReceivablesDetailed::getSubscriptionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
if (ys.compareTo(datum.getReveivableMoney()) == -1){ |
|
|
|
if (ys.compareTo(datum.getReveivableMoney()) == -1) { |
|
|
|
List<FinSelectedReceivablesDetailed> selectList = new ArrayList<>(); |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
@ -695,6 +700,111 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//月还
|
|
|
|
List<LoanRepaymentHistory> loanRepaymentHistories = loanRepaymentHistoryService.selHistoryByPlanSids(jhmxSids); |
|
|
|
if (loanRepaymentHistories.isEmpty()) { |
|
|
|
for (LoanRepaymentPlanDetails plan : loanRepaymentPlanDetails) { |
|
|
|
List<LoanRepaymentHistory> histories = new ArrayList<>(); |
|
|
|
LoanRepaymentHistory history = new LoanRepaymentHistory(); |
|
|
|
history.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
|
history.setDataTime(new Date()); |
|
|
|
history.setUpdateState("1"); |
|
|
|
history.setUpdateTime(new Date()); |
|
|
|
history.setActualDate(plan.getDueDate()); |
|
|
|
history.setActualMoney(plan.getDueMoney()); |
|
|
|
history.setBuckleKey("003"); |
|
|
|
history.setBuckle("审核通过"); |
|
|
|
history.setReturnWayKey(""); |
|
|
|
history.setReturnWay(""); |
|
|
|
history.setPayState(0); |
|
|
|
history.setIsEnable(3); |
|
|
|
history.setPlanDetailSid(plan.getSid()); |
|
|
|
history.setScheduleSid(""); |
|
|
|
history.setRemarks("认损"); |
|
|
|
histories.add(history); |
|
|
|
loanRepaymentHistoryService.saveList(histories); |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (LoanRepaymentPlanDetails plan : loanRepaymentPlanDetails) { |
|
|
|
List<LoanRepaymentHistory> loanRepaymentHistories1 = loanRepaymentHistoryService.selHistoryByPlanSid(plan.getSid()); |
|
|
|
BigDecimal sh = loanRepaymentHistories1.stream().map(LoanRepaymentHistory::getActualMoney).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
if (!loanBePadsincereVehDetailsVos.isEmpty()) { |
|
|
|
List<String> periods = loanBePadsincereVehDetailsVos.stream().map(v -> v.getPeriod()).collect(Collectors.toList()); |
|
|
|
if (periods.contains(plan.getPeriod())) { |
|
|
|
for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) { |
|
|
|
if (plan.getPeriod().equals(loanBePadsincereVehDetailsVo.getPeriod())) { |
|
|
|
sh = sh.subtract(new BigDecimal(loanBePadsincereVehDetailsVo.getPadMoney())); |
|
|
|
if (sh.compareTo(plan.getDueMoney()) == -1) { |
|
|
|
List<LoanRepaymentHistory> histories = new ArrayList<>(); |
|
|
|
LoanRepaymentHistory history = new LoanRepaymentHistory(); |
|
|
|
history.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
|
history.setDataTime(new Date()); |
|
|
|
history.setUpdateState("1"); |
|
|
|
history.setUpdateTime(new Date()); |
|
|
|
history.setActualDate(plan.getDueDate()); |
|
|
|
history.setActualMoney(plan.getDueMoney().subtract(sh)); |
|
|
|
history.setBuckleKey("003"); |
|
|
|
history.setBuckle("审核通过"); |
|
|
|
history.setReturnWayKey(""); |
|
|
|
history.setReturnWay(""); |
|
|
|
history.setPayState(0); |
|
|
|
history.setIsEnable(3); |
|
|
|
history.setPlanDetailSid(plan.getSid()); |
|
|
|
history.setScheduleSid(""); |
|
|
|
history.setRemarks("认损"); |
|
|
|
histories.add(history); |
|
|
|
loanRepaymentHistoryService.saveList(histories); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (sh.compareTo(plan.getDueMoney()) == -1) { |
|
|
|
List<LoanRepaymentHistory> histories = new ArrayList<>(); |
|
|
|
LoanRepaymentHistory history = new LoanRepaymentHistory(); |
|
|
|
history.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
|
history.setDataTime(new Date()); |
|
|
|
history.setUpdateState("1"); |
|
|
|
history.setUpdateTime(new Date()); |
|
|
|
history.setActualDate(plan.getDueDate()); |
|
|
|
history.setActualMoney(plan.getDueMoney().subtract(sh)); |
|
|
|
history.setBuckleKey("003"); |
|
|
|
history.setBuckle("审核通过"); |
|
|
|
history.setReturnWayKey(""); |
|
|
|
history.setReturnWay(""); |
|
|
|
history.setPayState(0); |
|
|
|
history.setIsEnable(3); |
|
|
|
history.setPlanDetailSid(plan.getSid()); |
|
|
|
history.setScheduleSid(""); |
|
|
|
history.setRemarks("认损"); |
|
|
|
histories.add(history); |
|
|
|
loanRepaymentHistoryService.saveList(histories); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
if (sh.compareTo(plan.getDueMoney()) == -1) { |
|
|
|
List<LoanRepaymentHistory> histories = new ArrayList<>(); |
|
|
|
LoanRepaymentHistory history = new LoanRepaymentHistory(); |
|
|
|
history.setCreateBySid(loanSecondarySalesNotApply.getCreateBySid()); |
|
|
|
history.setDataTime(new Date()); |
|
|
|
history.setUpdateState("1"); |
|
|
|
history.setUpdateTime(new Date()); |
|
|
|
history.setActualDate(plan.getDueDate()); |
|
|
|
history.setActualMoney(plan.getDueMoney().subtract(sh)); |
|
|
|
history.setBuckleKey("003"); |
|
|
|
history.setBuckle("审核通过"); |
|
|
|
history.setReturnWayKey(""); |
|
|
|
history.setReturnWay(""); |
|
|
|
history.setPayState(0); |
|
|
|
history.setIsEnable(3); |
|
|
|
history.setPlanDetailSid(plan.getSid()); |
|
|
|
history.setScheduleSid(""); |
|
|
|
history.setRemarks("认损"); |
|
|
|
histories.add(history); |
|
|
|
loanRepaymentHistoryService.saveList(histories); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -708,7 +818,7 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
} |
|
|
|
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>(); |
|
|
|
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanSecondarySalesNotApply.getCreateDeptSid()).getData(); |
|
|
|
for (int i = 0; i < busVinSidList.size(); i++){ |
|
|
|
for (int i = 0; i < busVinSidList.size(); i++) { |
|
|
|
String busVinSid = busVinSidList.get(i); |
|
|
|
//ToDo:
|
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); |
|
|
@ -766,25 +876,25 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
BigDecimal zjzyfMoney = BigDecimal.ZERO; |
|
|
|
String lq = loanRepaymentPlanDetailsService.getYqLq(busVinSid); |
|
|
|
lqMoney = lqMoney.add(new BigDecimal(StringUtils.isBlank(lq) ? "0" : lq)); |
|
|
|
if("1".equals(busSalesOrderVehicle.getRepoState().toString())){//已回购
|
|
|
|
if ("1".equals(busSalesOrderVehicle.getRepoState().toString())) {//已回购
|
|
|
|
//查询回购的资方费用
|
|
|
|
LoanRepurchaseApply loanRepurchaseApply = loanRepurchaseApplyService.selectByBusVinSid(busSalesOrderVehicle.getSid()); |
|
|
|
if(loanRepurchaseApply != null){ |
|
|
|
if (loanRepurchaseApply != null) { |
|
|
|
LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(loanRepurchaseApply.getSid()); |
|
|
|
if(loanRepurchaseCost != null){ |
|
|
|
if (loanRepurchaseCost != null) { |
|
|
|
//合同违约金
|
|
|
|
BigDecimal bankContractLiquidated = loanRepurchaseCost.getBankContractLiquidated(); |
|
|
|
if(bankContractLiquidated != null){ |
|
|
|
if (bankContractLiquidated != null) { |
|
|
|
lqMoney = lqMoney.add(bankContractLiquidated); |
|
|
|
} |
|
|
|
//资方名义价
|
|
|
|
BigDecimal bankNominalPrice = loanRepurchaseCost.getBankNominalPrice(); |
|
|
|
if(bankNominalPrice != null){ |
|
|
|
if (bankNominalPrice != null) { |
|
|
|
lqMoney = lqMoney.add(bankNominalPrice); |
|
|
|
} |
|
|
|
//资方其他费用
|
|
|
|
BigDecimal bankOtherReceivable = loanRepurchaseCost.getBankOtherReceivable(); |
|
|
|
if(bankOtherReceivable != null){ |
|
|
|
if (bankOtherReceivable != null) { |
|
|
|
lqMoney = lqMoney.add(bankOtherReceivable); |
|
|
|
} |
|
|
|
} |
|
|
@ -798,7 +908,7 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
all = lqMoney.add(wdqMoney).add(bjMoney); |
|
|
|
//已认款
|
|
|
|
String subAll = baseMapper.selectByBusVinSid(busVinSid); |
|
|
|
if(loanSecondarySalesCost.getBankSettleCost().compareTo(BigDecimal.ZERO)>0){ |
|
|
|
if (loanSecondarySalesCost.getBankSettleCost().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
all = all.add(loanSecondarySalesCost.getBankSettleCost()).subtract(new BigDecimal(subAll)); |
|
|
|
} |
|
|
|
|
|
|
@ -807,11 +917,11 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
BigDecimal loanDeposit = loanSecondarySalesCost.getLoanDeposit();//贷款保证金
|
|
|
|
cssMoney = all.subtract(loanDeposit).subtract(bxbzjMoney);//车损失
|
|
|
|
String zjzyf = alrepaidAndArrVo.getWheFundOccMoney(); |
|
|
|
zjzyfMoney = zjzyfMoney.add(new BigDecimal(StringUtils.isBlank(zjzyf)?"0":zjzyf)); |
|
|
|
zjzyfMoney = zjzyfMoney.add(new BigDecimal(StringUtils.isBlank(zjzyf) ? "0" : zjzyf)); |
|
|
|
|
|
|
|
if(cssMoney.compareTo(BigDecimal.ZERO)>0){//贷方
|
|
|
|
if (cssMoney.compareTo(BigDecimal.ZERO) > 0) {//贷方
|
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoDf.setSummary(customerNumber+"扣回车辆再次销售-不追偿处理"); |
|
|
|
voucherResultDetailDtoDf.setSummary(customerNumber + "扣回车辆再次销售-不追偿处理"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("1201.03.04.01"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); |
|
|
@ -820,7 +930,7 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
voucherResultDetailDtoDf.setCredit(cssMoney.toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoDf); |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoJf.setSummary(customerNumber+"扣回车辆再次销售-不追偿处理"); |
|
|
|
voucherResultDetailDtoJf.setSummary(customerNumber + "扣回车辆再次销售-不追偿处理"); |
|
|
|
voucherResultDetailDtoJf.setSubjectNo("1911.05"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); |
|
|
@ -829,9 +939,9 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
voucherResultDetailDtoJf.setDebit(cssMoney.toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoJf); |
|
|
|
} |
|
|
|
if(zjzyfMoney.compareTo(BigDecimal.ZERO)>0){ |
|
|
|
if (zjzyfMoney.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoDf.setSummary(customerNumber+"扣回车辆再次销售-不追偿减免资金占用费"); |
|
|
|
voucherResultDetailDtoDf.setSummary(customerNumber + "扣回车辆再次销售-不追偿减免资金占用费"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("2191.05.00"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); |
|
|
@ -840,7 +950,7 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
voucherResultDetailDtoDf.setCredit(zjzyfMoney.negate().toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoDf); |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoJf.setSummary(customerNumber+"扣回车辆再次销售-不追偿减免资金占用费"); |
|
|
|
voucherResultDetailDtoJf.setSummary(customerNumber + "扣回车辆再次销售-不追偿减免资金占用费"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("1201.02.02"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); |
|
|
@ -852,7 +962,7 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(!voucherResultDetailDtos.isEmpty()){ |
|
|
|
if (!voucherResultDetailDtos.isEmpty()) { |
|
|
|
voucher.setResultDetails(voucherResultDetailDtos); |
|
|
|
finKingDeeFeign.saveVoucher(voucher); |
|
|
|
} |
|
|
|