diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java index 1f4b41caa5..125a9c72c0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java @@ -87,6 +87,10 @@ public interface LoanBePadsincereApplyFeign { @ResponseBody public ResultBean delBySids(@RequestBody String[] sids); + @ApiOperation("下载垫还审批dpf") + @PostMapping("/bepadsincereCreatePdf") + public ResultBean bepadsincereCreatePdf(@RequestParam("sid") String sid); + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java index 00c67078f1..b613a93c98 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java @@ -75,6 +75,11 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply return ResultBean.fireFail().setMsg("接口anrui-riskcenter/loanbepadsincereapply/delBySids无法访问"); } + @Override + public ResultBean bepadsincereCreatePdf(String sid) { + return null; + } + @Override public ResultBean fetchDetailsBySid(String sid){ ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java index 815ef4e003..4ae1b3bcf5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java @@ -43,6 +43,10 @@ public interface LoanOverdueFinFeign { @ApiOperation(value = "下载模板") public void downloadExcel(); + @ApiOperation("下载逾期对账审批dpf") + @PostMapping("/overdueCreatePdf") + public ResultBean overdueCreatePdf(@RequestParam("sid") String sid); + @ApiOperation(value = "导入") @PostMapping("/getExcelInfo") ResultBean> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam(value = "useOrgSid") String useOrgSid) throws IOException; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java index 3689c022f4..1e3b5b3bf0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java @@ -122,6 +122,11 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign { return loanBePadsincereApplyService.delAllBySids(sids); } + @Override + public ResultBean bepadsincereCreatePdf(String sid) { + return loanBePadsincereApplyService.bepadsincereCreatePdf(sid); + } + @Override @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java index a52cbcc44d..50f57dbd7f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java @@ -62,6 +62,7 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; @@ -75,21 +76,30 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetai import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDto; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; +import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApply; +import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentRecordVo; import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService; +import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.utils.ConstantUtils; import com.yxt.common.base.utils.DateUtils; +import com.yxt.common.base.utils.WordConvertUtils; +import com.yxt.messagecenter.api.message.Message; import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import com.yxt.messagecenter.api.messagelist.MessageList; +import com.yxt.messagecenter.api.messagelist.MessageListFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -119,6 +129,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * Project: anrui-riskcenter(垫款申请)
* File: LoanBePadsincereApplyService.java
@@ -134,7 +146,12 @@ import java.util.stream.Collectors; */ @Service public class LoanBePadsincereApplyService extends MybatisBaseService { - + @Autowired + private DocPdfComponent docPdfComponent; + @Autowired + private MessageListFeign messageListFeign; + @Autowired + private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignPro; @Autowired private SysUserFeign sysUserFeign; @Autowired @@ -468,8 +485,8 @@ public class LoanBePadsincereApplyService extends MybatisBaseService bepadsincereCreatePdf(String sid) { + ResultBean rb = ResultBean.fireFail(); + String finalPath = ""; + String filePath = ""; + Map dataMap = new HashMap(); + List> newList = new ArrayList<>(); + LoanBePadsincereApply data = fetchBySid(sid); + if (null != data) { + if (!data.getNodeState().equals("已办结")) { + return rb.setMsg("无法下载没有办结的审批记录。"); + } + List files = loanFileService.selectByLinkSid(data.getSid(), LoanFileEnum.BEPADSINCERE.getAttachType()); + if (!files.isEmpty()) { + List stringList = new ArrayList<>(); + for (LoanFile file : files) { + if (StringUtils.isNotBlank(file.getFileName()) && StringUtils.isNotBlank(file.getFileType())) { + stringList.add(file.getFileName() + "." + file.getFileType()); + } + } + if (!stringList.isEmpty()) { + filePath = String.join(",", stringList); + } + } + dataMap.put("createTime", DateUtil.formatDate(data.getCreateTime())); + if (StringUtils.isNotBlank(data.getUseOrgName())) { + dataMap.put("company", data.getUseOrgName()); + } + if (StringUtils.isNotBlank(data.getCreateByName())) { + dataMap.put("applyName", data.getCreateByName()); + } + if (StringUtils.isNotBlank(data.getDeptName())) { + dataMap.put("dept", data.getDeptName()); + } + if (StringUtils.isNotBlank(data.getBillNo())) { + dataMap.put("billNo", data.getBillNo()); + } + if (StringUtils.isNotBlank(data.getFinPaymentFormValue())) { + dataMap.put("payWay", data.getFinPaymentFormValue()); + } + if (StringUtils.isNotBlank(data.getPaymentRemarks())) { + dataMap.put("payRemarks", data.getPaymentRemarks()); + } + if (StringUtils.isNotBlank(data.getRemarks())) { + dataMap.put("otherShow", data.getRemarks()); + } + if (StringUtils.isNotBlank(filePath)) { + dataMap.put("filePath", filePath); + } + BigDecimal sumMoney = new BigDecimal(0); + //获取审批记录 + if (StringUtils.isNotBlank(data.getProcInstSid())) { + List flowRecordVo = flowableFeignPro.flowRecordAndComment(data.getProcInstSid(), "1").getData(); + List sourceLCVos = new ArrayList<>(); + for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { + if (flowTask.getFlowableRecordVo() != null) { + Map flowableRecordVo = flowTask.getFlowableRecordVo(); + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + List> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos"); + Map comment = ConstantUtils.getMap(flowableRecordVo, "comment"); + String assigneeName = (String) taskUserInfos.get(0).get("assigneeName"); + String comment1 = (String) comment.get("comment"); + sourceLCVo.setName(assigneeName); + sourceLCVo.setComment(comment1); + sourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString()); + sourceLCVos.add(sourceLCVo); + } else { + Map processCommentVo = flowTask.getProcessCommentVo(); + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + sourceLCVo.setName(processCommentVo.get("title").toString()); + sourceLCVo.setComment(processCommentVo.get("content").toString()); + sourceLCVo.setSpsj(processCommentVo.get("time").toString()); + sourceLCVos.add(sourceLCVo); + } + } + List messages = messageFeign.selectByBusinessSid(data.getSid()).getData(); + if (messages.size() > 0) { + for (Message message : messages) { + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + String receiverNames = ""; + List messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData(); + if (messageLists.size() > 0) { + for (MessageList messageList : messageLists) { + receiverNames = receiverNames + messageList.getReceiverName() + ","; + } + } + sourceLCVo.setName("系统"); + sourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(","))); + sourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + sourceLCVos.add(sourceLCVo); + } + } + sourceLCVos.sort(comparing(MonthlyAccrualSourceLCVo::getSpsj)); + dataMap.put("lcList", sourceLCVos); + } + List records = loanBePadsincereVehService.selByMainSid(sid); + if (!records.isEmpty()) { + int sortNo = 1; + for (LoanBePadsincereVehDetailsVo record : records) { + Map map = new HashMap<>(); + LoanRepaymentPlanDetails details = loanRepaymentPlanDetailsService.fetchMainBankByBusVinSid(record.getBusVinSid()); + if (null != details) { + map.put("sortNo", String.valueOf(sortNo++)); + if (StringUtils.isNotBlank(record.getLoanContractNo())) { + map.put("loanNo", record.getLoanContractNo()); + } + if (StringUtils.isNotBlank(details.getDept())) { + map.put("saleDept", details.getDept()); + } + if (StringUtils.isNotBlank(record.getVinNo())) { + map.put("vinNo", record.getVinNo()); + } + if (StringUtils.isNotBlank(record.getBankName())) { + map.put("bankName", record.getBankName()); + } + if (StringUtils.isNotBlank(record.getBankContractNo())) { + map.put("bankNo", record.getBankContractNo()); + } + if (StringUtils.isNotBlank(record.getBorrowerName())) { + map.put("borrowerName", record.getBorrowerName()); + } + if (StringUtils.isNotBlank(record.getPeriod())) { + map.put("period", record.getPeriod()); + } + if (StringUtils.isNotBlank(record.getSysBeMoney())) { + map.put("overDueMoney", record.getSysBeMoney()); + } + if (StringUtils.isNotBlank(record.getBankBeMoney())) { + map.put("bankOverMoney", record.getBankBeMoney()); + } + if (StringUtils.isNotBlank(record.getBankBeInter())) { + map.put("beInter", record.getBankBeInter()); + } + if (StringUtils.isNotBlank(record.getPadMoney())) { + map.put("padMoney", record.getPadMoney()); + sumMoney = sumMoney.add(new BigDecimal(record.getPadMoney())); + } + } + newList.add(map); + } + dataMap.put("amount", sumMoney.toString()); + } + dataMap.put("newList", newList); + String temp = "/template/"; + String targetPath = docPdfComponent.getUploadTemplateUrl(); + try { + //获取模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/padsincere.ftl"); + //生成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); + finalPath = temp + pdfName; + } catch (NoClassDefFoundError e) { + e.printStackTrace(); + finalPath = targetPath; + } + } + return rb.success().setData(finalPath); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java index 45ba50d5ea..fac946a81c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java @@ -1238,6 +1238,9 @@ public class LoanBuckleApplyService extends MybatisBaseService> newList = new ArrayList<>(); LoanBuckleApply data = fetchBySid(sid); if (null != data) { + if (!data.getNodeState().equals("已办结")) { + return rb.setMsg("无法下载没有办结的审批记录。"); + } List files = loanFileService.selectByLinkSid(data.getSid(), LoanFileEnum.BUCKLE_APPLY.getAttachType()); if (!files.isEmpty()) { List stringList = new ArrayList<>(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java index f496d99818..c72924fa43 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java @@ -1053,6 +1053,9 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService> newList = new ArrayList<>(); LoanMonthlyAccrualApply data = fetchBySid(sid); if (null != data) { + if (!data.getNodeState().equals("已办结")) { + return rb.setMsg("无法下载没有办结的审批记录。"); + } List files = loanFileService.selectByLinkSid(data.getSid(), LoanFileEnum.ACCRUALAPPLY.getAttachType()); if (!files.isEmpty()) { List stringList = new ArrayList<>(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java index 60db54ab9f..e667c24757 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java @@ -71,6 +71,11 @@ public class LoanOverdueFinRest implements LoanOverdueFinFeign { ExportExcelUtils.export(fileNameURL, list, DownloadExcelVo.class, response); } + @Override + public ResultBean overdueCreatePdf(String sid) { + return loanOverdueFinService.overdueCreatePdf(sid); + } + @Override public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request,String useOrgSid) throws IOException { return loanOverdueFinService.getExcelInfo(file, request,useOrgSid); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java index 0f33ca55bd..eadd9c4f10 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java @@ -12,6 +12,7 @@ import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -21,6 +22,7 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; @@ -28,6 +30,11 @@ 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.loanbepadsincereapply.ReturnExcelInfo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.*; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverFinApplyDelegateQuery; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery; @@ -35,17 +42,25 @@ import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinAppDetailsVo; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.anrui.riskcenter.biz.loanoverduefindetails.LoanOverdueFinDetailsService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; +import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.ConstantUtils; import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.WordConvertUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.messagecenter.api.message.Message; import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import com.yxt.messagecenter.api.messagelist.MessageList; +import com.yxt.messagecenter.api.messagelist.MessageListFeign; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; @@ -66,6 +81,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @description: * @author: dimengzhe @@ -74,6 +91,10 @@ import java.util.stream.Collectors; @Service public class LoanOverdueFinService extends MybatisBaseService { + @Autowired + private MessageListFeign messageListFeign; + @Autowired + private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignPro; @Autowired private SysUserFeign sysUserFeign; @Autowired @@ -92,6 +113,10 @@ public class LoanOverdueFinService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanOverdueFinQuery query = pq.getParams(); @@ -244,7 +269,7 @@ public class LoanOverdueFinService extends MybatisBaseService loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo(), useOrgSid); loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null)); @@ -894,4 +919,142 @@ public class LoanOverdueFinService extends MybatisBaseService overdueCreatePdf(String sid) { + ResultBean rb = ResultBean.fireFail(); + String finalPath = ""; + Map dataMap = new HashMap(); + List> newList = new ArrayList<>(); + LoanOverdueFin data = fetchBySid(sid); + if (null != data) { + if (!data.getNodeState().equals("已办结")) { + return rb.setMsg("无法下载没有办结的审批记录。"); + } + dataMap.put("createTime", DateUtil.formatDate(data.getCreateTime())); + if (StringUtils.isNotBlank(data.getUseOrgName())) { + dataMap.put("company", data.getUseOrgName()); + } + if (StringUtils.isNotBlank(data.getCreateByName())) { + dataMap.put("applyName", data.getCreateByName()); + } + if (StringUtils.isNotBlank(data.getCreateDept())) { + dataMap.put("dept", data.getCreateDept()); + } + if (StringUtils.isNotBlank(data.getRemarks())) { + dataMap.put("remarks", data.getRemarks()); + } + if (StringUtils.isNotBlank(data.getFiles())) { + dataMap.put("filePath", data.getFiles()); + } + if (StringUtils.isNotBlank(data.getStopDate())) { + dataMap.put("endTime", data.getStopDate()); + } + if (StringUtils.isNotBlank(data.getBillNo())) { + dataMap.put("billNo", data.getBillNo()); + } + //获取审批记录 + if (StringUtils.isNotBlank(data.getProcInstId())) { + List flowRecordVo = flowableFeignPro.flowRecordAndComment(data.getProcInstId(), "1").getData(); + List sourceLCVos = new ArrayList<>(); + for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { + if (flowTask.getFlowableRecordVo() != null) { + Map flowableRecordVo = flowTask.getFlowableRecordVo(); + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + List> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos"); + Map comment = ConstantUtils.getMap(flowableRecordVo, "comment"); + String assigneeName = (String) taskUserInfos.get(0).get("assigneeName"); + String comment1 = (String) comment.get("comment"); + sourceLCVo.setName(assigneeName); + sourceLCVo.setComment(comment1); + sourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString()); + sourceLCVos.add(sourceLCVo); + } else { + Map processCommentVo = flowTask.getProcessCommentVo(); + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + sourceLCVo.setName(processCommentVo.get("title").toString()); + sourceLCVo.setComment(processCommentVo.get("content").toString()); + sourceLCVo.setSpsj(processCommentVo.get("time").toString()); + sourceLCVos.add(sourceLCVo); + } + } + List messages = messageFeign.selectByBusinessSid(data.getSid()).getData(); + if (messages.size() > 0) { + for (Message message : messages) { + MonthlyAccrualSourceLCVo sourceLCVo = new MonthlyAccrualSourceLCVo(); + String receiverNames = ""; + List messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData(); + if (messageLists.size() > 0) { + for (MessageList messageList : messageLists) { + receiverNames = receiverNames + messageList.getReceiverName() + ","; + } + } + sourceLCVo.setName("系统"); + sourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(","))); + sourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + sourceLCVos.add(sourceLCVo); + } + } + sourceLCVos.sort(comparing(MonthlyAccrualSourceLCVo::getSpsj)); + dataMap.put("lcList", sourceLCVos); + } + List records = loanOverdueFinDetailsService.selectByMainSid(sid); + if (!records.isEmpty()) { + int sortNo = 1; + for (LoanOverdueFinDetailsDto applyRecord : records) { + Map map = new HashMap<>(); + LoanRepaymentPlanDetails details = loanRepaymentPlanDetailsService.fetchMainBankByBusVinSid(applyRecord.getBusVinSid()); + if (null != details) { + map.put("sortNo", String.valueOf(sortNo++)); + if (StringUtils.isNotBlank(details.getLoanContractNo())) { + map.put("loanNo", details.getLoanContractNo()); + } + if (StringUtils.isNotBlank(details.getVinNo())) { + map.put("vinNo", details.getVinNo()); + } + if (StringUtils.isNotBlank(details.getBorrowerName())) { + map.put("borrowerName", details.getBorrowerName()); + } + if (StringUtils.isNotBlank(details.getDept())) { + map.put("saleDept", details.getDept()); + } + if (StringUtils.isNotBlank(applyRecord.getOverdueMoney())) { + map.put("overDueMoney", applyRecord.getOverdueMoney()); + } + if (StringUtils.isNotBlank(applyRecord.getTiredDeficiency())) { + map.put("tiredMoney", applyRecord.getTiredDeficiency()); + } + if (StringUtils.isNotBlank(applyRecord.getDiffMoney())) { + map.put("diffMoney", applyRecord.getDiffMoney()); + } + + } + newList.add(map); + } + } + dataMap.put("newList", newList); + String temp = "/template/"; + String targetPath = docPdfComponent.getUploadTemplateUrl(); + try { + //获取模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/overDue.ftl"); + //生成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); + finalPath = temp + pdfName; + } catch (NoClassDefFoundError e) { + e.printStackTrace(); + finalPath = targetPath; + } + } + return rb.success().setData(finalPath); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java index 7a9d47a528..56213f3f25 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java @@ -77,4 +77,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper selPushLaterVoucherOnBuckle(@Param("planSids") List planSids); + + LoanRepaymentPlanDetails fetchMainBankByBusVinSid(@Param("busVinSid") String busVinSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml index adf22353b4..f23e685cd8 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml @@ -770,4 +770,8 @@ #{item} + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java index eed2a60d16..66a54de13e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java @@ -313,4 +313,8 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService> newList = new ArrayList<>(); LoanTransferPaymentApply data = fetchBySid(sid); if (null != data) { + if (!data.getNodeState().equals("已办结")) { + return rb.setMsg("无法下载没有办结的审批记录。"); + } List files = loanFileService.selectByLinkSid(data.getSid(), LoanFileEnum.TRANSFERPAYMENT.getAttachType()); if (!files.isEmpty()) { List stringList = new ArrayList<>(); @@ -1441,6 +1444,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService + + + Administrator + FAN + 2024-04-12T01:09:00Z + 2024-04-15T07:13:49Z + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 14 + + + 2052-12.1.0.16729 + 7281521D75904346990AE39D0AD590E0_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 逾期对账审批 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${company!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请时间:${createTime!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 审批编号:${billNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请人: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${applyName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请部门: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${dept!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 数据截止时间: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${endTime!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 备注: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${remarks!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 附件: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${filePath!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 审批流程 + + + + + <#list lcList as lc> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.comment!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.name!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.spsj!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 逾期客户列表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 序号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 贷款合同号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车架号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 贷款人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 销售部门 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 平台逾期金额 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 财务累欠金额 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 差异金额 + + + + + <#list newList as list> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.sortNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.loanNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.vinNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.borrowerName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.saleDept!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.overDueMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.tiredMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.diffMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE \* MERGEFORMAT + + + + + + 1 + + + + + + 页 共 + + + + + + NUMPAGES \* MERGEFORMAT + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/padsincere.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/padsincere.ftl new file mode 100644 index 0000000000..16e26eacfd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/padsincere.ftl @@ -0,0 +1,3317 @@ + + + + Administrator + FAN + 2024-04-12T01:09:00Z + 2024-04-15T07:44:01Z + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 14 + + + 2052-12.1.0.16729 + 7A074C3E3D084683BAF76777203B3E89_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 垫还审批 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${company!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请时间:${createTime!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 审批编号:${billNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请人: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${applyName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请部门: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${dept!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 财务付款形式: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${payWay!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 付款时需要备注内容: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${payRemarks!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 垫还总金额: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${amount!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 其他说明: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${otherShow!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 附件: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${filePath!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 审批流程 + + + + + <#list lcList as lc> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.comment!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.name!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lc.spsj!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 垫还明细 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 序号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 贷款合同号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 销售部门 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 资方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 资方合同号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车架号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 贷款人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 期数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 平台逾期月还 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 资方逾期月还 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 资方逾期利息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 垫款金额 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 资方收款账户账号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 备注 + + + + + <#list newList as list> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.sortNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.loanNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.saleDept!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.bankName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.bankNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.vinNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.borrowerName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.period!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.overDueMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.bankOverMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.beInter!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.padMoney!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.accNumber!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${list.remarks!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE \* MERGEFORMAT + + + + + + 1 + + + + + + 页 共 + + + + + + NUMPAGES \* MERGEFORMAT + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/overDue.ftl b/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/overDue.ftl new file mode 100644 index 0000000000..a9de1375e3 --- /dev/null +++ b/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/overDue.ftl @@ -0,0 +1,3 @@ + + +AdministratorFAN2024-04-12T01:09:00Z2024-04-15T07:13:49Z0100000142052-12.1.0.167297281521D75904346990AE39D0AD590E0_13逾期对账审批 ${company!}申请时间:${createTime!}审批编号:${billNo!}申请人:${applyName!}申请部门:${dept!}数据截止时间:${endTime!}备注:${remarks!}附件:${filePath!}审批流程${lc.comment!}${lc.name!}${lc.spsj!}逾期客户列表序号贷款合同号车架号贷款人销售部门平台逾期金额财务累欠金额差异金额${list.sortNo!}${list.loanNo!}${list.vinNo!}${list.borrowerName!}${list.saleDept!}${list.overDueMoney!}${list.tiredMoney!}${list.diffMoney!} PAGE \* MERGEFORMAT 1 页 共 NUMPAGES \* MERGEFORMAT 1 \ No newline at end of file diff --git a/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/逾期对账.docx b/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/逾期对账.docx new file mode 100644 index 0000000000..2718bdd1e7 --- /dev/null +++ b/工作内容需要的文档/单据模板/财务凭证打印模板/逾期对账/逾期对账.docx @@ -0,0 +1,36 @@ + 逾期对账审批 + ${company!} + 申请时间:${createTime!} + 审批编号:${billNo!} + 申请人: +${applyName!} + 申请部门: +${dept!} + 数据截止时间: +${endTime!} + 备注: +${remarks!} + 附件: +${filePath!} + 审批流程 + +${lc.comment!} +${lc.name!} + ${lc.spsj!} + 逾期客户列表 + 序号 + 贷款合同号 + 车架号 + 贷款人 + 销售部门 + 平台逾期金额 + 财务累欠金额 + 差异金额 + ${list.sortNo!} + ${list.loanNo!} + ${list.vinNo!} + ${list.borrowerName!} + ${list.saleDept!} + ${list.overDueMoney!} + ${list.tiredMoney!} + ${list.diffMoney!}