Browse Source

生成还款计划凭证接口

master
fanzongzhe 1 year ago
parent
commit
da7ed5e017
  1. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  2. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  3. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanVoucherPdf.java
  4. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  5. 763
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  6. 3958
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment1.ftl
  7. 6512
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment2.ftl
  8. 9047
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment3.ftl

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java

@ -38,6 +38,12 @@ public interface LoanRepaymentScheduleFeign {
@ResponseBody
public ResultBean<String> loanCreateSchedulePdf(@RequestBody LoanCreateSchedulePdfVo dto);
@ApiOperation("生成还款计划凭证pdf")
@PostMapping("/createRepaymentVoucher")
@ResponseBody
public ResultBean<String> createRepaymentVoucher(@RequestBody String[] sids);
@ApiOperation("查看多台还款计划表")
@GetMapping("/viewVinsSchedule")
@ResponseBody
@ -78,7 +84,7 @@ public interface LoanRepaymentScheduleFeign {
@ApiOperation("查看单台还款计划表")
@GetMapping("/getRepaymentPlanListByVinNo")
@ResponseBody
public ResultBean<List<AppRepaymentPlanListDetailsVo>> getRepaymentPlanListByVinNo(@RequestParam("vinNo") String vinNo,@RequestParam("sid") String sid);
public ResultBean<List<AppRepaymentPlanListDetailsVo>> getRepaymentPlanListByVinNo(@RequestParam("vinNo") String vinNo, @RequestParam("sid") String sid);
}

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java

@ -26,6 +26,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null;
}
@Override
public ResultBean<String> createRepaymentVoucher(String[] sids) {
return null;
}
@Override
public ResultBean<LoanCreateScheduleVinsVo> viewVinsSchedule(String salesOrderSid) {
return null;

29
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanVoucherPdf.java

@ -0,0 +1,29 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/4/11 14:30
*/
@Data
public class LoanVoucherPdf {
private String createTime;
private String loanContractNo;
private String salesDept;
private String bankName;
private String customer;
private String borrowerName;
private String vinNo;
private String period;
private String amount;
private String dueDate;
private String fMoney;
private String mMoney;
private String lMoney;
private String template; //模板表格号
private String page;
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java

@ -37,6 +37,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return loanRepaymentScheduleService.loanCreateSchedulePdf(dto);
}
@Override
public ResultBean<String> createRepaymentVoucher(String[] sids) {
return loanRepaymentScheduleService.createRepaymentVoucher(sids);
}
@Override
public ResultBean<LoanCreateScheduleVinsVo> viewVinsSchedule(String salesOrderSid) {
return loanRepaymentScheduleService.viewVinsSchedule(salesOrderSid);

763
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -1246,6 +1246,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
return rb.success().setData(returnPath);
}
public void pushScheduleVoucher(LoanRepaymentSchedule schedule) {
String salesOrderSid = schedule.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
@ -1528,6 +1529,766 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
}
public List<LoanVoucherPdf> returnVoucherPdf(LoanRepaymentSchedule schedule) {
List<LoanVoucherPdf> pdfs = new ArrayList<>();
String salesOrderSid = schedule.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
String loanContractSid = schedule.getLoanContractSid();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndXdConSid(salesOrderSid, loanContractSid).getData();
String bankName = "";
String otherBankName = "";
String isOtherPolicy = schedule.getIsOtherPolicy();
String sameBank = schedule.getSameBank();
BigDecimal amountMain = new BigDecimal("0.00");
BigDecimal amountOther = new BigDecimal("0.00");
if (isOtherPolicy.equals("0")) {
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
} else if (isOtherPolicy.equals("1")) {
if (isOtherPolicy.equals("1")) {
if (sameBank.equals("0")) {
LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(salesOrderSid);
//查看是否有其他融
LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (null != otherpolicy) {
if (StringUtils.isNotBlank(otherpolicy.getOtherPolicyPeriod())) {
String otherPolicySid = otherpolicy.getOtherPolicySid();
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.fetchBySid(otherPolicySid);
if (loanFinOtherPolicy != null) {
if (StringUtils.isNotBlank(loanFinOtherPolicy.getBankSid())) {
String otherBankSid = loanFinOtherPolicy.getBankSid();
LoanFinBank loanFinBank = loanFinBankService.fetchBySid(otherBankSid);
if (null != loanFinBank) {
otherBankName = loanFinBank.getBankShortName();
}
}
}
}
}
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
int otherPeriod = Integer.parseInt(schedule.getOtherPeriod());
int midOtherPeriod = otherPeriod - 2;
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay();
BigDecimal otherMidRepay = schedule.getOtherMidRepay();
BigDecimal otherLastRepay = schedule.getOtherLastRepay();
amountOther = otherMidRepay.multiply(new BigDecimal(midOtherPeriod)).add(otherFirstRepay).add(otherLastRepay);
}
if (sameBank.equals("1")) {
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
int otherPeriod = Integer.parseInt(schedule.getOtherPeriod());
int midOtherPeriod = otherPeriod - 2;
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay();
BigDecimal otherMidRepay = schedule.getOtherMidRepay();
BigDecimal otherLastRepay = schedule.getOtherLastRepay();
amountOther = otherMidRepay.multiply(new BigDecimal(midOtherPeriod)).add(otherFirstRepay).add(otherLastRepay);
amountMain = amountMain.add(amountOther);
}
}
}
LoanFinBank loanFinBank = loanFinBankService.selBankByOrderSid(salesOrderSid);
if (null != loanFinBank) {
bankName = loanFinBank.getBankShortName();
}
if (null != salesOrder) {
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle busSalesOrderVehicle : vehicles) {
if (isOtherPolicy.equals("0")) {
LoanVoucherPdf pdf = new LoanVoucherPdf();
if (null != schedule.getCreateTime()) {
pdf.setCreateTime(DateUtil.formatDate(schedule.getCreateTime()));
}
if (StringUtils.isNotBlank(schedule.getLoanContractNo())) {
pdf.setLoanContractNo(schedule.getLoanContractNo());
}
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
pdf.setSalesDept(salesOrder.getOrgName());
}
pdf.setBankName(bankName);
if (StringUtils.isNotBlank(salesOrder.getCustomerName())) {
pdf.setCustomer(salesOrder.getCustomerName());
}
if (StringUtils.isNotBlank(schedule.getBorrowerName())) {
pdf.setBorrowerName(schedule.getBorrowerName());
}
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
pdf.setVinNo(busSalesOrderVehicle.getLinkNo());
}
if (StringUtils.isNotBlank(schedule.getMainPeriod())) {
pdf.setPeriod(schedule.getMainPeriod());
}
if (null != schedule.getMainRepayDate()) {
pdf.setDueDate(DateUtil.formatDate(schedule.getMainRepayDate()));
}
if (null != schedule.getMainFirstRepay()) {
pdf.setFMoney(schedule.getMainFirstRepay().toString());
}
if (null != schedule.getMainMidRepay()) {
pdf.setMMoney(schedule.getMainMidRepay().toString());
}
if (null != schedule.getMainLastRepay()) {
pdf.setLMoney(schedule.getMainLastRepay().toString());
}
pdf.setAmount(amountMain.toString());
pdfs.add(pdf);
}
if (isOtherPolicy.equals("1")) {
if (sameBank.equals("0")) {
for (int i = 0; i <= 1; i++) {
LoanVoucherPdf pdf = new LoanVoucherPdf();
if (null != schedule.getCreateTime()) {
pdf.setCreateTime(DateUtil.formatDate(schedule.getCreateTime()));
}
if (StringUtils.isNotBlank(schedule.getLoanContractNo())) {
pdf.setLoanContractNo(schedule.getLoanContractNo());
}
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
pdf.setSalesDept(salesOrder.getOrgName());
}
if (StringUtils.isNotBlank(salesOrder.getCustomerName())) {
pdf.setCustomer(salesOrder.getCustomerName());
}
if (StringUtils.isNotBlank(schedule.getBorrowerName())) {
pdf.setBorrowerName(schedule.getBorrowerName());
}
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
pdf.setVinNo(busSalesOrderVehicle.getLinkNo());
}
if (i == 0) {
if (StringUtils.isNotBlank(bankName)) {
pdf.setBankName(bankName);
}
pdf.setAmount(amountMain.toString());
if (StringUtils.isNotBlank(schedule.getMainPeriod())) {
pdf.setPeriod(schedule.getMainPeriod());
}
if (null != schedule.getMainRepayDate()) {
pdf.setDueDate(DateUtil.formatDate(schedule.getMainRepayDate()));
}
if (null != schedule.getMainFirstRepay()) {
pdf.setFMoney(schedule.getMainFirstRepay().toString());
}
if (null != schedule.getMainMidRepay()) {
pdf.setMMoney(schedule.getMainMidRepay().toString());
}
if (null != schedule.getMainLastRepay()) {
pdf.setLMoney(schedule.getMainLastRepay().toString());
}
} else if (i == 1) {
if (StringUtils.isNotBlank(otherBankName)) {
pdf.setBankName(otherBankName);
}
pdf.setAmount(amountOther.toString());
if (StringUtils.isNotBlank(schedule.getMainPeriod())) {
pdf.setPeriod(schedule.getMainPeriod());
}
if (null != schedule.getOtherRepayDate()) {
pdf.setDueDate(DateUtil.formatDate(schedule.getOtherRepayDate()));
}
if (null != schedule.getOtherFirstRepay()) {
pdf.setFMoney(schedule.getOtherFirstRepay().toString());
}
if (null != schedule.getOtherMidRepay()) {
pdf.setMMoney(schedule.getOtherMidRepay().toString());
}
if (null != schedule.getOtherLastRepay()) {
pdf.setLMoney(schedule.getOtherLastRepay().toString());
}
}
pdfs.add(pdf);
}
}
if (sameBank.equals("1")) {
LoanVoucherPdf pdf = new LoanVoucherPdf();
if (null != schedule.getCreateTime()) {
pdf.setCreateTime(DateUtil.formatDate(schedule.getCreateTime()));
}
if (StringUtils.isNotBlank(schedule.getLoanContractNo())) {
pdf.setLoanContractNo(schedule.getLoanContractNo());
}
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
pdf.setSalesDept(salesOrder.getOrgName());
}
pdf.setBankName(bankName);
if (StringUtils.isNotBlank(salesOrder.getCustomerName())) {
pdf.setCustomer(salesOrder.getCustomerName());
}
if (StringUtils.isNotBlank(schedule.getBorrowerName())) {
pdf.setBorrowerName(schedule.getBorrowerName());
}
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
pdf.setVinNo(busSalesOrderVehicle.getLinkNo());
}
if (StringUtils.isNotBlank(schedule.getMainPeriod()) && StringUtils.isNotBlank(schedule.getOtherPeriod())) {
pdf.setPeriod(schedule.getMainPeriod() + "/" + schedule.getOtherPeriod());
}
if (null != schedule.getMainRepayDate()) {
pdf.setDueDate(DateUtil.formatDate(schedule.getMainRepayDate()));
}
if (null != schedule.getMainFirstRepay() && null != schedule.getOtherFirstRepay()) {
pdf.setFMoney(schedule.getMainFirstRepay().toString() + "/" + schedule.getOtherFirstRepay());
}
if (null != schedule.getMainMidRepay() && null != schedule.getOtherMidRepay()) {
pdf.setMMoney(schedule.getMainMidRepay().toString() + "/" + schedule.getOtherMidRepay());
}
if (null != schedule.getMainLastRepay() && null != schedule.getOtherLastRepay()) {
pdf.setLMoney(schedule.getMainLastRepay().toString() + "/" + schedule.getOtherLastRepay());
}
pdf.setAmount(amountMain.toString());
pdfs.add(pdf);
}
}
}
}
}
return pdfs;
}
public String returnVoucherFilePath(List<LoanVoucherPdf> pdfVos, String page) {
String path = "";
if (!pdfVos.isEmpty()) {
Map<String, Object> dataMap = new HashMap<String, Object>();
for (LoanVoucherPdf pdfVo : pdfVos) {
if (null != pdfVo) {
if (pdfVo.getTemplate().equals("1")) {
dataMap.put("createTime1", pdfVo.getCreateTime());
dataMap.put("loanContractNo1", pdfVo.getLoanContractNo());
dataMap.put("salesDept1", pdfVo.getSalesDept());
dataMap.put("bankName1", pdfVo.getBankName());
dataMap.put("customer1", pdfVo.getCustomer());
dataMap.put("borrowerName1", pdfVo.getBorrowerName());
dataMap.put("vinNo1", pdfVo.getVinNo());
dataMap.put("period1", pdfVo.getPeriod());
dataMap.put("amount1", pdfVo.getAmount());
dataMap.put("dueDate1", pdfVo.getDueDate());
dataMap.put("fMoney1", pdfVo.getFMoney());
dataMap.put("mMoney1", pdfVo.getMMoney());
dataMap.put("lMoney1", pdfVo.getLMoney());
} else if (pdfVo.getTemplate().equals("2")) {
dataMap.put("createTime2", pdfVo.getCreateTime());
dataMap.put("loanContractNo2", pdfVo.getLoanContractNo());
dataMap.put("salesDept2", pdfVo.getSalesDept());
dataMap.put("bankName2", pdfVo.getBankName());
dataMap.put("customer2", pdfVo.getCustomer());
dataMap.put("borrowerName2", pdfVo.getBorrowerName());
dataMap.put("vinNo2", pdfVo.getVinNo());
dataMap.put("period2", pdfVo.getPeriod());
dataMap.put("amount2", pdfVo.getAmount());
dataMap.put("dueDate2", pdfVo.getDueDate());
dataMap.put("fMoney2", pdfVo.getFMoney());
dataMap.put("mMoney2", pdfVo.getMMoney());
dataMap.put("lMoney2", pdfVo.getLMoney());
;
} else if (pdfVo.getTemplate().equals("3")) {
dataMap.put("createTime3", pdfVo.getCreateTime());
dataMap.put("loanContractNo3", pdfVo.getLoanContractNo());
dataMap.put("salesDept3", pdfVo.getSalesDept());
dataMap.put("bankName3", pdfVo.getBankName());
dataMap.put("customer3", pdfVo.getCustomer());
dataMap.put("borrowerName3", pdfVo.getBorrowerName());
dataMap.put("vinNo3", pdfVo.getVinNo());
dataMap.put("period3", pdfVo.getPeriod());
dataMap.put("amount3", pdfVo.getAmount());
dataMap.put("dueDate3", pdfVo.getDueDate());
dataMap.put("fMoney3", pdfVo.getFMoney());
dataMap.put("mMoney3", pdfVo.getMMoney());
dataMap.put("lMoney3", pdfVo.getLMoney());
}
}
}
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
String resourceAsStreamPath = "";
if (page.equals("1")) {
resourceAsStreamPath = "ftl/vouchers/repayment1.ftl";
} else if (page.equals("2")) {
resourceAsStreamPath = "ftl/vouchers/repayment2.ftl";
} else if (page.equals("3")) {
resourceAsStreamPath = "ftl/vouchers/repayment3.ftl";
}
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(resourceAsStreamPath);
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateVouchers" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
String pdfName = "还款计划表凭证" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
path = targetPath + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
path = targetPath;
}
return path;
}
return path;
}
public ResultBean<String> createRepaymentVoucher(String[] sids) {
ResultBean rb = ResultBean.fireFail();
List<LoanVoucherPdf> pdfs = new ArrayList<>();
List<File> fileList1 = new ArrayList<>();
String filePath = "/template/";
List<File> fileList2 = new ArrayList<>();
String finalPath = "";
List<File> delFile = new ArrayList<>();
for (String sid : sids) {
LoanRepaymentSchedule repaymentSchedule = baseMapper.selectByContractSid(sid);
if (null != repaymentSchedule) {
List<LoanVoucherPdf> pdfList = returnVoucherPdf(repaymentSchedule);
if (!pdfList.isEmpty()) {
int num = 0;
int c = pdfList.size() % 3;
if (c == 0) {
num = pdfList.size() / 3;
} else {
num = (pdfList.size() / 3) + 1;
}
if (pdfList.size() == 1) {
for (LoanVoucherPdf pdf : pdfList) {
pdf.setTemplate("1");
pdf.setPage("1");
}
String s = returnVoucherFilePath(pdfList, "1");
File file1 = new File(s);
fileList1.add(file1);
} else if (pdfList.size() == 2) {
for (int i = 0; i < pdfList.size(); i++) {
LoanVoucherPdf pdf = pdfList.get(i);
if (i == 0) {
pdf.setTemplate("1");
} else if (i == 1) {
pdf.setTemplate("2");
}
pdf.setPage("1");
}
String s = returnVoucherFilePath(pdfList, "2");
File file1 = new File(s);
fileList1.add(file1);
} else if (pdfList.size() >= 3) {
for (int i = 0; i < num; i++) {
List<LoanVoucherPdf> newPdfList = new ArrayList<>();
if (i == num - 1) {
String page = "";
if (c == 1) {
page = "1";
} else if (c == 2) {
page = "2";
}
if (pdfList.size() > (num - 1) * 3) {
LoanVoucherPdf a = pdfList.get((num - 1) * 3);
if (a != null) {
a.setTemplate("1");
a.setPage(page);
newPdfList.add(a);
}
}
if (pdfList.size() > (num - 1) * 3 + 1) {
LoanVoucherPdf a1 = pdfList.get((num - 1) * 3 + 1);
if (a1 != null) {
a1.setTemplate("2");
a1.setPage(page);
newPdfList.add(a1);
}
}
if (pdfList.size() > (num - 1) * 3 + 2) {
LoanVoucherPdf a2 = pdfList.get((num - 1) * 3 + 2);
if (a2 != null) {
a2.setTemplate("3");
a2.setPage(page);
newPdfList.add(a2);
}
}
String s = returnVoucherFilePath(newPdfList, page);
File file1 = new File(s);
fileList1.add(file1);
} else if (i == 0) {
LoanVoucherPdf a = pdfList.get(i);
LoanVoucherPdf a1 = pdfList.get(i + 1);
LoanVoucherPdf a2 = pdfList.get(i + 2);
if (a != null) {
a.setTemplate("1");
a.setPage("3");
newPdfList.add(a);
}
if (a1 != null) {
a1.setTemplate("2");
a1.setPage("3");
newPdfList.add(a1);
}
if (a2 != null) {
a2.setTemplate("3");
a2.setPage("3");
newPdfList.add(a2);
}
String s = returnVoucherFilePath(newPdfList, "3");
File file1 = new File(s);
fileList1.add(file1);
} else {
LoanVoucherPdf a = pdfList.get(i * 3);
LoanVoucherPdf a1 = pdfList.get(i * 3 + 1);
LoanVoucherPdf a2 = pdfList.get(i * 3 + 2);
if (a != null) {
a.setTemplate("1");
a.setPage("3");
newPdfList.add(a);
}
if (a1 != null) {
a1.setTemplate("2");
a1.setPage("3");
newPdfList.add(a1);
}
if (a2 != null) {
a2.setTemplate("3");
a2.setPage("3");
newPdfList.add(a2);
}
String s = returnVoucherFilePath(newPdfList, "3");
File file1 = new File(s);
fileList1.add(file1);
}
}
}
if (fileList1.size() == 1) {
for (File file : fileList1) {
fileList2.add(file);
delFile.add(file);
}
} else if (fileList1.size() > 1) {
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
File file = WordConvertUtils.mulFile2One(fileList1, targetPath + dateStr + seconds + "还款计划凭证.pdf");
if (null != file) {
fileList2.add(file);
delFile.add(file);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
} else {
return rb.setMsg("所选数据中包含未生成还款计划数据,无法下载");
}
}
if (!fileList2.isEmpty()) {
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
File file = WordConvertUtils.mulFile2One(fileList2, targetPath + dateStr + seconds + "还款计划凭证.pdf");
System.out.println("===============================");
System.out.println(file.getAbsolutePath());
System.out.println("===============================");
} catch (Exception e) {
e.printStackTrace();
}
if (fileList2.size() > 0) {
finalPath = filePath + dateStr + seconds + "还款计划凭证.pdf";
}
if (!delFile.isEmpty()) {
for (File file : delFile) {
file.delete();
}
}
}
return rb.success().setData(finalPath);
}
//合并推送凭证
public void pushScheduleVoucher2(LoanRepaymentSchedule schedule) {
String salesOrderSid = schedule.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
String loanContractSid = schedule.getLoanContractSid();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndXdConSid(salesOrderSid, loanContractSid).getData();
String bankName = "";
String otherBankName = "";
String isOtherPolicy = schedule.getIsOtherPolicy();
String sameBank = schedule.getSameBank();
BigDecimal amountMain = new BigDecimal("0.00");
BigDecimal amountOther = new BigDecimal("0.00");
if (isOtherPolicy.equals("0")) {
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
} else if (isOtherPolicy.equals("1")) {
if (isOtherPolicy.equals("1")) {
if (sameBank.equals("0")) {
LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(salesOrderSid);
//查看是否有其他融
LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (null != otherpolicy) {
if (StringUtils.isNotBlank(otherpolicy.getOtherPolicyPeriod())) {
String otherPolicySid = otherpolicy.getOtherPolicySid();
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.fetchBySid(otherPolicySid);
if (loanFinOtherPolicy != null) {
if (StringUtils.isNotBlank(loanFinOtherPolicy.getBankSid())) {
String otherBankSid = loanFinOtherPolicy.getBankSid();
LoanFinBank loanFinBank = loanFinBankService.fetchBySid(otherBankSid);
if (null != loanFinBank) {
otherBankName = loanFinBank.getBankShortName();
}
}
}
}
}
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
int otherPeriod = Integer.parseInt(schedule.getOtherPeriod());
int midOtherPeriod = otherPeriod - 2;
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay();
BigDecimal otherMidRepay = schedule.getOtherMidRepay();
BigDecimal otherLastRepay = schedule.getOtherLastRepay();
amountOther = otherMidRepay.multiply(new BigDecimal(midOtherPeriod)).add(otherFirstRepay).add(otherLastRepay);
}
if (sameBank.equals("1")) {
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
int midPeriod = mainPeriod - 2;
BigDecimal mainFirstRepay = schedule.getMainFirstRepay();
BigDecimal mainMidRepay = schedule.getMainMidRepay();
BigDecimal mainLastRepay = schedule.getMainLastRepay();
amountMain = mainMidRepay.multiply(new BigDecimal(midPeriod)).add(mainFirstRepay).add(mainLastRepay);
int otherPeriod = Integer.parseInt(schedule.getOtherPeriod());
int midOtherPeriod = otherPeriod - 2;
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay();
BigDecimal otherMidRepay = schedule.getOtherMidRepay();
BigDecimal otherLastRepay = schedule.getOtherLastRepay();
amountOther = otherMidRepay.multiply(new BigDecimal(midOtherPeriod)).add(otherFirstRepay).add(otherLastRepay);
amountMain = amountMain.add(amountOther);
}
}
}
LoanFinBank loanFinBank = loanFinBankService.selBankByOrderSid(salesOrderSid);
if (null != loanFinBank) {
bankName = loanFinBank.getBankShortName();
}
if (null != salesOrder) {
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle busSalesOrderVehicle : vehicles) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
String useOrgSid = salesOrder.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
if (isOtherPolicy.equals("0")) {
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
// String busVinSid = vehicle.getSid();
// BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(amountMain);
voucherDetails.add(voucherDetail);
generalVoucher.setVoucherDetails(voucherDetails);
}
if (isOtherPolicy.equals("1")) {
if (sameBank.equals("0")) {
for (int i = 0; i <= 1; i++) {
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (i == 0) {
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
} else if (i == 1) {
if (StringUtils.isNotBlank(otherBankName)) {
voucherDetail.setBankName(otherBankName);
}
}
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
// String busVinSid = vehicle.getSid();
// BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
if (i == 0) {
voucherDetail.setAmount(amountMain);
} else if (i == 1) {
voucherDetail.setAmount(amountOther);
}
voucherDetails.add(voucherDetail);
generalVoucher.setVoucherDetails(voucherDetails);
}
}
if (sameBank.equals("1")) {
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
// String busVinSid = vehicle.getSid();
// BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(amountMain);
voucherDetails.add(voucherDetail);
generalVoucher.setVoucherDetails(voucherDetails);
}
}
finKingDeeFeign.saveScheduleVoucher(generalVoucher);
}
}
}
}
/**
* 根据首期还款日+主产品期数推算主产品月还日期
*
@ -2470,4 +3231,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
List<LoanRepaymentHistory> repaymentHistories = baseMapper.selHistoryBySid(sid);
return rb.success().setData(repaymentHistories);
}
}

3958
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment1.ftl

File diff suppressed because it is too large

6512
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment2.ftl

File diff suppressed because it is too large

9047
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/repayment3.ftl

File diff suppressed because it is too large
Loading…
Cancel
Save