From 102d98b785d745299249605db0945cd7efe28cfb Mon Sep 17 00:00:00 2001 From: alllenliufor3 <1009545232@qq.com> Date: Mon, 11 Apr 2022 10:57:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E4=B8=AD=E7=94=9F=E6=88=90?= =?UTF-8?q?=EF=BC=88=E4=B8=8B=E8=BD=BD=EF=BC=89pdf=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=9A=84=20=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commoncontract/AdvanceInvoiceListVo.java | 37 +++ .../commoncontract/CommonContractFeign.java | 9 + .../CommonContractFeignFallback.java | 12 + .../api/commoncontract/PrintConfirmDto.java | 44 +++ .../api/commoncontract/PrintConfirmVo.java | 23 ++ .../base/api/commoncontract/PrintItemVo.java | 32 ++ .../VehicleRegistrationListVo.java | 29 ++ .../BaseModelSzconfigMapper.xml | 1 - .../biz/basetrailer/BaseTrailerMapper.xml | 1 - .../commoncontract/CommonContractRest.java | 10 + .../commoncontract/CommonContractService.java | 298 ++++++++++++++++++ .../src/main/resources/application.yml | 4 +- 12 files changed, 497 insertions(+), 3 deletions(-) create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AdvanceInvoiceListVo.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmVo.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintItemVo.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/VehicleRegistrationListVo.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AdvanceInvoiceListVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AdvanceInvoiceListVo.java new file mode 100644 index 0000000000..97406d8247 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AdvanceInvoiceListVo.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.base.api.commoncontract; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/08 + */ +@ApiModel("提前开票列表") +@Data +public class AdvanceInvoiceListVo implements Vo { + + @ApiModelProperty("车架号") + @JsonProperty("VINNo") + private String VINNo; + + @ApiModelProperty("发票类型") + private String invoiceType; + + @ApiModelProperty("开票金额") + private String invoiceMoney; + + @ApiModelProperty("开票名称") + private String invoiceName; + + @ApiModelProperty("品牌") + private String brandName; + + @ApiModelProperty("发动机号") + private String engineNo; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java index 3ff6f8e31e..5b9b806129 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java @@ -12,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; import java.text.ParseException; +import java.util.List; import java.util.Map; /** @@ -128,6 +129,14 @@ public interface CommonContractFeign { @ApiOperation(value = "导入") public ResultBean getExcelInfo(@RequestParam(value = "fileName") String fileName, @RequestParam(value = "file") MultipartFile file) throws IOException, ParseException; + @ApiOperation(value = "打印项设置") + @GetMapping("/printItemSet") + public ResultBean printItemSet(@RequestParam("busSid") String busSid, @RequestParam("customerName") String customerName); + + @ApiOperation(value = "打印项确认(生成word后转为pdf)") + @PostMapping("/printConfirm") + public ResultBean> printConfirm(@RequestBody PrintConfirmDto dto); + /******************************************************新车买卖合同审核(流程)******************************************************/ diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java index 1a153ad72b..189fd364b8 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java @@ -134,6 +134,18 @@ public class CommonContractFeignFallback implements CommonContractFeign { return null; } + @Override + public ResultBean printItemSet(String busSid, String customerName) { + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-base/commoncontract/printItemSet无法访问"); + } + + @Override + public ResultBean printConfirm(PrintConfirmDto dto) { + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-base/commoncontract/printConfirm无法访问"); + } + @Override public ResultBean submitCarSaleContractApprove(CarSaleContractApproveDto dto) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java new file mode 100644 index 0000000000..6eb46a4add --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java @@ -0,0 +1,44 @@ +package com.yxt.anrui.base.api.commoncontract; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/07 + */ +@ApiModel("打印项确认") +@Data +public class PrintConfirmDto implements Dto { + + @ApiModelProperty("合同sid") + private String sid; + + @ApiModelProperty("业务表sid") + private String busSid; + + @ApiModelProperty("客户sid") + private String customerSid; + + @ApiModelProperty("合同编号") + private String contractNo; + + @ApiModelProperty("客户名称") + private String customerName; + + @ApiModelProperty("是否优惠:1是0否") + private int isDiscount; + + @ApiModelProperty("是否提前开票:1是0否") + private int isAdvanceInvoice; + + @ApiModelProperty("是否委托提车:1是0否") + private int isEntrustVehicle; + + @ApiModelProperty("是否在保险公司购买保险:1是0否") + private int isPurchasingInsurance; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmVo.java new file mode 100644 index 0000000000..e05a953a86 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmVo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.base.api.commoncontract; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/09 + */ +@ApiOperation("文件名称") +@Data +public class PrintConfirmVo implements Vo { + + @ApiModelProperty("文件名称") + private String name; + + @ApiModelProperty("下载路径") + private String downloadUrl; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintItemVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintItemVo.java new file mode 100644 index 0000000000..c2181ccc13 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintItemVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.base.api.commoncontract; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/06 + */ +@ApiModel("打印项设置") +@Data +public class PrintItemVo implements Vo { + + @ApiModelProperty("合同sid") + private String sid; + + @ApiModelProperty("合同编号") + private String contractNo; + + @ApiModelProperty("业务表sid") + private String busSid; + + @ApiModelProperty("客户sid") + private String customerSid; + + @ApiModelProperty("客户名称") + private String customerName; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/VehicleRegistrationListVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/VehicleRegistrationListVo.java new file mode 100644 index 0000000000..8d2d83fe97 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/VehicleRegistrationListVo.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.base.api.commoncontract; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/08 + */ +@ApiModel("合同车辆信息列表") +@Data +public class VehicleRegistrationListVo implements Vo { + + @ApiModelProperty("车架号") + @JsonProperty("VINNo") + private String VINNo; + + @ApiModelProperty("品牌") + private String brandName; + + @ApiModelProperty("发动机号") + @JsonProperty("engineNo") + private String engineNo; +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelszconfig/BaseModelSzconfigMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelszconfig/BaseModelSzconfigMapper.xml index a80e22ca9b..c26b235c0f 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelszconfig/BaseModelSzconfigMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelszconfig/BaseModelSzconfigMapper.xml @@ -9,7 +9,6 @@ SELECT bms.refitMethod, bms.refitFactory, bms.topName, - bms.refitPrice, bms.announcementModel, bms.overallDimension, bms.plateMaterial, diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerMapper.xml index 33d7907121..32cb0728a6 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerMapper.xml @@ -44,7 +44,6 @@ bt.carBrand, bt.settlement, bt.vinNo, - bt.trailerPrince, bt.otherConfig FROM base_trailer bt WHERE bt.modelSid = #{modelSid} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java index 7c0a5886dc..1a72ebe670 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java @@ -355,6 +355,16 @@ public class CommonContractRest implements CommonContractFeign { } } + @Override + public ResultBean printItemSet(String busSid, String customerName) { + return commonContractService.printItemSet(busSid, customerName); + } + + @Override + public ResultBean> printConfirm(PrintConfirmDto dto) { + return commonContractService.printConfirm(dto); + } + public List getSheetVal(Sheet sheet, int[] resultCell) throws ParseException { SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); List punishmentList = new ArrayList<>(); diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java index 00822b5242..fa33a875b3 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java @@ -3,8 +3,12 @@ package com.yxt.anrui.base.biz.commoncontract; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basemodelszconfig.AppBaseModelSzconfigDetailsVo; +import com.yxt.anrui.base.api.basetrailer.AppBaseTrailerDetailsVo; import com.yxt.anrui.base.api.commonappendix.CommonAppendix; import com.yxt.anrui.base.api.commoncontract.*; +import com.yxt.anrui.base.biz.basemodelszconfig.BaseModelSzconfigService; +import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService; import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService; import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService; import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService; @@ -13,6 +17,12 @@ import com.yxt.anrui.buscenter.api.busdeposit.BusDepositFeign; import com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehicleFeign; import com.yxt.anrui.buscenter.api.busorder.BusOrderFeign; import com.yxt.anrui.buscenter.api.busorder.BusOrderVo; +import com.yxt.anrui.buscenter.api.busorderdiscount.AppBusOrderDiscountListVo; +import com.yxt.anrui.buscenter.api.busorderdiscount.BusOrderDiscountFeign; +import com.yxt.anrui.buscenter.api.busordermodel.AppBusOrderModelVo; +import com.yxt.anrui.buscenter.api.busordermodel.BusOrderModelFeign; +import com.yxt.anrui.buscenter.api.busordervehicle.BusOrderVehicleFeign; +import com.yxt.anrui.crm.api.crmcustomer.CrmCustomerFeign; import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign; import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo; import com.yxt.anrui.flowable.api.utils.procDefEnum; @@ -25,6 +35,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.portal.config.DictCommonType; +import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.DateUtils; @@ -34,12 +45,18 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.File; +import java.math.BigDecimal; +import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.stream.Collectors; /** @@ -58,6 +75,15 @@ import java.util.stream.Collectors; @Service public class CommonContractService extends MybatisBaseService { + @Value("${templateUrl.uploadUrl}") + private String uploadTemplateUrl; + + @Value("${templateUrl.prefixUrl}") + private String prefixTemplateUrl; + + @Autowired + private DocPdfComponent docPdfComponent; + @Autowired private SysUserFeign sysUserFeign; @Autowired @@ -71,6 +97,12 @@ public class CommonContractService extends MybatisBaseService createQueryWrapper(CommonContractQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -522,6 +560,266 @@ public class CommonContractService extends MybatisBaseService printItemSet(String busSid, String customerName) { + CommonContractBuscenterVo contractBuscenterVo = baseMapper.selectByBusSid(busSid); + PrintItemVo vo = new PrintItemVo(); + BeanUtil.copyProperties(contractBuscenterVo, vo); + vo.setCustomerName(customerName); + return new ResultBean().success().setData(vo); + } + + /** + * 打印项-确认 + * @param dto + * @return + */ + public ResultBean> printConfirm(PrintConfirmDto dto) { + Map map = new HashMap(); + // 合同信息 + CommonContract contract = fetchBySid(dto.getSid()); + map.put("partyA", contract.getPartyA()); // 甲方 + map.put("partyB", contract.getPartyB()); // 乙方 + map.put("contractNo", contract.getContractNo()); // 合同编号 + map.put("createDate", contract.getCreateDate()); // 签订时间 + // 客户信息; + BusOrderVo order = busOrderFeign.fetchSid(dto.getBusSid()).getData(); + map.put("customerName", order.getCustomerName()); // 联系电话 + map.put("mobile", order.getMobile()); // 联系电话 + map.put("IDNumber", order.getIDNumber()); // 身份证号 + // 车型、主车信息 + ResultBean model = busOrderModelFeign.getAppBusOrderModelInfoBySid(dto.getBusSid()); + map.put("modelName", model.getData().getModelName()); // 车型 + map.put("modelConfig", model.getData().getModelotherConfig()); // 配置(只有订车有) ?待确认 + map.put("mainVehicleNum", model.getData().getQuantity()); // 主车数量 + map.put("mainVehicleSinglePrice", model.getData().getSingle_price()); // 单台成交价 + ResultBean vinNo = busOrderVehicleFeign.getVehicleVINNoByOrderSid(dto.getBusSid()); + map.put("VINNo", vinNo.getData()); // 车架号 + // 上装信息 + AppBaseModelSzconfigDetailsVo szconfig = baseModelSzconfigService.getAppBaseModelSzconfigDetailsVo(model.getData().getSid()); + map.put("topName", szconfig.getTopName()); // 上装 + // 挂车信息 + AppBaseTrailerDetailsVo trailer = baseTrailerService.getAppBaseTrailerDetailsVo(model.getData().getSid()); + map.put("trailerName", trailer.getOtherConfig()); // 挂车 + map.put("trailerNum", model.getData().getQuantity()); // 挂车数量 ?待确认 + map.put("trailerSinglePrice", StringUtils.isBlank(trailer.getTrailerPrince()) ? "" : trailer.getTrailerPrince()); // 挂车单台成交价 ?待确认 + // 优惠说明信息 + ResultBean> discountList = busOrderDiscountFeign.getAppDiscountListVoByOrderSid(order.getOrderSid()); + map.put("discountDetail", ""); // 优惠说明 ?待确认 + if (discountList.getSuccess()) { + map.put("discountDetail", discountList.getData().get(0).getDetail()); // 优惠说明 ?待确认 + } + // 保险说明信息 + map.put("insuranceDetail", "首次在本店投保,第二、三年继续在本店续保。(不在公司投保的,不显示)"); // 保险说明 ?待确认 + // 车辆交付地点 + map.put("deliveryPlace", model.getData().getExpected_takecar_location()); + + List list = new ArrayList<>(); + try { + ExecutorService executor = Executors.newFixedThreadPool(5); + Future future1 = executor.submit(() -> { + return genCarSaleContract(dto, map, order); + }); + Future future2 = executor.submit(() -> { + return genVehicleRegistration(dto, map); + }); + Future future3 = executor.submit(() -> { + // 客户开票申请书(暂时先不考虑) + if (dto.getIsAdvanceInvoice() == 1) { + return genAdvanceInvoice(dto, map); + } else { + return ""; + } + }); + Future future4 = executor.submit(() -> { + // 委托提车授权书 + if (dto.getIsEntrustVehicle() == 1) { + return genEntrustVehicle(dto, map); + } else { + return ""; + } + }); + Future future5 = executor.submit(() -> { + return genCarSaleContractBlank(dto, map, order); + }); + + future1.get(); + future2.get(); + future3.get(); + future4.get(); + future5.get(); + PrintConfirmVo printConfirmVo = null; + if (StringUtils.isNotBlank(future1.get())) { + printConfirmVo = new PrintConfirmVo(); + // 待确认:现车或订车 + // 现车 +// printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTNEW.getName())); + // 订车 + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTBOOK.getName())); + printConfirmVo.setDownloadUrl(future1.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future2.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.VEHICLEREGISTRATION.getName())); + printConfirmVo.setDownloadUrl(future2.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future3.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CUSTOMERINVOICINGAPPLICATION.getName())); + printConfirmVo.setDownloadUrl(future3.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future4.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.ENTRUSTPICKUPAUTHORIZATION.getName())); + printConfirmVo.setDownloadUrl(future4.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future5.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTNEWBLANK.getName())); + printConfirmVo.setDownloadUrl(future5.get()); + list.add(printConfirmVo); + } + } catch (Exception e) { + e.printStackTrace(); + return new ResultBean().fail().setMsg("生成文件失败"); + } + return new ResultBean().success().setData(list); + } + + /** + * 生成 新车买卖合同(现车或订车) pdf + * @param dto + */ + private String genCarSaleContract(PrintConfirmDto dto, Map map, BusOrderVo order) { + String url = ""; + // 车辆税信息 + map.put("taxSum", "1111"); // 车辆含税 ?待确认 + map.put("taxSumUpper", "壹仟壹佰壹拾壹"); // 车辆含税(大写) ?待确认 + // 乙方缴纳订金 + map.put("deposit", order.getDeposit()); // 订金 + map.put("useDeposit", "true"); // 判断是否展示括号中的内容 ?待确认:用本人交纳的虚拟订金的,需要显示订金后面括弧 中的说明 + map.put("date", order.getCreateDate()); // 订金缴纳日期 ?待确认 + map.put("deposit1", ""); // 总订金 ?待确认 + map.put("deposit2", ""); // 用于缴纳的订金 ?待确认 + + // 目标路径 ? 待确认:如何区分现车和订车 + // 现车 +// String typeName = ContractTemplateEnum.CARSALECONTRACTNEW.getName(); + // 订车 + String typeName = ContractTemplateEnum.CARSALECONTRACTBOOK.getName(); + String docName = typeName + "(" + order.getCustomerName() + ").doc"; + Map resultMap = docPdfComponent.createDocToPdf(map, typeName, docName); + url = resultMap.get("prefixTemplateUrl"); + return url; + } + + /** + * 生成 新车买卖合同(现车) (空)pdf + * @param dto + * @param map + * @param order + * @return + */ + private String genCarSaleContractBlank(PrintConfirmDto dto, Map map, BusOrderVo order) { + String url = ""; + String typeName = ""; + String docName = ""; + // 涉及高低开票的,需要打印两套合同,一套按照成交价打印(记账用),一套为价格空白的合同(开票用) + // 合同金额 ? 待确定 + BigDecimal contractAmount = order.getContractAmount(); + if (contractAmount == null) { + // 待确定 ? 现车或订车 + // 现车 + typeName = ContractTemplateEnum.CARSALECONTRACTNEWBLANK.getName(); + // 订车 + typeName = ContractTemplateEnum.CARSALECONTRACTBOOKBLANK.getName(); + docName = typeName + "(" + order.getCustomerName() + ").doc"; + Map map2 = docPdfComponent.createDocToPdf(map, typeName, docName); + url += ", " + map2.get("prefixTemplateUrl"); + } + return url; + } + + /** + * 生成 客户开票申请书 pdf + * @param dto + * @return + */ + private String genAdvanceInvoice(PrintConfirmDto dto, Map map) { + String url = ""; + // 列表?待确认 + List list = new ArrayList<>(); + AdvanceInvoiceListVo vo = new AdvanceInvoiceListVo(); + vo.setInvoiceName("开票名称"); + vo.setInvoiceMoney("开票金额"); + vo.setInvoiceType("发票类型"); + vo.setVINNo("002234329"); + list.add(vo); + AdvanceInvoiceListVo vo1 = new AdvanceInvoiceListVo(); + BeanUtil.copyProperties(vo, vo1); + vo1.setVINNo("002324345"); + list.add(vo1); + map.put("list", list); // 列表 + // 目标路径 + String typeName = ContractTemplateEnum.CUSTOMERINVOICINGAPPLICATION.getName(); + String docName = typeName + "(" + map.get("customerName") + ").doc"; + Map resultMap = docPdfComponent.createDocToPdf(map, typeName, docName); + url = resultMap.get("prefixTemplateUrl"); + return url; + } + + /** + * 生成 车辆登记合同 pdf + * @param dto + * @return + */ + private String genVehicleRegistration(PrintConfirmDto dto, Map map) { + String url = ""; + // 列表?待确认 + List list = new ArrayList<>(); + VehicleRegistrationListVo vo = new VehicleRegistrationListVo(); + vo.setBrandName("陕汽"); + vo.setVINNo("002234329"); + vo.setEngineNo("672342642232323"); + list.add(vo); + VehicleRegistrationListVo vo1 = new VehicleRegistrationListVo(); + vo1.setBrandName("欧曼"); + vo1.setVINNo("002324345"); + vo1.setEngineNo("67234299923ad"); + list.add(vo1); + map.put("list", list); // 列表 + // 目标路径 + String typeName = ContractTemplateEnum.VEHICLEREGISTRATION.getName(); + String docName = typeName + "(" + map.get("customerName") + ").doc"; + Map resultMap = docPdfComponent.createDocToPdf(map, typeName, docName); + url = resultMap.get("prefixTemplateUrl"); + return url; + } + + /** + * 生成 委托提车授权书 pdf + * @param dto + * @return + */ + private String genEntrustVehicle(PrintConfirmDto dto, Map map) { + String url = ""; + // 目标路径 + String typeName = ContractTemplateEnum.ENTRUSTPICKUPAUTHORIZATION.getName(); + String docName = typeName + "(" + map.get("customerName") + ").doc"; + Map resultMap = docPdfComponent.createDocToPdf(map, typeName, docName); + url = resultMap.get("prefixTemplateUrl"); + return url; + } + + public List selByBusSid(String userSid, String busSid) { Map map = generateContractNo(userSid); String staffSid = map.get("staffSid"); diff --git a/anrui-base/anrui-base-biz/src/main/resources/application.yml b/anrui-base/anrui-base-biz/src/main/resources/application.yml index 5e4a442350..d0b0cb9c16 100644 --- a/anrui-base/anrui-base-biz/src/main/resources/application.yml +++ b/anrui-base/anrui-base-biz/src/main/resources/application.yml @@ -55,6 +55,8 @@ ribbon: ReadTimeout: 30000 ConnectTimeout: 30000 - +templateUrl: + uploadUrl: D:\anrui\template\ + prefixUrl: http://120.46.131.15:8111/template/