|
|
@ -31,6 +31,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
@ -38,6 +39,8 @@ import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherp |
|
|
|
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService; |
|
|
@ -103,6 +106,9 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme |
|
|
|
private MessageFeign messageFeign; |
|
|
|
@Autowired |
|
|
|
private LoanWarrantInformationService loanWarrantInformationService; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 根据销售订单SID生成还款计划表回显 |
|
|
@ -275,6 +281,167 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme |
|
|
|
loanRepaymentSchedule.setLoanContractSid(dto.getSalesOrderSid()); |
|
|
|
loanRepaymentSchedule.setSalesOrderSid(orderSid); |
|
|
|
baseMapper.updateById(loanRepaymentSchedule); |
|
|
|
loanRepaymentPlanDetailsService.deletePlanDetails(loanRepaymentSchedule.getSid()); |
|
|
|
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(orderSid).getData(); |
|
|
|
//新增还款计划明细
|
|
|
|
LoanRepaymentSchedule scheduleDetails = fetchBySid(loanRepaymentSchedule.getSid()); |
|
|
|
if (null != scheduleDetails) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
String createBySid = scheduleDetails.getCreateBySid(); |
|
|
|
String staffSid = scheduleDetails.getStaffSid(); |
|
|
|
String bankName = scheduleDetails.getBankName(); |
|
|
|
String borrowerSid = scheduleDetails.getBorrowerSid(); |
|
|
|
String borrowerName = scheduleDetails.getBorrowerName(); |
|
|
|
String staffName = scheduleDetails.getStaffName(); |
|
|
|
String salesOrderSid = scheduleDetails.getSalesOrderSid(); |
|
|
|
String policyName = scheduleDetails.getPolicyName(); |
|
|
|
String loanContractSid = scheduleDetails.getLoanContractSid(); |
|
|
|
String loanContractNo = scheduleDetails.getLoanContractNo(); |
|
|
|
int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); |
|
|
|
String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); |
|
|
|
List<String> mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); |
|
|
|
List<String> otherDays = new ArrayList<>(); |
|
|
|
String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); |
|
|
|
String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); |
|
|
|
String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); |
|
|
|
String otherPeriod = ""; |
|
|
|
String otherDate = ""; |
|
|
|
String otherFirstPay = ""; |
|
|
|
String otherMidPay = ""; |
|
|
|
String otherLastPay = ""; |
|
|
|
String deptSid = ""; |
|
|
|
String dept = ""; |
|
|
|
String useOrgName = ""; |
|
|
|
String useOrgSid = ""; |
|
|
|
String orgSidPath = ""; |
|
|
|
String bankContractNo = ""; |
|
|
|
String customer = ""; |
|
|
|
String customerSid = ""; |
|
|
|
if (scheduleDetails.getIsOtherPolicy().equals("1")) { |
|
|
|
otherPeriod = scheduleDetails.getOtherPeriod(); |
|
|
|
otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); |
|
|
|
otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); |
|
|
|
otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); |
|
|
|
otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); |
|
|
|
otherDays = returnRepayDate(otherDate, otherPeriod); |
|
|
|
} |
|
|
|
if (null != busSalesOrder) { |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { |
|
|
|
customer = busSalesOrder.getCustomerName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { |
|
|
|
customerSid = busSalesOrder.getCustomerSid(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { |
|
|
|
deptSid = busSalesOrder.getOrgSid(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { |
|
|
|
dept = busSalesOrder.getOrgName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { |
|
|
|
orgSidPath = busSalesOrder.getOrgSidPath(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { |
|
|
|
useOrgName = busSalesOrder.getUseOrgName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { |
|
|
|
useOrgSid = busSalesOrder.getUseOrgSid(); |
|
|
|
} |
|
|
|
} |
|
|
|
BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); |
|
|
|
if (null != loancontractVo) { |
|
|
|
if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { |
|
|
|
bankContractNo = loancontractVo.getBankContractNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); |
|
|
|
if (!vehicles.isEmpty()) { |
|
|
|
for (BusSalesOrderVehicle vehicle : vehicles) { |
|
|
|
String linkNo = vehicle.getLinkNo(); |
|
|
|
String busVinSid = vehicle.getSid(); |
|
|
|
//主方案
|
|
|
|
for (int i = 0; i < mainPeriod; i++) { |
|
|
|
LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); |
|
|
|
mainDto.setSalesOrderSid(salesOrderSid); |
|
|
|
mainDto.setLoanContractNo(loanContractNo); |
|
|
|
mainDto.setLoanContractSid(loanContractSid); |
|
|
|
mainDto.setPolicyName(policyName); |
|
|
|
mainDto.setBankContractNo(bankContractNo); |
|
|
|
mainDto.setCreateBySid(createBySid); |
|
|
|
mainDto.setCustomer(customer); |
|
|
|
mainDto.setCustomerSid(customerSid); |
|
|
|
mainDto.setBorrowerSid(borrowerSid); |
|
|
|
mainDto.setBorrowerName(borrowerName); |
|
|
|
mainDto.setPeriod(String.valueOf(i + 1)); |
|
|
|
mainDto.setScheduleSid(scheduleDetails.getSid()); |
|
|
|
mainDto.setBankName(bankName); |
|
|
|
mainDto.setDept(dept); |
|
|
|
mainDto.setDeptSid(deptSid); |
|
|
|
mainDto.setUseOrgSid(useOrgSid); |
|
|
|
mainDto.setUseOrgName(useOrgName); |
|
|
|
mainDto.setOrgSidPath(orgSidPath); |
|
|
|
mainDto.setBusVinSid(busVinSid); |
|
|
|
mainDto.setVinNo(linkNo); |
|
|
|
mainDto.setSalesUserSid(staffSid); |
|
|
|
mainDto.setStaffName(staffName); |
|
|
|
mainDto.setPolicyOrOther("0"); |
|
|
|
if (i == 0) { |
|
|
|
mainDto.setDueMoney(mainFirstRepay); |
|
|
|
} else if (i == mainPeriod - 1) { |
|
|
|
mainDto.setDueMoney(mainLastRepay); |
|
|
|
} else { |
|
|
|
mainDto.setDueMoney(mainMidRepay); |
|
|
|
} |
|
|
|
if (!mainDays.isEmpty()) { |
|
|
|
mainDto.setDueDate(mainDays.get(i)); |
|
|
|
} |
|
|
|
loanRepaymentPlanDetailsService.savePlanDetails(mainDto); |
|
|
|
} |
|
|
|
//其他融
|
|
|
|
if (scheduleDetails.getIsOtherPolicy().equals("1")) { |
|
|
|
for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { |
|
|
|
LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); |
|
|
|
otherDto.setSalesOrderSid(salesOrderSid); |
|
|
|
otherDto.setLoanContractNo(loanContractNo); |
|
|
|
otherDto.setLoanContractSid(loanContractSid); |
|
|
|
otherDto.setPolicyName(policyName); |
|
|
|
otherDto.setBankContractNo(bankContractNo); |
|
|
|
otherDto.setCreateBySid(createBySid); |
|
|
|
otherDto.setCustomer(customer); |
|
|
|
otherDto.setCustomerSid(customerSid); |
|
|
|
otherDto.setBorrowerSid(borrowerSid); |
|
|
|
otherDto.setBorrowerName(borrowerName); |
|
|
|
otherDto.setPeriod(String.valueOf(i + 1)); |
|
|
|
otherDto.setScheduleSid(scheduleDetails.getSid()); |
|
|
|
otherDto.setBankName(bankName); |
|
|
|
otherDto.setDept(dept); |
|
|
|
otherDto.setDeptSid(deptSid); |
|
|
|
otherDto.setUseOrgSid(useOrgSid); |
|
|
|
otherDto.setUseOrgName(useOrgName); |
|
|
|
otherDto.setOrgSidPath(orgSidPath); |
|
|
|
otherDto.setBusVinSid(busVinSid); |
|
|
|
otherDto.setVinNo(linkNo); |
|
|
|
otherDto.setSalesUserSid(staffSid); |
|
|
|
otherDto.setStaffName(staffName); |
|
|
|
otherDto.setPolicyOrOther("1"); |
|
|
|
if (i == 0) { |
|
|
|
otherDto.setDueMoney(otherFirstPay); |
|
|
|
} else if (i == Integer.parseInt(otherPeriod) - 1) { |
|
|
|
otherDto.setDueMoney(otherLastPay); |
|
|
|
} else { |
|
|
|
otherDto.setDueMoney(otherMidPay); |
|
|
|
} |
|
|
|
if (!otherDays.isEmpty()) { |
|
|
|
otherDto.setDueDate(otherDays.get(i)); |
|
|
|
} |
|
|
|
loanRepaymentPlanDetailsService.savePlanDetails(otherDto); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
LoanRepaymentSchedule entity = new LoanRepaymentSchedule(); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
@ -324,6 +491,163 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme |
|
|
|
} |
|
|
|
} |
|
|
|
baseMapper.insert(entity); |
|
|
|
//新增还款计划明细
|
|
|
|
LoanRepaymentSchedule scheduleDetails = fetchBySid(entity.getSid()); |
|
|
|
if (null != scheduleDetails) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
String createBySid = scheduleDetails.getCreateBySid(); |
|
|
|
String staffSid = scheduleDetails.getStaffSid(); |
|
|
|
String bankName = scheduleDetails.getBankName(); |
|
|
|
String borrowerSid = scheduleDetails.getBorrowerSid(); |
|
|
|
String borrowerName = scheduleDetails.getBorrowerName(); |
|
|
|
String staffName = scheduleDetails.getStaffName(); |
|
|
|
String salesOrderSid = scheduleDetails.getSalesOrderSid(); |
|
|
|
String policyName = scheduleDetails.getPolicyName(); |
|
|
|
String loanContractSid = scheduleDetails.getLoanContractSid(); |
|
|
|
String loanContractNo = scheduleDetails.getLoanContractNo(); |
|
|
|
int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); |
|
|
|
String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); |
|
|
|
List<String> mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); |
|
|
|
List<String> otherDays = new ArrayList<>(); |
|
|
|
String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); |
|
|
|
String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); |
|
|
|
String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); |
|
|
|
String otherPeriod = ""; |
|
|
|
String otherDate = ""; |
|
|
|
String otherFirstPay = ""; |
|
|
|
String otherMidPay = ""; |
|
|
|
String otherLastPay = ""; |
|
|
|
String deptSid = ""; |
|
|
|
String dept = ""; |
|
|
|
String useOrgName = ""; |
|
|
|
String useOrgSid = ""; |
|
|
|
String orgSidPath = ""; |
|
|
|
String bankContractNo = ""; |
|
|
|
String customer = ""; |
|
|
|
String customerSid = ""; |
|
|
|
if (scheduleDetails.getIsOtherPolicy().equals("1")) { |
|
|
|
otherPeriod = scheduleDetails.getOtherPeriod(); |
|
|
|
otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); |
|
|
|
otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); |
|
|
|
otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); |
|
|
|
otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); |
|
|
|
otherDays = returnRepayDate(otherDate, otherPeriod); |
|
|
|
} |
|
|
|
if (null != busSalesOrder) { |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { |
|
|
|
customer = busSalesOrder.getCustomerName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { |
|
|
|
customerSid = busSalesOrder.getCustomerSid(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { |
|
|
|
deptSid = busSalesOrder.getOrgSid(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { |
|
|
|
dept = busSalesOrder.getOrgName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { |
|
|
|
orgSidPath = busSalesOrder.getOrgSidPath(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { |
|
|
|
useOrgName = busSalesOrder.getUseOrgName(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { |
|
|
|
useOrgSid = busSalesOrder.getUseOrgSid(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != loancontractVo) { |
|
|
|
if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { |
|
|
|
bankContractNo = loancontractVo.getBankContractNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); |
|
|
|
if (!vehicles.isEmpty()) { |
|
|
|
for (BusSalesOrderVehicle vehicle : vehicles) { |
|
|
|
String linkNo = vehicle.getLinkNo(); |
|
|
|
String busVinSid = vehicle.getSid(); |
|
|
|
//主方案
|
|
|
|
for (int i = 0; i < mainPeriod; i++) { |
|
|
|
LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); |
|
|
|
mainDto.setSalesOrderSid(salesOrderSid); |
|
|
|
mainDto.setLoanContractNo(loanContractNo); |
|
|
|
mainDto.setLoanContractSid(loanContractSid); |
|
|
|
mainDto.setPolicyName(policyName); |
|
|
|
mainDto.setBankContractNo(bankContractNo); |
|
|
|
mainDto.setCreateBySid(createBySid); |
|
|
|
mainDto.setCustomer(customer); |
|
|
|
mainDto.setCustomerSid(customerSid); |
|
|
|
mainDto.setBorrowerSid(borrowerSid); |
|
|
|
mainDto.setBorrowerName(borrowerName); |
|
|
|
mainDto.setPeriod(String.valueOf(i + 1)); |
|
|
|
mainDto.setScheduleSid(entity.getSid()); |
|
|
|
mainDto.setBankName(bankName); |
|
|
|
mainDto.setDept(dept); |
|
|
|
mainDto.setDeptSid(deptSid); |
|
|
|
mainDto.setUseOrgSid(useOrgSid); |
|
|
|
mainDto.setUseOrgName(useOrgName); |
|
|
|
mainDto.setOrgSidPath(orgSidPath); |
|
|
|
mainDto.setBusVinSid(busVinSid); |
|
|
|
mainDto.setVinNo(linkNo); |
|
|
|
mainDto.setSalesUserSid(staffSid); |
|
|
|
mainDto.setStaffName(staffName); |
|
|
|
mainDto.setPolicyOrOther("0"); |
|
|
|
if (i == 0) { |
|
|
|
mainDto.setDueMoney(mainFirstRepay); |
|
|
|
} else if (i == mainPeriod - 1) { |
|
|
|
mainDto.setDueMoney(mainLastRepay); |
|
|
|
} else { |
|
|
|
mainDto.setDueMoney(mainMidRepay); |
|
|
|
} |
|
|
|
if (!mainDays.isEmpty()) { |
|
|
|
mainDto.setDueDate(mainDays.get(i)); |
|
|
|
} |
|
|
|
loanRepaymentPlanDetailsService.savePlanDetails(mainDto); |
|
|
|
} |
|
|
|
//其他融
|
|
|
|
if (scheduleDetails.getIsOtherPolicy().equals("1")) { |
|
|
|
for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { |
|
|
|
LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); |
|
|
|
otherDto.setSalesOrderSid(salesOrderSid); |
|
|
|
otherDto.setLoanContractNo(loanContractNo); |
|
|
|
otherDto.setLoanContractSid(loanContractSid); |
|
|
|
otherDto.setPolicyName(policyName); |
|
|
|
otherDto.setBankContractNo(bankContractNo); |
|
|
|
otherDto.setCreateBySid(createBySid); |
|
|
|
otherDto.setCustomer(customer); |
|
|
|
otherDto.setCustomerSid(customerSid); |
|
|
|
otherDto.setBorrowerSid(borrowerSid); |
|
|
|
otherDto.setBorrowerName(borrowerName); |
|
|
|
otherDto.setPeriod(String.valueOf(i + 1)); |
|
|
|
otherDto.setScheduleSid(entity.getSid()); |
|
|
|
otherDto.setBankName(bankName); |
|
|
|
otherDto.setDept(dept); |
|
|
|
otherDto.setDeptSid(deptSid); |
|
|
|
otherDto.setUseOrgSid(useOrgSid); |
|
|
|
otherDto.setUseOrgName(useOrgName); |
|
|
|
otherDto.setOrgSidPath(orgSidPath); |
|
|
|
otherDto.setBusVinSid(busVinSid); |
|
|
|
otherDto.setVinNo(linkNo); |
|
|
|
otherDto.setSalesUserSid(staffSid); |
|
|
|
otherDto.setStaffName(staffName); |
|
|
|
otherDto.setPolicyOrOther("1"); |
|
|
|
if (i == 0) { |
|
|
|
otherDto.setDueMoney(otherFirstPay); |
|
|
|
} else if (i == Integer.parseInt(otherPeriod) - 1) { |
|
|
|
otherDto.setDueMoney(otherLastPay); |
|
|
|
} else { |
|
|
|
otherDto.setDueMoney(otherMidPay); |
|
|
|
} |
|
|
|
if (!otherDays.isEmpty()) { |
|
|
|
otherDto.setDueDate(otherDays.get(i)); |
|
|
|
} |
|
|
|
loanRepaymentPlanDetailsService.savePlanDetails(otherDto); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 使用多线程推送站内信发送短信
|
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|