From 42e2f8dcfb2d1adbd46883a47f8a699125f255be Mon Sep 17 00:00:00 2001 From: ligaode Date: Wed, 7 May 2025 10:52:18 +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 --- .../LoanReturnInboundApply.java | 2 + .../LoanReturnInboundApplyDetailsVo.java | 2 + .../LoanReturnInboundApplyFeign.java | 5 + .../LoanBeCollectionApplyService.java | 53 ++++---- .../LoanReturnInboundApplyRest.java | 7 + .../LoanReturnInboundApplyService.java | 127 +++++++++++++++++- 6 files changed, 171 insertions(+), 25 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java index 455888d0b5..7230e1cf32 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java @@ -21,6 +21,8 @@ public class LoanReturnInboundApply extends BaseEntity { private String createDeptSid; @ApiModelProperty("申请人") private String createByName; + @ApiModelProperty("申请编号") + private String billNo; @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("车辆sid") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java index 0b19b1b613..ea9f07786e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java @@ -26,6 +26,8 @@ public class LoanReturnInboundApplyDetailsVo { private String createByName; @ApiModelProperty("发起日期") private String createDate; + @ApiModelProperty("申请编号") + private String billNo; @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("车辆sid") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java index 622aab9656..feb06d02c6 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java @@ -44,6 +44,11 @@ public interface LoanReturnInboundApplyFeign { @DeleteMapping("/delBySids") ResultBean delBySids(@RequestBody String[] sids); + @ApiOperation("生成pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + @ApiOperation("提交") @PostMapping("/submitApply") public ResultBean submitApply(@Valid @RequestBody SubmitReturnInbondApplyDto dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java index a3b61ce40d..a2501ea554 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java @@ -59,7 +59,6 @@ import com.yxt.anrui.riskcenter.api.loanbecollectionapply.*; import com.yxt.anrui.riskcenter.api.loanbecollectionapply.flowable.*; import com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit; import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDbrDetailsVo; -import com.yxt.anrui.riskcenter.api.loanvehclearanceveh.LoanVehClearanceLockCarVo; import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDetailsVo; import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDto; import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehFile; @@ -422,21 +421,25 @@ public class LoanBeCollectionApplyService extends MybatisBaseService createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = loanReturnInboundApplyService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitApply(SubmitReturnInbondApplyDto dto) { return loanReturnInboundApplyService.submitApply(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java index 338fbc6f35..537439ee8a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java @@ -18,6 +18,7 @@ import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFe import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusVinStateSetQuery; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.stkmiscellaneous.StkMiscellaneous; @@ -31,6 +32,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; @@ -45,19 +47,27 @@ import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*; import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyPdfVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDetailsVo; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; import com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerService; import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService; 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 org.apache.commons.lang3.StringUtils; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; @@ -68,6 +78,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @description: * @author: dimengzhe @@ -110,7 +122,10 @@ public class LoanReturnInboundApplyService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(data.getUseOrgSid()).getData(); + dataMap.put("orgName", sysOrganizationVo.getName()); + //创建部门 + dataMap.put("deptName", data.getCreateDept()); + //创建人 + dataMap.put("createName", data.getCreateByName()); + //创建日期 + dataMap.put("createTime", data.getCreateDate()); + //办结日期 + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid); + dataMap.put("finishTime", loanReturnInboundApply.getCloseDate()); + //审批编号 + dataMap.put("billNo", data.getBillNo()); + dataMap.put("zc", data.getVinNo()); + dataMap.put("zch", data.getVehMark()); + dataMap.put("djrq", data.getFirstDate()); + dataMap.put("cx", data.getModelName()); + dataMap.put("dgc", data.getTralier()); + dataMap.put("name", data.getCustomerName()); + dataMap.put("dkr", data.getLoanName()); + dataMap.put("dkbh", data.getLoanContractNo()); + dataMap.put("zf", data.getBankName()); + dataMap.put("zfbh", data.getLocationName()); + dataMap.put("sfbz", data.getParkFees()); + //挂车 + LoanReturnInboundTrailerDto loanReturnInboundTrailer = data.getLoanReturnInboundTrailer(); + dataMap.put("gc", loanReturnInboundTrailer.getVinNo()); + dataMap.put("gch", loanReturnInboundTrailer.getVehMark()); + dataMap.put("gcj", loanReturnInboundTrailer.getInboundMoney()); + dataMap.put("lx", loanReturnInboundTrailer.getTrailerType()); + dataMap.put("bz", loanReturnInboundTrailer.getRemarks()); + //已还与欠款情况 + dataMap.put("yh", data.getAlRepaidMoney()); + dataMap.put("yq", data.getCurrentBeMoney() + "/" + data.getWheFundOccMoney()); + dataMap.put("wdq", data.getUnexpiredMoney()); + dataMap.put("qs", data.getNper() + "/" + data.getCurrentPeriod()); + dataMap.put("qhqs", data.getAlRepaidMoneyConPeriod()); + dataMap.put("yqqs", data.getBeOverdueMoneyAndPeriod()); + dataMap.put("remarks", data.getRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(data.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, "jhclrk", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "交回车辆入库审批_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } + /* public ResultBean> getInboundList(String useOrgSid) { ResultBean> rb = ResultBean.fireFail(); List busVinSid = baseMapper.selectVehInbound(useOrgSid);