From 41896edab71d0b52df16ca4e4284cf23b720adcb Mon Sep 17 00:00:00 2001 From: ligaode Date: Mon, 7 Apr 2025 17:21:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E5=8F=8A=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=80=80=E8=BD=A6=E7=94=B3=E8=AF=B7=E3=80=81=E6=94=BE?= =?UTF-8?q?=E6=AC=BE=E5=B7=AE=E9=A2=9D=E7=94=B3=E8=AF=B7=E3=80=81=E5=88=86?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E8=B0=83=E8=BD=A6=E8=B0=83=E8=B4=A6=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E3=80=81=E9=87=87=E8=B4=AD=E9=80=80=E5=BA=93=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E3=80=81=E4=BB=B7=E5=80=BC=E5=AE=A2=E6=88=B7=E5=A4=87?= =?UTF-8?q?=E6=A1=88=E7=94=B3=E8=AF=B7=E7=9A=84=E5=AE=A1=E6=89=B9pdf?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/baseaccadjapply/BaseAccadjApply.java | 47 ++--- .../BaseAccadjApplyDetailsVo.java | 17 -- .../baseaccadjapply/BaseAccadjApplyFeign.java | 5 + .../api/baseaccadjapply/BaseAccadjPdfVo.java | 52 +++++ .../BaseInternalPurchaseVehicle.java | 14 -- .../baseaccadjapply/BaseAccadjApplyRest.java | 7 + .../BaseAccadjApplyService.java | 137 +++++++++++++ .../BusSalesOrderReturnVehApply.java | 51 ++--- .../BusSalesOrderReturnVehApplyDetailsVo.java | 55 ++--- .../BusSalesOrderReturnVehApplyDto.java | 62 +++--- .../BusSalesOrderReturnVehApplyFeign.java | 20 +- ...SalesOrderReturnVehApplyFeignFallback.java | 18 +- .../BusSalesOrderReturnVehApplyVo.java | 31 +-- .../BusSalesOrderReturnVehPdfVo.java | 48 +++++ .../busvalcustfiling/BusValcustFiling.java | 45 +++-- .../BusValcustFilingDetailsVo.java | 50 ++--- .../BusValcustFilingFeign.java | 22 +- .../BusSalesOrderReturnVehApplyRest.java | 23 +-- .../BusSalesOrderReturnVehApplyService.java | 155 ++++++++++++-- .../BusValcustFilingRest.java | 190 +++++++++--------- .../BusValcustFilingService.java | 180 +++++++++++++---- .../riskcenter/api/loandiff/LoanDiff.java | 6 + .../api/loandiff/LoanDiffFeign.java | 5 + .../api/loandiff/LoanDiffPdfVo.java | 72 +++++++ .../riskcenter/biz/loandiff/LoanDiffRest.java | 7 + .../biz/loandiff/LoanDiffService.java | 128 +++++++++++- .../scmvehiclereturn/ScmVehicleReturn.java | 5 + .../ScmVehicleReturnFeign.java | 5 + .../ScmVehicleReturnPdfVo.java | 50 +++++ .../ScmVehicleReturnRest.java | 7 + .../ScmVehicleReturnService.java | 132 +++++++++++- 31 files changed, 1204 insertions(+), 442 deletions(-) create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjPdfVo.java create mode 100644 anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehPdfVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnPdfVo.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApply.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApply.java index 3829ea7242..ad59681cfc 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApply.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApply.java @@ -26,60 +26,53 @@ package com.yxt.anrui.base.api.baseaccadjapply; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -/** - * Project: anrui-base(调账管理)
- * File: BaseAccadjApply.java
- * Class: com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjApply
- * Description: 调账申请表.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-07-07 16:57:24
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ +import java.util.Date; + @Data @ApiModel(value = "调账申请表", description = "调账申请表") @TableName("base_accadj_apply") public class BaseAccadjApply extends BaseEntity { private static final long serialVersionUID = 1L; - @ApiModelProperty("申请日期") + @ApiModelProperty("申请日期") private String applyDate; // 申请日期 - @ApiModelProperty("调账类型key") + @ApiModelProperty("调账类型key") private String accadjTypeKey; // 调账类型key - @ApiModelProperty("调账类型value") + @ApiModelProperty("调账类型value") private String accadjTypeValue; // 调账类型value - @ApiModelProperty("调出分公司sid") + @ApiModelProperty("调出分公司sid") private String callOutOrgSid; // 调出分公司sid - @ApiModelProperty("调出分公司名称") + @ApiModelProperty("调出分公司名称") private String callOutOrgName; // 调出分公司名称 - @ApiModelProperty("调入分公司sid") + @ApiModelProperty("调入分公司sid") private String callInOrgSid; // 调入分公司sid - @ApiModelProperty("调入分公司名称") + @ApiModelProperty("调入分公司名称") private String callInOrgName; // 调入分公司名称 - @ApiModelProperty("使用组织sid") + @ApiModelProperty("使用组织sid") private String useOrgSid; // 使用组织sid - @ApiModelProperty("创建组织sid") + @ApiModelProperty("创建组织sid") private String createOrgSid; // 创建组织sid - @ApiModelProperty("流程定义的id") + @ApiModelProperty("流程定义的id") private String procDefId; // 流程定义的id - @ApiModelProperty("环节定义的sid") + @ApiModelProperty("环节定义的sid") private String nodeSid; // 环节定义的sid - @ApiModelProperty("流程实例的sid") + @ApiModelProperty("流程实例的sid") private String procInstId; // 流程实例的sid - @ApiModelProperty("流程状态") + @ApiModelProperty("流程状态") private String nodeState; // 流程状态 - @ApiModelProperty("taskId") + @ApiModelProperty("taskId") private String taskId; // taskId @ApiModelProperty("申请人组织路径") private String orgSidPath; // 申请人组织路径 @ApiModelProperty("申请编号") private String applyNo; // 申请编号 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyDetailsVo.java index e3a2bd3e16..d72d86741c 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyDetailsVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyDetailsVo.java @@ -25,30 +25,13 @@ *********************************************************/ package com.yxt.anrui.base.api.baseaccadjapply; - import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicle; -import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicleDetailsVo; import com.yxt.common.core.vo.Vo; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import java.util.List; -/** - * Project: anrui-base(调账管理)
- * File: BaseAccadjApplyVo.java
- * Class: com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjApplyVo
- * Description: 调账申请表 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-07-07 16:57:24
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "调账申请表 视图数据详情", description = "调账申请表 视图数据详情") public class BaseAccadjApplyDetailsVo implements Vo { diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyFeign.java index 8542825731..6f6e2f30bf 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjApplyFeign.java @@ -72,6 +72,11 @@ public interface BaseAccadjApplyFeign { @ResponseBody public ResultBean> fetchVeh(@RequestBody PagerQuery pq); + @ApiOperation("生成调账申请pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + /*************************************************PC调账审批流程***************************************************/ @ApiOperation("提交调账申请审批流程") diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjPdfVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjPdfVo.java new file mode 100644 index 0000000000..26d88e93fe --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/BaseAccadjPdfVo.java @@ -0,0 +1,52 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.base.api.baseaccadjapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BaseAccadjPdfVo implements Vo { + + private Integer id; + @ApiModelProperty("车型") + private String model; + @ApiModelProperty("常用配置") + private String config; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("库存地点") + private String address; + @ApiModelProperty("内销价格") + private String price; + @ApiModelProperty("运费") + private String yf; + @ApiModelProperty("运费承担方") + private String cdf; + @ApiModelProperty("备注") + private String remarks; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchasevehicle/BaseInternalPurchaseVehicle.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchasevehicle/BaseInternalPurchaseVehicle.java index 3be48213ac..d4404090a5 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchasevehicle/BaseInternalPurchaseVehicle.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchasevehicle/BaseInternalPurchaseVehicle.java @@ -30,22 +30,8 @@ import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import java.math.BigDecimal; -/** - * Project: anrui-base(内申请管理)
- * File: BaseInternalPurchaseVehicle.java
- * Class: com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicle
- * Description: 内购车辆表.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-06-16 13:46:25
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "内购车辆表", description = "内购车辆表") @TableName("base_internal_purchase_vehicle") diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyRest.java index 0e6989da13..8d27c6bf8e 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyRest.java @@ -84,6 +84,13 @@ public class BaseAccadjApplyRest implements BaseAccadjApplyFeign { return baseAccadjApplyService.fetchVeh(pq); } + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = baseAccadjApplyService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitAccAdjApply(SubmitBaseAccAdjApplyDto dto) { return baseAccadjApplyService.submitAccAdjApply(dto); diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java index 4d99e4f7f0..984228c244 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java @@ -55,6 +55,7 @@ import com.yxt.anrui.base.common.enums.ManPurOrderType; import com.yxt.anrui.base.common.enums.VehicleState; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; +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.bdsupplier.BdSupplier; @@ -71,6 +72,7 @@ import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo; import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign; +import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.sysorganization.SysOrganization; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; @@ -79,11 +81,21 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.portal.api.sysuser.UserRoleQuery; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffInitDetails; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffPdfVo; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo; import com.yxt.anrui.scm.api.scmapplyinboundquery.ScmApplyInboundQueryDto; import com.yxt.anrui.scm.api.scmapplyinboundquery.ScmApplyInboundQueryFeign; import com.yxt.anrui.scm.api.scmapplyinboundvehquery.ScmApplyInboundVehQueryDto; import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign; import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseVo; +import com.yxt.common.base.utils.ConstantUtils; +import com.yxt.common.base.utils.WordUtils; +import com.yxt.messagecenter.api.message.Message; +import com.yxt.messagecenter.api.message.MessageFeign; +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; @@ -97,6 +109,8 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + @Service public class BaseAccadjApplyService extends MybatisBaseService { @@ -134,6 +148,12 @@ public class BaseAccadjApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { BaseAccadjApplyQuery query = pq.getParams(); @@ -1135,4 +1155,121 @@ public class BaseAccadjApplyService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(baseAccadjApply.getCreateOrgSid()).getData(); + dataMap.put("orgName", sysOrganizationVo.getName()); + //创建部门 + String deptName = ""; + List split = Arrays.asList(data.getOrgSidPath().split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + } + dataMap.put("deptName", deptName); + //创建人 + SysUserVo sysUserVo = sysUserFeign.fetchBySid(baseAccadjApply.getCreateBySid()).getData(); + dataMap.put("createName", sysUserVo.getName()); + //创建日期 + dataMap.put("createTime", DateUtil.formatDate(baseAccadjApply.getCreateTime())); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(baseAccadjApply.getFinishTime())); + //审批编号 + dataMap.put("billNo", baseAccadjApply.getApplyNo()); + List baseAccadjPdfVos = new ArrayList<>(); + //循环获取车辆信息 + Integer i = 1; + for (BaseInternalPurchaseVehicle baseInternalPurchaseVehicle : data.getBaseInternalPurchaseVehicles()) { + BaseAccadjPdfVo baseAccadjPdfVo = new BaseAccadjPdfVo(); + baseAccadjPdfVo.setId(i); + i = i + 1; + baseAccadjPdfVo.setModel(baseInternalPurchaseVehicle.getVehicleAlias()); + baseAccadjPdfVo.setConfig(baseInternalPurchaseVehicle.getConfigName()); + baseAccadjPdfVo.setVinNo(baseInternalPurchaseVehicle.getVinNo()); + baseAccadjPdfVo.setAddress(baseInternalPurchaseVehicle.getInventoryLocationName()); + baseAccadjPdfVo.setPrice(baseInternalPurchaseVehicle.getWitPinMoney()); + baseAccadjPdfVo.setYf(baseInternalPurchaseVehicle.getFreight()); + baseAccadjPdfVo.setCdf(baseInternalPurchaseVehicle.getFreightUndertakerName()); + baseAccadjPdfVo.setRemarks(baseInternalPurchaseVehicle.getRemarks()); + baseAccadjPdfVos.add(baseAccadjPdfVo); + } + dataMap.put("wlList", baseAccadjPdfVos); + dataMap.put("type", baseAccadjApply.getAccadjTypeValue()); + dataMap.put("dc", baseAccadjApply.getCallOutOrgName()); + dataMap.put("dr", baseAccadjApply.getCallInOrgName()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(baseAccadjApply.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, "tzsq", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "调账申请_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApply.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApply.java index 4bec131809..afb00f7745 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApply.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApply.java @@ -28,7 +28,9 @@ package com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply; import com.baomidou.mybatisplus.annotation.TableName; import com.yxt.common.core.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; + import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -52,52 +54,55 @@ import lombok.Data; public class BusSalesOrderReturnVehApply extends BaseEntity { private static final long serialVersionUID = 1L; - @ApiModelProperty("申请人姓名") + @ApiModelProperty("申请人姓名") private String createByName; // 申请人姓名 - @ApiModelProperty("销售类型key") + @ApiModelProperty("销售类型key") private String saleTypeKey; // 销售类型key - @ApiModelProperty("销售类型value") + @ApiModelProperty("销售类型value") private String saleTypeValue; // 销售类型value - @ApiModelProperty("成交价") + @ApiModelProperty("成交价") private String salePrice; // 成交价 - @ApiModelProperty("收款情况") + @ApiModelProperty("收款情况") private String collection; // 收款情况 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("客户sid") + @ApiModelProperty("客户sid") private String customerSid; // 客户sid - @ApiModelProperty("客户编码") + @ApiModelProperty("客户编码") private String customerNo; // 客户编码 - @ApiModelProperty("客户名称") + @ApiModelProperty("客户名称") private String customerName; // 客户名称 - @ApiModelProperty("车型sid") + @ApiModelProperty("车型sid") private String modelSid; // 车型sid - @ApiModelProperty("车型小名") + @ApiModelProperty("车型小名") private String modelName; // 车型小名 - @ApiModelProperty("订单台数") + @ApiModelProperty("订单台数") private String orderNum; // 订单台数 - @ApiModelProperty("终止台数") + @ApiModelProperty("终止台数") private String stopNum; // 终止台数 - @ApiModelProperty("终止原因") + @ApiModelProperty("终止原因") private String stopRemarks; // 终止原因 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("节点状态") + @ApiModelProperty("节点状态") private String nodeState; // 节点状态 - @ApiModelProperty("流程定义id") + @ApiModelProperty("流程定义id") private String procDefId; // 流程定义id - @ApiModelProperty("环节定义id") + @ApiModelProperty("环节定义id") private String nodeSid; // 环节定义id - @ApiModelProperty("流程实例id") + @ApiModelProperty("流程实例id") private String procInstId; // 流程实例id - @ApiModelProperty("任务编号id") + @ApiModelProperty("任务编号id") private String taskId; // 任务编号id - @ApiModelProperty("组织机构全路径sid") + @ApiModelProperty("组织机构全路径sid") private String orgSidPath; // 组织机构全路径sid - @ApiModelProperty("申请编号") + @ApiModelProperty("申请编号") private String applyNo; // 申请编号 @ApiModelProperty("销售订单sid") private String orderSid; // 销售订单sid + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDetailsVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDetailsVo.java index 6e8edff6b2..cc016d1f50 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDetailsVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDetailsVo.java @@ -25,7 +25,6 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply; - import com.yxt.anrui.buscenter.api.bussalesorderreturnveh.BusSalesOrderReturnVehDetailsVo; import com.yxt.common.core.vo.Vo; @@ -39,19 +38,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyVo.java
- * Class: com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyVo
- * Description: 销售订单车辆退库申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "销售订单车辆退库申请 视图数据详情", description = "销售订单车辆退库申请 视图数据详情") public class BusSalesOrderReturnVehApplyDetailsVo implements Vo { @@ -62,23 +48,23 @@ public class BusSalesOrderReturnVehApplyDetailsVo implements Vo { private String remarks; @ApiModelProperty("申请人sid") private String createBySid; // 申请人sid - @ApiModelProperty("申请人姓名") + @ApiModelProperty("申请人姓名") private String createByName; // 申请人姓名 - @ApiModelProperty("销售类型key") + @ApiModelProperty("销售类型key") private String saleTypeKey; // 销售类型key - @ApiModelProperty("销售类型value") + @ApiModelProperty("销售类型value") private String saleTypeValue; // 销售类型value - @ApiModelProperty("成交价") + @ApiModelProperty("成交价") private String salePrice; // 成交价 - @ApiModelProperty("收款情况") + @ApiModelProperty("收款情况") private String collection; // 收款情况 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("客户sid") + @ApiModelProperty("客户sid") private String customerSid; // 客户sid - @ApiModelProperty("客户编码") + @ApiModelProperty("客户编码") private String customerNo; // 客户编码 - @ApiModelProperty("客户名称") + @ApiModelProperty("客户名称") private String customerName; // 客户名称 @ApiModelProperty(value = "客户头像") private String customerPhoto; @@ -90,25 +76,25 @@ public class BusSalesOrderReturnVehApplyDetailsVo implements Vo { private String modelImage; // 车型图片 @ApiModelProperty("配置sid") private String configSid; // 配置sid - @ApiModelProperty("车型sid") + @ApiModelProperty("车型sid") private String modelSid; // 车型sid - @ApiModelProperty("车型小名") + @ApiModelProperty("车型小名") private String modelName; // 车型小名 - @ApiModelProperty("订单台数") + @ApiModelProperty("订单台数") private String orderNum; // 订单台数 - @ApiModelProperty("终止原因") + @ApiModelProperty("终止原因") private String stopRemarks; // 终止原因 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("流程实例id") + @ApiModelProperty("流程实例id") private String procInstId; // 流程实例id - @ApiModelProperty("任务编号id") + @ApiModelProperty("任务编号id") private String taskId; // 任务编号id - @ApiModelProperty("组织机构全路径sid") + @ApiModelProperty("组织机构全路径sid") private String orgSidPath; // 组织机构全路径sid - @ApiModelProperty("申请编号") + @ApiModelProperty("申请编号") private String applyNo; // 申请编号 @ApiModelProperty("资金来源") private String fundsSource; //资金来源 @@ -116,6 +102,9 @@ public class BusSalesOrderReturnVehApplyDetailsVo implements Vo { private String creatTime; //制单日期 @ApiModelProperty("销售订单sid") private String orderSid; // 销售订单sid + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; @ApiModelProperty("退库车辆列表") private List busSalesOrderReturnVehs = new ArrayList<>(); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDto.java index 11d0dde0f5..1cb70efd87 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDto.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyDto.java @@ -25,11 +25,11 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply; - import com.yxt.anrui.buscenter.api.bussalesorderreturnveh.BusSalesOrderReturnVehDto; import com.yxt.common.core.dto.Dto; import com.fasterxml.jackson.annotation.JsonFormat; + import java.util.Date; import java.util.List; @@ -37,77 +37,63 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyDto.java
- * Class: com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyDto
- * Description: 销售订单车辆退库申请 数据传输对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "销售订单车辆退库申请 数据传输对象", description = "销售订单车辆退库申请 数据传输对象") public class BusSalesOrderReturnVehApplyDto implements Dto { private String sid; // sid - @ApiModelProperty(value = "备注") private String remarks; @ApiModelProperty("申请人sid") private String createBySid; // 申请人sid - @ApiModelProperty("申请人姓名") + @ApiModelProperty("申请人姓名") private String createByName; // 申请人姓名 - @ApiModelProperty("销售类型key") + @ApiModelProperty("销售类型key") private String saleTypeKey; // 销售类型key - @ApiModelProperty("销售类型value") + @ApiModelProperty("销售类型value") private String saleTypeValue; // 销售类型value - @ApiModelProperty("成交价") + @ApiModelProperty("成交价") private String salePrice; // 成交价 - @ApiModelProperty("收款情况") + @ApiModelProperty("收款情况") private String collection; // 收款情况 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("客户sid") + @ApiModelProperty("客户sid") private String customerSid; // 客户sid - @ApiModelProperty("客户编码") + @ApiModelProperty("客户编码") private String customerNo; // 客户编码 - @ApiModelProperty("客户名称") + @ApiModelProperty("客户名称") private String customerName; // 客户名称 - @ApiModelProperty("车型sid") + @ApiModelProperty("车型sid") private String modelSid; // 车型sid - @ApiModelProperty("车型小名") + @ApiModelProperty("车型小名") private String modelName; // 车型小名 - @ApiModelProperty("订单台数") + @ApiModelProperty("订单台数") private String orderNum; // 订单台数 - @ApiModelProperty("终止台数") + @ApiModelProperty("终止台数") private String stopNum; // 终止台数 - @ApiModelProperty("终止原因") + @ApiModelProperty("终止原因") private String stopRemarks; // 终止原因 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("节点状态") + @ApiModelProperty("节点状态") private String nodeState; // 节点状态 - @ApiModelProperty("流程定义id") + @ApiModelProperty("流程定义id") private String procDefId; // 流程定义id - @ApiModelProperty("环节定义id") + @ApiModelProperty("环节定义id") private String nodeSid; // 环节定义id - @ApiModelProperty("流程实例id") + @ApiModelProperty("流程实例id") private String procInstId; // 流程实例id - @ApiModelProperty("任务编号id") + @ApiModelProperty("任务编号id") private String taskId; // 任务编号id @ApiModelProperty("组织机构全路径sid") private String orgPath; // 组织机构全路径sid - @ApiModelProperty("组织机构全路径sid") + @ApiModelProperty("组织机构全路径sid") private String orgSidPath; // 组织机构全路径sid - @ApiModelProperty("申请编号") + @ApiModelProperty("申请编号") private String applyNo; // 申请编号 @ApiModelProperty("销售订单sid") private String orderSid; // 销售订单sid diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeign.java index f86c890322..8791a3f813 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeign.java @@ -34,23 +34,9 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; - import javax.validation.Valid; import java.util.List; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyFeign.java
- * Class: com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyFeign
- * Description: 销售订单车辆退库申请.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "销售订单车辆退库申请") @FeignClient( contextId = "anrui-buscenter-BusSalesOrderReturnVehApply", @@ -93,6 +79,12 @@ public interface BusSalesOrderReturnVehApplyFeign { @GetMapping("/appFetchDetailsBySid") @ResponseBody public ResultBean appFetchDetailsBySid(@RequestParam("orderSid") String orderSid, @RequestParam(value = "sid",required = false) String sid); + + @ApiOperation("生成销售退车pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + /***********************************************流程************************************************/ @ApiOperation("提交销售订单退车申请审批流程") diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeignFallback.java index eb05542592..2b7ef56ad1 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyFeignFallback.java @@ -33,19 +33,6 @@ import org.springframework.stereotype.Component; import java.util.List; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyFeignFallback.java
- * Class: com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyFeignFallback
- * Description: 销售订单车辆退库申请.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Component public class BusSalesOrderReturnVehApplyFeignFallback implements BusSalesOrderReturnVehApplyFeign { @@ -86,6 +73,11 @@ public class BusSalesOrderReturnVehApplyFeignFallback implements BusSalesOrderRe return null; } + @Override + public ResultBean createPdf(String sid, String userName) { + return null; + } + @Override public ResultBean submitVehicleApply(SubmitBusSalesOrderReturnVehApplyDto dto) { return null; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyVo.java index 84faaab0db..b2d255078c 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyVo.java @@ -25,28 +25,13 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply; - import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import java.util.Date; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyVo.java
- * Class: com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyVo
- * Description: 销售订单车辆退库申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "销售订单车辆退库申请 视图数据对象", description = "销售订单车辆退库申请 视图数据对象") public class BusSalesOrderReturnVehApplyVo implements Vo { @@ -56,21 +41,21 @@ public class BusSalesOrderReturnVehApplyVo implements Vo { @ApiModelProperty("申请日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; // 申请日期 - @ApiModelProperty("申请人姓名") + @ApiModelProperty("申请人姓名") private String createByName; // 申请人姓名 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("客户名称") + @ApiModelProperty("客户名称") private String customerName; // 客户名称 - @ApiModelProperty("车型小名") + @ApiModelProperty("车型小名") private String modelName; // 车型小名 - @ApiModelProperty("订单台数") + @ApiModelProperty("订单台数") private String orderNum; // 订单台数 - @ApiModelProperty("终止台数") + @ApiModelProperty("终止台数") private String stopNum; // 终止台数 - @ApiModelProperty("终止原因") + @ApiModelProperty("终止原因") private String stopRemarks; // 终止原因 - @ApiModelProperty("节点状态") + @ApiModelProperty("节点状态") private String nodeState; // 节点状态 @ApiModelProperty("流程实例id") private String procInsId; // 流程实例id diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehPdfVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehPdfVo.java new file mode 100644 index 0000000000..08bb5a8a74 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnvehapply/BusSalesOrderReturnVehPdfVo.java @@ -0,0 +1,48 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BusSalesOrderReturnVehPdfVo implements Vo { + + private Integer id; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("颜色") + private String color; + @ApiModelProperty("合格证状态") + private String hgzState; + @ApiModelProperty("开票状态") + private String kpState; + @ApiModelProperty("投保状态") + private String tbState; + @ApiModelProperty("库存状态") + private String kcState; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java index d638e2acb8..cb69177b41 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java @@ -26,11 +26,14 @@ package com.yxt.anrui.buscenter.api.busvalcustfiling; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * Project: anrui-buscenter(价值客户备案申请)
* File: BusValcustFiling.java
@@ -50,43 +53,43 @@ import lombok.Data; public class BusValcustFiling extends BaseEntity { private static final long serialVersionUID = 1L; - @ApiModelProperty("创建人姓名") + @ApiModelProperty("创建人姓名") private String createByName; // 创建人姓名 - @ApiModelProperty("申请编号") + @ApiModelProperty("申请编号") private String billNo; // 申请编号 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("申请部门sid") + @ApiModelProperty("申请部门sid") private String applyDeptSid; // 申请部门sid - @ApiModelProperty("申请部门名称") + @ApiModelProperty("申请部门名称") private String applyDeptName; // 申请部门名称 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("车型sid") + @ApiModelProperty("车型sid") private String modelSid; // 车型sid - @ApiModelProperty("车型名称") + @ApiModelProperty("车型名称") private String modelName; // 车型名称 - @ApiModelProperty("车辆sid") + @ApiModelProperty("车辆sid") private String vinSid; // 车辆sid - @ApiModelProperty("车架号") + @ApiModelProperty("车架号") private String vinNo; // 车架号 @ApiModelProperty("0高开,1低开") private String isGdk; - @ApiModelProperty("加装配置/销售让利金额") + @ApiModelProperty("加装配置/销售让利金额") private String money; // 加装配置/销售让利金额 - @ApiModelProperty("应收手续费") + @ApiModelProperty("应收手续费") private String ysMoney; // 应收手续费 - @ApiModelProperty("实收手续费") + @ApiModelProperty("实收手续费") private String ssMoney; // 实收手续费 - @ApiModelProperty("节点状态") + @ApiModelProperty("节点状态") private String nodeState; // 节点状态 - @ApiModelProperty("流程定义id") + @ApiModelProperty("流程定义id") private String procDefId; // 流程定义id - @ApiModelProperty("环节定义id") + @ApiModelProperty("环节定义id") private String nodeId; // 环节定义id - @ApiModelProperty("流程实例id") + @ApiModelProperty("流程实例id") private String procInstId; // 流程实例id @ApiModelProperty("任务id") private String taskId; @@ -96,7 +99,9 @@ public class BusValcustFiling extends BaseEntity { private String busSid; @ApiModelProperty("业务来源") private String busSource; - @ApiModelProperty("组织机构全路径sid") + @ApiModelProperty("组织机构全路径sid") private String orgSidPath; // 组织机构全路径sid - + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java index 273eb8812b..6676c38e61 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java @@ -25,28 +25,12 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.busvalcustfiling; - import com.yxt.common.core.vo.Vo; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import java.util.List; -/** - * Project: anrui-buscenter(价值客户备案申请)
- * File: BusValcustFilingVo.java
- * Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo
- * Description: 价值客户备案申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-09-15 11:38:12
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data @ApiModel(value = "价值客户备案申请 视图数据详情", description = "价值客户备案申请 视图数据详情") public class BusValcustFilingDetailsVo implements Vo { @@ -55,49 +39,49 @@ public class BusValcustFilingDetailsVo implements Vo { @ApiModelProperty("备注") private String remarks; - @ApiModelProperty("创建人姓名") + @ApiModelProperty("创建人姓名") private String createByName; // 创建人姓名 - @ApiModelProperty("申请编号") + @ApiModelProperty("申请编号") private String billNo; // 申请编号 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("申请部门sid") + @ApiModelProperty("申请部门sid") private String applyDeptSid; // 申请部门sid - @ApiModelProperty("申请部门名称") + @ApiModelProperty("申请部门名称") private String applyDeptName; // 申请部门名称 - @ApiModelProperty("合同编号") + @ApiModelProperty("合同编号") private String contractNo; // 合同编号 - @ApiModelProperty("车型sid") + @ApiModelProperty("车型sid") private String modelSid; // 车型sid - @ApiModelProperty("车型名称") + @ApiModelProperty("车型名称") private String modelName; // 车型名称 - @ApiModelProperty("车辆sid") + @ApiModelProperty("车辆sid") private String vinSid; // 车辆sid - @ApiModelProperty("车架号") + @ApiModelProperty("车架号") private String vinNo; // 车架号 @ApiModelProperty("0高开,1低开") private String isGdk; - @ApiModelProperty("加装配置/销售让利金额") + @ApiModelProperty("加装配置/销售让利金额") private String money; // 加装配置/销售让利金额 @ApiModelProperty("合计加装配置/销售让利金额") private String totalMoney; // 合计加装配置/销售让利金额 @ApiModelProperty("台数") private String num; - @ApiModelProperty("应收手续费") + @ApiModelProperty("应收手续费") private String ysMoney; // 应收手续费 - @ApiModelProperty("实收手续费") + @ApiModelProperty("实收手续费") private String ssMoney; // 实收手续费 @ApiModelProperty("销售订单sid") private String saleOrderSid; @ApiModelProperty("任务id") private String taskId; - @ApiModelProperty("流程定义id") + @ApiModelProperty("流程定义id") private String procDefId; // 流程定义id - @ApiModelProperty("流程实例id") + @ApiModelProperty("流程实例id") private String procInstId; // 流程实例id - @ApiModelProperty("组织机构全路径sid") + @ApiModelProperty("组织机构全路径sid") private String orgSidPath; // 组织机构全路径sid @ApiModelProperty("附件") private List fjImages; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java index ea26d2b39e..a2ae96f0e4 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java @@ -38,19 +38,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; -/** - * Project: anrui-buscenter(价值客户备案申请)
- * File: BusValcustFilingFeign.java
- * Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign
- * Description: 价值客户备案申请.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-09-15 11:38:12
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "价值客户备案申请") @FeignClient( contextId = "anrui-buscenter-BusValcustFiling", @@ -73,12 +60,17 @@ public interface BusValcustFilingFeign { @DeleteMapping("/delBySids") @ResponseBody public ResultBean delBySids(@RequestBody String[] sids); - + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + @ApiOperation("生成客户备案pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + @ApiOperation("提交审批流程") @PostMapping("/submit") public ResultBean submit(@RequestBody @Valid SubmitBusValcustFilingDto dto); @@ -110,7 +102,7 @@ public interface BusValcustFilingFeign { @ApiOperation("根据合同号和车架号查询") @PostMapping("/selectByContractNoAndVinNo") @ResponseBody - ResultBean selectByContractNoAndVinNo(@RequestParam("contractNo") String contractNo,@RequestParam("vinNo") String vinNo); + ResultBean selectByContractNoAndVinNo(@RequestParam("contractNo") String contractNo, @RequestParam("vinNo") String vinNo); @ApiOperation("手机端-查询本分公司下代办数量:切换机构") @GetMapping("/getToDoNum") diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyRest.java index 90c4c4c45c..a7a758ca1f 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyRest.java @@ -37,24 +37,10 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - import java.util.List; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyFeignFallback.java
- * Class: com.yxt.anrui.buscenter.biz.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyRest
- * Description: 销售订单车辆退库申请.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "销售订单车辆退库申请") -@RestController("com.yxt.anrui.buscenter.biz.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyRest") +@RestController @RequestMapping("v1/bussalesorderreturnvehapply") public class BusSalesOrderReturnVehApplyRest implements BusSalesOrderReturnVehApplyFeign { @@ -106,6 +92,13 @@ public class BusSalesOrderReturnVehApplyRest implements BusSalesOrderReturnVehAp return busSalesOrderReturnVehApplyService.appFetchDetailsBySid(orderSid,sid); } + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = busSalesOrderReturnVehApplyService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitVehicleApply(SubmitBusSalesOrderReturnVehApplyDto dto) { return busSalesOrderReturnVehApplyService.submitVehicleApply(dto); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java index 748f9b37f6..541b3f682b 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java @@ -75,6 +75,7 @@ import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleServ import com.yxt.anrui.buscenter.biz.bussalesreturnorders.BusSalesReturnOrdersService; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed; @@ -93,6 +94,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; @@ -100,10 +102,18 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateFeign; +import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehRebateCheckPdfVo; +import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDetailsVo; +import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo; import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.utils.ConstantUtils; +import com.yxt.common.base.utils.WordUtils; +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; @@ -120,19 +130,8 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; -/** - * Project: anrui_buscenter(销售订单退车)
- * File: BusSalesOrderReturnVehApplyService.java
- * Class: com.yxt.anrui.buscenter.biz.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyService
- * Description: 销售订单车辆退库申请 业务逻辑.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-03-09 14:26:23
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ +import static java.util.Comparator.comparing; + @Service public class BusSalesOrderReturnVehApplyService extends MybatisBaseService { @@ -174,21 +173,22 @@ public class BusSalesOrderReturnVehApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { @@ -750,19 +750,18 @@ public class BusSalesOrderReturnVehApplyService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + dataMap.put("orgName", data.getUseOrgName()); + //创建部门 + String deptName = ""; + List split = Arrays.asList(data.getOrgSidPath().split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + } + dataMap.put("deptName", deptName); + //创建人 + dataMap.put("createName", data.getCreateByName()); + //创建日期 + dataMap.put("createTime", data.getCreatTime()); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(data.getFinishTime())); + //审批编号 + dataMap.put("billNo", data.getApplyNo()); + List busSalesOrderReturnVehPdfVos = new ArrayList<>(); + //循环获取车辆信息 + Integer i = 1; + for (BusSalesOrderReturnVehDetailsVo busSalesOrderReturnVehDetailsVo : data.getBusSalesOrderReturnVehs()) { + BusSalesOrderReturnVehPdfVo busSalesOrderReturnVehPdfVo = new BusSalesOrderReturnVehPdfVo(); + busSalesOrderReturnVehPdfVo.setId(i); + i = i + 1; + busSalesOrderReturnVehPdfVo.setVinNo(busSalesOrderReturnVehDetailsVo.getVinNo()); + busSalesOrderReturnVehPdfVo.setColor(busSalesOrderReturnVehDetailsVo.getCarColorValue()); + busSalesOrderReturnVehPdfVo.setHgzState(busSalesOrderReturnVehDetailsVo.getCertificateStateValue()); + busSalesOrderReturnVehPdfVo.setKpState(busSalesOrderReturnVehDetailsVo.getInvoicingStateValue()); + busSalesOrderReturnVehPdfVo.setTbState(busSalesOrderReturnVehDetailsVo.getInsureStateValue()); + busSalesOrderReturnVehPdfVo.setKcState(busSalesOrderReturnVehDetailsVo.getStockStateValue()); + busSalesOrderReturnVehPdfVos.add(busSalesOrderReturnVehPdfVo); + } + dataMap.put("wlList", busSalesOrderReturnVehPdfVos); + dataMap.put("contractNo", data.getContractNo()); + dataMap.put("saleType", data.getSaleTypeValue()); + dataMap.put("model", data.getModelName()); + dataMap.put("num", data.getOrderNum()); + dataMap.put("skqk", data.getCollection()); + dataMap.put("zzyy", data.getStopRemarks()); + 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, "xstc", 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-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java index 9dfcb8c98f..d1f57274d3 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java @@ -40,108 +40,102 @@ import org.springframework.web.bind.annotation.*; import java.util.List; -/** - * Project: anrui-buscenter(价值客户备案申请)
- * File: BusValcustFilingFeignFallback.java
- * Class: com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingRest
- * Description: 价值客户备案申请.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-09-15 11:38:12
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "价值客户备案申请") -@RestController("com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingRest") +@RestController @RequestMapping("v1/busvalcustfiling") public class BusValcustFilingRest implements BusValcustFilingFeign { - @Autowired - private BusValcustFilingService busValcustFilingService; - - @Override - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = busValcustFilingService.listPageVo(pq); - return rb.success().setData(pv); - } - - @Override - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody BusValcustFilingDto dto){ - ResultBean rb = ResultBean.fireFail(); - busValcustFilingService.saveOrUpdateDto(dto); - return rb.success(); - } - - @Override - @ApiOperation("根据sid批量删除") + @Autowired + private BusValcustFilingService busValcustFilingService; + + @Override + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = busValcustFilingService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody BusValcustFilingDto dto) { + ResultBean rb = ResultBean.fireFail(); + busValcustFilingService.saveOrUpdateDto(dto); + return rb.success(); + } + + @Override + @ApiOperation("根据sid批量删除") @PostMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - busValcustFilingService.delBySids(sids); - return rb.success(); - } - - @Override - @ApiOperation("根据SID获取一条记录") + public ResultBean delBySids(@RequestBody String[] sids) { + ResultBean rb = ResultBean.fireFail(); + busValcustFilingService.delBySids(sids); + return rb.success(); + } + + @Override + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - BusValcustFilingDetailsVo vo = busValcustFilingService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } - - @Override - public ResultBean submit(SubmitBusValcustFilingDto dto) { - return busValcustFilingService.submit(dto); - } - - @Override - public ResultBean complete(BusValcustFilingCompleteDto query) { - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); - return busValcustFilingService.complete(bv); - } - - @Override - public ResultBean> getPreviousNodesForReject(BusValcustFilingNodeQuery query) { - return busValcustFilingService.getPreviousNodesForReject(query); - } - - @Override - public ResultBean> getNextNodesForSubmit(BusValcustFilingNodeQuery query) { - return busValcustFilingService.getNextNodesForSubmit(query); - } - - @Override - public ResultBean reject(BusValcustFilingTaskQuery query) { - return busValcustFilingService.reject(query); - } - - @Override - public ResultBean revokeProcess(BusValcustFilingTaskQuery query) { - return busValcustFilingService.revokeProcess(query); - } - - @Override - public ResultBean breakProcess(BusValcustFilingTaskQuery query) { - return busValcustFilingService.breakProcess(query); - } - - @Override - public ResultBean selectByContractNoAndVinNo(String contractNo, String vinNo) { - return busValcustFilingService.selectByContractNoAndVinNo(contractNo,vinNo); - } - - @Override - public ResultBean getToDoNum(BusToDoNumQuery appToDoNumQuery) { - return busValcustFilingService.getToDoNum(appToDoNumQuery); - } + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid) { + ResultBean rb = ResultBean.fireFail(); + BusValcustFilingDetailsVo vo = busValcustFilingService.fetchDetailsVoBySid(sid); + return rb.success().setData(vo); + } + + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = busValcustFilingService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + + @Override + public ResultBean submit(SubmitBusValcustFilingDto dto) { + return busValcustFilingService.submit(dto); + } + + @Override + public ResultBean complete(BusValcustFilingCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); + return busValcustFilingService.complete(bv); + } + + @Override + public ResultBean> getPreviousNodesForReject(BusValcustFilingNodeQuery query) { + return busValcustFilingService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(BusValcustFilingNodeQuery query) { + return busValcustFilingService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean reject(BusValcustFilingTaskQuery query) { + return busValcustFilingService.reject(query); + } + + @Override + public ResultBean revokeProcess(BusValcustFilingTaskQuery query) { + return busValcustFilingService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(BusValcustFilingTaskQuery query) { + return busValcustFilingService.breakProcess(query); + } + + @Override + public ResultBean selectByContractNoAndVinNo(String contractNo, String vinNo) { + return busValcustFilingService.selectByContractNoAndVinNo(contractNo, vinNo); + } + + @Override + public ResultBean getToDoNum(BusToDoNumQuery appToDoNumQuery) { + return busValcustFilingService.getToDoNum(appToDoNumQuery); + } } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java index 2a8051416d..609f963092 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java @@ -30,6 +30,10 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjApply; +import com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjApplyDetailsVo; +import com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjPdfVo; +import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicle; import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicle; @@ -69,6 +73,7 @@ import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleFeign; import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo; import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedDto; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; @@ -84,6 +89,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; @@ -94,9 +100,14 @@ import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply; import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyNodeVo; import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.SubmitLoanCreditApplyDto; import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.utils.ConstantUtils; +import com.yxt.common.base.utils.WordUtils; +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; @@ -111,6 +122,8 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * Project: anrui-buscenter(价值客户备案申请)
* File: BusValcustFilingService.java
@@ -174,7 +187,9 @@ public class BusValcustFilingService extends MybatisBaseService listPageVo(PagerQuery pq) { BusValcustFilingQuery query = pq.getParams(); @@ -463,7 +478,7 @@ public class BusValcustFilingService extends MybatisBaseService busBillVehicleVos = busBillVehicleService.fetchVehBySid(busBillApplication.getSid()); @@ -498,7 +513,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillVehicleVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -506,9 +521,9 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busBillVehicleVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); @@ -546,7 +561,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillTrailerVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -554,9 +569,9 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busBillTrailerVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); @@ -602,7 +617,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(finBillVehicleVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -610,18 +625,18 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(finBillVehicleVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); } } - if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())){ + if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())) { finVehicleInvoiceDto.setIsTakeTicket("是"); - }else { + } else { finVehicleInvoiceDto.setIsTakeTicket(finBillApplication.getIsLQOrigInvoice()); } finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); @@ -654,7 +669,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(finBillTrailerVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -662,18 +677,18 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(finBillTrailerVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); } } - if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())){ + if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())) { finVehicleInvoiceDto.setIsTakeTicket("是"); - }else { + } else { finVehicleInvoiceDto.setIsTakeTicket(finBillApplication.getIsLQOrigInvoice()); } finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); @@ -681,7 +696,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillVehicleVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -758,9 +773,9 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busBillVehicleVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); @@ -798,7 +813,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillTrailerVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -806,9 +821,9 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busBillTrailerVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); @@ -854,7 +869,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(finBillVehicleVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -862,18 +877,18 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(finBillVehicleVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); } } - if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())){ + if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())) { finVehicleInvoiceDto.setIsTakeTicket("是"); - }else { + } else { finVehicleInvoiceDto.setIsTakeTicket(finBillApplication.getIsLQOrigInvoice()); } finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); @@ -906,7 +921,7 @@ public class BusValcustFilingService extends MybatisBaseService finCompanyInvoicingDetailsVoResultBean = finCompanyInvoicingFeign.fetchDetailsVoBySid(finBillTrailerVo.getOpenTickSid()); - if(finCompanyInvoicingDetailsVoResultBean.getData() != null){ + if (finCompanyInvoicingDetailsVoResultBean.getData() != null) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingDetailsVoResultBean.getData(); finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); @@ -914,18 +929,18 @@ public class BusValcustFilingService extends MybatisBaseService crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(finBillTrailerVo.getOpenTickSid()); - if(crmCustomerTempVoResultBean.getData() != null){ + if (crmCustomerTempVoResultBean.getData() != null) { CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempVoResultBean.getData(); finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); } } - if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())){ + if (StringUtils.isBlank(finBillApplication.getIsLQOrigInvoice())) { finVehicleInvoiceDto.setIsTakeTicket("是"); - }else { + } else { finVehicleInvoiceDto.setIsTakeTicket(finBillApplication.getIsLQOrigInvoice()); } finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); @@ -1118,4 +1133,99 @@ public class BusValcustFilingService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + dataMap.put("orgName", busValcustFilingDetailsVo.getUseOrgName()); + //创建部门 + dataMap.put("deptName", busValcustFilingDetailsVo.getApplyDeptName()); + //创建人 + dataMap.put("createName", busValcustFilingDetailsVo.getCreateByName()); + //创建日期 + dataMap.put("createTime", DateUtil.formatDate(busValcustFiling.getCreateTime())); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(busValcustFiling.getFinishTime())); + //审批编号 + dataMap.put("billNo", busValcustFilingDetailsVo.getBillNo()); + dataMap.put("hth", busValcustFilingDetailsVo.getContractNo()); + dataMap.put("model", busValcustFilingDetailsVo.getModelName()); + dataMap.put("vinNo", busValcustFilingDetailsVo.getVinNo()); + dataMap.put("je", busValcustFilingDetailsVo.getMoney()); + dataMap.put("hj", busValcustFilingDetailsVo.getTotalMoney()); + dataMap.put("yssxf", busValcustFilingDetailsVo.getYsMoney()); + dataMap.put("sssxf", busValcustFilingDetailsVo.getSsMoney()); + dataMap.put("ce", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).subtract(new BigDecimal(busValcustFilingDetailsVo.getSsMoney()))); + dataMap.put("yssxfhj", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum()))); + dataMap.put("sssxfhj", new BigDecimal(busValcustFilingDetailsVo.getSsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum()))); + BigDecimal yssxfhj = (BigDecimal) dataMap.get("yssxfhj"); + BigDecimal sssxfhj = (BigDecimal) dataMap.get("sssxfhj"); + dataMap.put("cehj", yssxfhj.subtract(sssxfhj)); + dataMap.put("remarks", busValcustFilingDetailsVo.getRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(busValcustFiling.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(sid).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, "khba", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "客户备案_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java index f58090ecbe..856ffef3a0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java @@ -1,9 +1,12 @@ package com.yxt.anrui.riskcenter.api.loandiff; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @description: * @author: dimengzhe @@ -38,4 +41,7 @@ public class LoanDiff extends BaseEntity { private String useOrgSid; @ApiModelProperty("分公司名称") private String useOrgName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java index d9f77f8edf..14986f30ef 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java @@ -41,6 +41,11 @@ public interface LoanDiffFeign { @GetMapping("/details") ResultBean details(@RequestParam("sid") String sid); + @ApiOperation("生成放款差额pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + @ApiOperation("提交") @PostMapping("/submitDiffApply") public ResultBean submitDiffApply(@Valid @RequestBody SubmitDiffDto dto); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java new file mode 100644 index 0000000000..383a3bcf43 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java @@ -0,0 +1,72 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class LoanDiffPdfVo implements Vo { + + private Integer id; + @ApiModelProperty("资方") + private String zf; + @ApiModelProperty("贷款人") + private String dkr; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("放款金额-应放") + private String yf1; + @ApiModelProperty("放款金额-实放") + private String sf2; + @ApiModelProperty("放款金额-差额") + private String ce3; + @ApiModelProperty("主产品厂家贴息-预计") + private String yj4; + @ApiModelProperty("主产品厂家贴息-实际") + private String sj5; + @ApiModelProperty("主产品厂家贴息-差额") + private String ce6; + @ApiModelProperty("其他融厂家贴息-预计") + private String yj7; + @ApiModelProperty("其他融厂家贴息-实际") + private String sj8; + @ApiModelProperty("其他融厂家贴息-差额") + private String ce9; + @ApiModelProperty("固定贷款保证金-预计") + private String yj10; + @ApiModelProperty("固定贷款保证金-实际") + private String sj11; + @ApiModelProperty("固定贷款保证金-差额") + private String ce12; + @ApiModelProperty("意外险-已收") + private String ys13; + @ApiModelProperty("意外险-实际") + private String sj14; + @ApiModelProperty("意外险-差额") + private String ce15; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java index 225ea0022f..445aa19f23 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java @@ -48,6 +48,13 @@ public class LoanDiffRest implements LoanDiffFeign { return loanDiffService.details(sid); } + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = loanDiffService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitDiffApply(SubmitDiffDto dto) { return loanDiffService.submitDiffApply(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java index f9461b9062..e481d0c47d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -14,7 +14,11 @@ 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.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.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; @@ -29,6 +33,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; @@ -57,14 +62,19 @@ import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateFeign; import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVehDto; 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.StringUtils; +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.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -76,6 +86,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @description: * @author: dimengzhe @@ -86,10 +98,8 @@ public class LoanDiffService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + dataMap.put("orgName", loanDiff.getUseOrgName()); + //创建部门 + dataMap.put("deptName", loanDiff.getCreateDept()); + //创建人 + dataMap.put("createName", loanDiff.getCreateByName()); + //创建日期 + dataMap.put("createTime", DateUtil.formatDate(loanDiff.getCreateTime())); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(loanDiff.getFinishTime())); + //审批编号 + dataMap.put("billNo", loanDiff.getBillNo()); + List loanDiffPdfVos = new ArrayList<>(); + //循环获取车辆信息 + Integer i = 1; + for (LoanDiffDetailssVo loanDiffDetailssVo : data.getLoanDiffDetails()) { + LoanDiffPdfVo loanDiffPdfVo = new LoanDiffPdfVo(); + loanDiffPdfVo.setId(i); + i = i + 1; + loanDiffPdfVo.setZf(loanDiffDetailssVo.getBankName()); + loanDiffPdfVo.setDkr(loanDiffDetailssVo.getBorrowName()); + loanDiffPdfVo.setVinNo(loanDiffDetailssVo.getVinNo()); + loanDiffPdfVo.setYf1(loanDiffDetailssVo.getMakeLoan().toString()); + loanDiffPdfVo.setSf2(loanDiffDetailssVo.getRealityLoan().toString()); + loanDiffPdfVo.setCe3(loanDiffDetailssVo.getDiffLoan().toString()); + loanDiffPdfVo.setYj4(loanDiffDetailssVo.getMakeDiscount().toString()); + loanDiffPdfVo.setSj5(loanDiffDetailssVo.getRealityOtherDiscount().toString()); + loanDiffPdfVo.setCe6(loanDiffDetailssVo.getDiffDiscount().toString()); + loanDiffPdfVo.setYj7(loanDiffDetailssVo.getMakeOtherDiscount().toString()); + loanDiffPdfVo.setSj8(loanDiffDetailssVo.getDiffOtherDiscount().toString()); + loanDiffPdfVo.setCe9(loanDiffDetailssVo.getDiffOtherDiscount().toString()); + loanDiffPdfVo.setYj10(loanDiffDetailssVo.getMakeLoanMargin().toString()); + loanDiffPdfVo.setSj11(loanDiffDetailssVo.getRealityLoanMargin().toString()); + loanDiffPdfVo.setCe12(loanDiffDetailssVo.getDiffLoanMargin().toString()); + loanDiffPdfVo.setYs13(loanDiffDetailssVo.getReceivedPremium().toString()); + loanDiffPdfVo.setSj14(loanDiffDetailssVo.getRealityPremium().toString()); + loanDiffPdfVo.setCe15(loanDiffDetailssVo.getDiffPremium().toString()); + loanDiffPdfVos.add(loanDiffPdfVo); + } + dataMap.put("wlList", loanDiffPdfVos); + dataMap.put("remarks", data.getRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(loanDiff.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, "fkqr", 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-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java index f1a18911f6..b6a48406c9 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java @@ -1,10 +1,12 @@ package com.yxt.anrui.scm.api.scmvehiclereturn; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * @Author dimengzhe @@ -40,4 +42,7 @@ public class ScmVehicleReturn extends BaseEntity { @ApiModelProperty("申请人组织路径") private String orgSidPath; // 申请人组织路径 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java index 943bea3838..a071eba024 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java @@ -47,6 +47,11 @@ public interface ScmVehicleReturnFeign { @ResponseBody ResultBean delete(@RequestBody String[] sidsList); + @ApiOperation("生成采购退库pdf") + @PostMapping("/createPdf") + @ResponseBody + ResultBean createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName); + @ApiOperation("提交") @PostMapping("/submitVehicleReturn") @ResponseBody diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnPdfVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnPdfVo.java new file mode 100644 index 0000000000..d919851cec --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnPdfVo.java @@ -0,0 +1,50 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.scm.api.scmvehiclereturn; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ScmVehicleReturnPdfVo implements Vo { + + private Integer id; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车辆入库价") + private String rkj; + @ApiModelProperty("车型") + private String model; + @ApiModelProperty("常用配置") + private String config; + @ApiModelProperty("退库费用") + private String fy; + @ApiModelProperty("费用说明") + private String fysm; + @ApiModelProperty("入库日期") + private String rkrq; +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java index 3155583122..f3ca559b08 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java @@ -52,6 +52,13 @@ public class ScmVehicleReturnRest implements ScmVehicleReturnFeign { return scmVehicleReturnService.delete(sidsList); } + @Override + public ResultBean createPdf(String sid, String userName) { + ResultBean rb = ResultBean.fireFail(); + String pdf = scmVehicleReturnService.createPdf(sid, userName); + return rb.success().setData(pdf); + } + @Override public ResultBean submitVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) { return scmVehicleReturnService.submitVehicleReturn(scmVehicleReturnDto); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java index a0d872c0ae..c889a7769c 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java @@ -6,6 +6,10 @@ 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.base.api.baseaccadjapply.BaseAccadjApply; +import com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjApplyDetailsVo; +import com.yxt.anrui.base.api.baseaccadjapply.BaseAccadjPdfVo; +import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicle; import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDto; import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareFeign; import com.yxt.anrui.base.api.basemanufacturerretwareveh.BaseManufacturerRetwareVehDto; @@ -19,6 +23,7 @@ import com.yxt.anrui.base.common.enums.VehicleState; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication; +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.FlowFeign; @@ -30,6 +35,7 @@ import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign; import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo; 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,12 +51,16 @@ import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto; import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo; import com.yxt.anrui.scm.biz.scmvehiclereturndetails.ScmVehicleReturnDetailsService; 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.StringUtils; +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.*; +import com.yxt.messagecenter.api.messagelist.MessageList; +import com.yxt.messagecenter.api.messagelist.MessageListFeign; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -62,6 +72,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Comparator.comparing; + /** * @Author dimengzhe * @Date 2022/4/7 10:35 @@ -90,9 +102,11 @@ public class ScmVehicleReturnService extends MybatisBaseService dataMap = new HashMap(); + //分公司 + dataMap.put("orgName", scmVehicleReturn.getOrgName()); + //创建部门 + String deptName = ""; + List split = Arrays.asList(scmVehicleReturn.getOrgSidPath().split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + } + dataMap.put("deptName", deptName); + //创建人 + dataMap.put("createName", scmVehicleReturn.getApplicationName()); + //创建日期 + dataMap.put("createTime", DateUtil.formatDate(scmVehicleReturn.getCreateTime())); + //办结日期 + dataMap.put("finishTime", DateUtil.formatDate(scmVehicleReturn.getFinishTime())); + //审批编号 + dataMap.put("billNo", scmVehicleReturn.getApplicationCode()); + List scmVehicleReturnPdfVos = new ArrayList<>(); + //循环获取车辆信息 + Integer i = 1; + for (ScmVehicleReturnDetailssVo scmVehicleReturnDetailssVo : data.getVoList()) { + ScmVehicleReturnPdfVo scmVehicleReturnPdfVo = new ScmVehicleReturnPdfVo(); + scmVehicleReturnPdfVo.setId(i); + i = i + 1; + scmVehicleReturnPdfVo.setVinNo(scmVehicleReturnDetailssVo.getVinNo()); + scmVehicleReturnPdfVo.setRkj(scmVehicleReturnDetailssVo.getReturnStockCost().toString()); + scmVehicleReturnPdfVo.setModel(scmVehicleReturnDetailssVo.getModelName()); + scmVehicleReturnPdfVo.setConfig(scmVehicleReturnDetailssVo.getConfigName()); + scmVehicleReturnPdfVo.setFy(scmVehicleReturnDetailssVo.getReturnStockCost().toString()); + scmVehicleReturnPdfVo.setFysm(scmVehicleReturnDetailssVo.getCostRemarks()); + scmVehicleReturnPdfVo.setRkrq(scmVehicleReturnDetailssVo.getInboundDate()); + scmVehicleReturnPdfVos.add(scmVehicleReturnPdfVo); + } + dataMap.put("wlList", scmVehicleReturnPdfVos); + dataMap.put("yy", scmVehicleReturn.getReason()); + dataMap.put("fy", scmVehicleReturn.getMoney()); + dataMap.put("remarks", scmVehicleReturn.getRemarks()); + //获取审批记录 + List flowRecordVo = flowableFeignSp.flowRecordAndComment(scmVehicleReturn.getProcDefId(), "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(sid).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, "cgtk", sourcePath, targetPath, typeName); + //新生成的word路径 + String wordPath = targetPath + "\\" + typeName; + //生成出门证文件名 + String pdfName = "采购退库_" + dateStr + seconds + ".pdf"; + WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); + return "/template/" + dateStr + "/" + pdfName; + } }