diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancaseprogress/PushCaseDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancaseprogress/PushCaseDto.java index e079688a76..5eb41900e5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancaseprogress/PushCaseDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancaseprogress/PushCaseDto.java @@ -30,6 +30,10 @@ public class PushCaseDto { private String loanSid; @ApiModelProperty("贷款人") private String loanName; + @ApiModelProperty("贷款人身份证号") + private String loanId; + @ApiModelProperty("贷款人户籍地址") + private String loanAddress; @ApiModelProperty("贷款合同编号") private String loanContractNo; @ApiModelProperty("资方") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java index 3573a9ee8d..51d7a215f4 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java @@ -30,6 +30,8 @@ public class LoanOutboundApply extends BaseEntity { private String dept; @ApiModelProperty("申请部门sid") private String deptSid; + @ApiModelProperty("申请编号") + private String billNo; @ApiModelProperty("流程定义的id") private String procDefId; // 流程定义的id @ApiModelProperty("环节定义的sid") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java index 567f6a09a9..dc9d7fd3c6 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java @@ -2,8 +2,6 @@ package com.yxt.anrui.riskcenter.api.loanoutboundapply; import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo; import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*; -import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListQuery; -import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -17,12 +15,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; - -/** - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "交回车辆出库申请") @FeignClient( contextId = "anrui-riskcenter-LoanOutboundApply", @@ -31,7 +23,6 @@ import java.util.List; fallback = LoanOutboundFeignFallback.class) public interface LoanOutboundApplyFeign { - @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq); @@ -46,12 +37,15 @@ public interface LoanOutboundApplyFeign { @ResponseBody public ResultBean updateOutbound(@RequestBody LoanUpdateApplyDto dto); - @ApiOperation("详情查看") @GetMapping("outboundDetails") @ResponseBody public ResultBean outboundDetails(@RequestParam("sid") String sid); + @ApiOperation("生成pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); //------------------------------流程接口---------------------------------------------- diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyPdfVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyPdfVo.java new file mode 100644 index 0000000000..2d6a6b31f2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyPdfVo.java @@ -0,0 +1,46 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class LoanOutboundApplyPdfVo implements Vo { + + private Integer id; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String cph; + @ApiModelProperty("车辆类型") + private String lx; + @ApiModelProperty("车型") + private String cx; + @ApiModelProperty("库存地点") + private String dd; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java index 3350dda8c9..7ba0f54a3b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java @@ -35,6 +35,11 @@ public class LoanOutboundFeignFallback implements LoanOutboundApplyFeign { return null; } + @Override + public ResultBean createPdf(String sid, String userName) { + return null; + } + @Override public ResultBean submitRecordApplication(SubmitOutboundDto dto) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerMapper.java index f84e9eae28..16ebd8952d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerMapper.java @@ -79,6 +79,6 @@ public interface LoanHomevisitInvestigateCustomerMapper extends BaseMapper loanContractListPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -713,6 +717,9 @@ public class LoanLawsuitApplyService extends MybatisBaseService createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = loanOutboundApplyService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitRecordApplication(SubmitOutboundDto dto) { return loanOutboundApplyService.submitRecordApplication(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java index 5b06b5a5d9..c49dda3d60 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java @@ -16,6 +16,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; @@ -30,6 +31,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; @@ -61,13 +63,18 @@ import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportAppl import com.yxt.anrui.riskcenter.biz.loansubletveh.LoanSubletVehService; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -79,6 +86,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @description: * @author: fzz @@ -92,14 +101,10 @@ public class LoanOutboundApplyService extends MybatisBaseService dataMap = new HashMap(); + LoanOutboundApply loanOutboundApply = fetchBySid(sid); + //分公司 + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(data.getOrgPath()).getData(); + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dataMap.put("orgName", sysOrganizationVo.getName()); + //创建部门 + dataMap.put("deptName", data.getDept()); + //创建人 + dataMap.put("createName", data.getApplyName()); + //创建日期 + dataMap.put("createTime", data.getApplyDate()); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(loanOutboundApply.getClosingDate())); + //审批编号 + dataMap.put("billNo", loanOutboundApply.getBillNo()); + List loanOutboundApplyPdfVos = new ArrayList<>(); + //循环获取车辆信息 + Integer i = 1; + for (OutboundVinList outboundVinList : data.getVinList()) { + LoanOutboundApplyPdfVo loanOutboundApplyPdfVo = new LoanOutboundApplyPdfVo(); + loanOutboundApplyPdfVo.setId(i); + i = i + 1; + loanOutboundApplyPdfVo.setVinNo(outboundVinList.getVinNo()); + loanOutboundApplyPdfVo.setCph(outboundVinList.getVehMark()); + loanOutboundApplyPdfVo.setLx(outboundVinList.getVehType()); + loanOutboundApplyPdfVo.setCx(outboundVinList.getVehModel()); + loanOutboundApplyPdfVo.setDd(outboundVinList.getLocation()); + loanOutboundApplyPdfVos.add(loanOutboundApplyPdfVo); + } + dataMap.put("wlList", loanOutboundApplyPdfVos); + dataMap.put("cz", data.getDisposal()); + dataMap.put("czh", data.getDisposalContractNo()); + dataMap.put("name", data.getNewCustomer()); + dataMap.put("sjh", data.getPhoneNum()); + dataMap.put("ckj", data.getAmount()); + dataMap.put("remarks", data.getRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(loanOutboundApply.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, "jhclck", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "交回车辆出库审批_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java index b4087eb1de..887a4ae574 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java @@ -1040,7 +1040,7 @@ public class LoanSolutionsService extends MybatisBaseService