From 706d9bc53c402f8891423b28ce338ed7ec46ece7 Mon Sep 17 00:00:00 2001 From: ligaode Date: Thu, 22 May 2025 14:12:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanRepurchaseApply.java | 4 + .../LoanRepurchaseApplyDetailsVo.java | 2 + .../LoanRepurchaseApplyDto.java | 2 + .../LoanRepurchaseApplyFeign.java | 4 + .../LoanRepurchaseApplyFeignFallback.java | 5 + .../LoanRepurchaseApplyRest.java | 7 + .../LoanRepurchaseApplyService.java | 145 +++++++++++++++++- 7 files changed, 167 insertions(+), 2 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java index 7e4913614c..6c4bc90740 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java @@ -20,6 +20,8 @@ import java.util.Date; public class LoanRepurchaseApply extends BaseEntity { @ApiModelProperty("销售订单sid") private String salesOrderSid; + @ApiModelProperty("单据编号") + private String billNo; @ApiModelProperty("申请日期") private Date applyDate; @ApiModelProperty("申请部门") @@ -38,6 +40,8 @@ public class LoanRepurchaseApply extends BaseEntity { private String loanSid; @ApiModelProperty("贷款合同编号") private String loanContractNo; + @ApiModelProperty("资方sid") + private String bankSid; @ApiModelProperty("资方") private String bankName; @ApiModelProperty("资方合同编号") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java index cc6e4208ae..274d9081f6 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java @@ -54,6 +54,8 @@ public class LoanRepurchaseApplyDetailsVo implements Vo { private String loanSid; @ApiModelProperty("贷款合同编号") private String loanContractNo; + @ApiModelProperty("资方sid") + private String bankSid; @ApiModelProperty("资方") private String bankName; @ApiModelProperty("资方合同编号") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java index 94787fe4d5..5365111700 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java @@ -49,6 +49,8 @@ public class LoanRepurchaseApplyDto implements Dto { private String loanSid; @ApiModelProperty("贷款合同编号") private String loanContractNo; + @ApiModelProperty("资方sid") + private String bankSid; @ApiModelProperty("资方") private String bankName; @ApiModelProperty("资方合同编号") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java index 0c63845b33..36843add4c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java @@ -69,6 +69,10 @@ public interface LoanRepurchaseApplyFeign { @ResponseBody ResultBean settleRepoInit(@RequestBody LoanRepoSettleApplyDetailsQuery query); + @ApiOperation("生成pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); //---------------------流程接口------------------------------- @ApiOperation("提交") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java index beece54eea..229fc65fd9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java @@ -48,6 +48,11 @@ public class LoanRepurchaseApplyFeignFallback implements LoanRepurchaseApplyFeig return null; } + @Override + public ResultBean createPdf(String sid, String userName) { + return null; + } + @Override public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java index 48b3ef7016..e87c964fea 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java @@ -64,6 +64,13 @@ public class LoanRepurchaseApplyRest implements LoanRepurchaseApplyFeign { return loanRepurchaseApplyService.settleRepoInit(query); } + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = loanRepurchaseApplyService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { return loanRepurchaseApplyService.submitRecordApplication(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java index 75e7dbb5ed..b8d840e2a2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java @@ -7,8 +7,12 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.buscenter.api.bussalesorderreturnveh.BusSalesOrderReturnVehDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehPdfVo; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -18,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.SysStaffOrg; @@ -45,13 +50,18 @@ import com.yxt.anrui.riskcenter.biz.loansettleapply.LoanSettleApplyService; import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; 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.WordUtils; 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 feign.FeignException; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -64,6 +74,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @description: @@ -84,8 +96,6 @@ public class LoanRepurchaseApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -1095,4 +1109,131 @@ public class LoanRepurchaseApplyService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(data.getOrgPath()).getData(); + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dataMap.put("orgName", sysOrganizationVo.getName()); + //创建部门 + dataMap.put("deptName", data.getCreateDept()); + //创建人 + dataMap.put("createName", data.getCreateByName()); + //创建日期 + dataMap.put("createTime", data.getApplyDate()); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(loanRepurchaseApply.getCloseDate())); + //审批编号 + dataMap.put("billNo", loanRepurchaseApply.getBillNo()); + dataMap.put("vinNo", data.getVinNo()); + dataMap.put("cph", data.getVehMark()); + dataMap.put("kh", data.getCustomerName()); + dataMap.put("dkr", data.getLoanName()); + dataMap.put("dkh", data.getLoanContractNo()); + dataMap.put("zf", data.getBankName()); + dataMap.put("zfh", data.getBankContractNo()); + dataMap.put("jqr", data.getPrepareDate()); + dataMap.put("yq", data.getOverdueMonthPrice()); + dataMap.put("dq", data.getCurrentNotDuePrice()); + dataMap.put("wdq", data.getNotDuePrice()); + dataMap.put("bz", loanRepurchaseApply.getRemarks()); + LoanRepurchaseBankCostVo bankCostVo = data.getBankCostVo(); + dataMap.put("zbzj", bankCostVo.getLoanDeposit()); + dataMap.put("dd", bankCostVo.isTopping() ? "是" : "否"); + dataMap.put("zyh", bankCostVo.getPrice()); + dataMap.put("zdq", bankCostVo.getCurrentNotDuePrice()); + dataMap.put("zwdq", bankCostVo.getNotDuePrice()); + dataMap.put("zlx", bankCostVo.getBankInterest()); + dataMap.put("zmy", bankCostVo.getBankNominalPrice()); + dataMap.put("zwy", bankCostVo.getBankContractLiquidated()); + dataMap.put("zys", bankCostVo.getBankOtherReceivable()); + dataMap.put("zsm", bankCostVo.getOtherReceivableRemarks()); + dataMap.put("zjq", bankCostVo.getBankSettlePrice()); + dataMap.put("zzo", bankCostVo.getBankAccount()); + dataMap.put("zzh", bankCostVo.getAccountName()); + LoanRepurchaseCompanyCostVo companyCostVo = data.getCompanyCostVo(); + dataMap.put("gbzj", companyCostVo.getLoanDeposit()); + dataMap.put("gyh", companyCostVo.getOverduePrice()); + dataMap.put("glx", companyCostVo.getPutBankInterest()); + dataMap.put("gzf", companyCostVo.getFunfCost()); + dataMap.put("gzlx", companyCostVo.getBankOverInterest()); + dataMap.put("gdq", companyCostVo.getCompanyCurrentNotPrice()); + dataMap.put("gwdq", companyCostVo.getBankNotPrice()); + dataMap.put("gfk", companyCostVo.getDeductionAmount()); + dataMap.put("gmy", companyCostVo.getCompanyNominalPrice()); + dataMap.put("gwy", companyCostVo.getContractLiquidated()); + dataMap.put("gfy", companyCostVo.getCompanyOtherPrice()); + dataMap.put("gsm", companyCostVo.getOtherCostRemarks()); + dataMap.put("ghj", companyCostVo.getSettleAll()); + dataMap.put("gjq", companyCostVo.getProfit()); + dataMap.put("hg", data.getAmount()); + dataMap.put("hgsm", data.getBuybacksReason()); + dataMap.put("hgbz", data.getPayRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(loanRepurchaseApply.getProcInstId(), "1").getData(); + List finPaymentrecordSourceLCVos = new ArrayList<>(); + for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { + if (flowTask.getFlowableRecordVo() != null) { + Map flowableRecordVo = flowTask.getFlowableRecordVo(); + FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); + 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"); + finPaymentrecordSourceLCVo.setName(assigneeName); + finPaymentrecordSourceLCVo.setComment(comment1); + finPaymentrecordSourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString()); + finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); + } else { + Map processCommentVo = flowTask.getProcessCommentVo(); + FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); + finPaymentrecordSourceLCVo.setName(processCommentVo.get("title").toString()); + finPaymentrecordSourceLCVo.setComment(processCommentVo.get("content").toString()); + finPaymentrecordSourceLCVo.setSpsj(processCommentVo.get("time").toString()); + finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); + } + } + List messages = messageFeign.selectByBusinessSid(data.getSid()).getData(); + if (messages.size() > 0) { + for (Message message : messages) { + FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); + String receiverNames = ""; + List messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData(); + if (messageLists.size() > 0) { + for (MessageList messageList : messageLists) { + receiverNames = receiverNames + messageList.getReceiverName() + ","; + } + } + finPaymentrecordSourceLCVo.setName("系统"); + finPaymentrecordSourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(","))); + finPaymentrecordSourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); + } + } + finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj)); + dataMap.put("lcList", finPaymentrecordSourceLCVos); + //下载人 + dataMap.put("downName", userName); + //下载时间 + dataMap.put("downTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + //获取模板 + //模板路径 + String sourcePath = "D:\\anrui\\upload\\template\\"; + //生成word文件名 + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + // 生成文件路径 + String targetPath = sourcePath + dateStr; + WordUtils.creatWord(dataMap, "hgsp", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "回购_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } }