From f174d006a2693a779d6d06f598a2ee7d5aef8f87 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 11 Mar 2024 16:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=BC=80=E7=A5=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/finbillapplication/DownloanVoUrl.java | 16 + .../FinBillApplicationFeign.java | 5 + .../FinBillApplicationFeignFallback.java | 5 + .../FinBillApplicationRest.java | 5 + .../FinBillApplicationService.java | 289 +++++++++++++++++- .../autoservice/invoiced/InvoicedFeign.java | 6 + .../invoiced/InvoicedFeignFallback.java | 5 + .../autoservice/invoiced/InvoicedRest.java | 5 + .../autoservice/invoiced/InvoicedService.java | 123 ++++++++ 9 files changed, 457 insertions(+), 2 deletions(-) create mode 100644 anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java new file mode 100644 index 0000000000..7965f5cfe8 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.fin.api.finbillapplication; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/11 + **/ +@Data +public class DownloanVoUrl { + + @ApiModelProperty("整体附件下载地址") + private String allDownloadUrl; +} diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java index 6bd9723362..c12e5870d5 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java @@ -274,4 +274,9 @@ public interface FinBillApplicationFeign { @GetMapping("/selectByCon") @ResponseBody ResultBean selectByCon(@RequestParam("contractNo") String contractNo); + + @ApiOperation("点击生成附件") + @PostMapping("/saveInvoicedApplyInfoPdf") + @ResponseBody + public ResultBean saveInvoicedApplyInfoPdf(@RequestBody FinBillApplicationDto dto); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java index 779b332140..b60a612990 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java @@ -286,4 +286,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign public ResultBean selectByCon(String contractNo) { return null; } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + return null; + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java index e2991da398..0366086c4e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java @@ -345,4 +345,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign { public ResultBean selectByCon(String contractNo) { return finBillApplicationService.selectByCon(contractNo); } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + return finBillApplicationService.saveInvoicedApplyInfoPdf(dto); + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 04e2bd9f68..8540d02b53 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -987,6 +987,278 @@ public class FinBillApplicationService extends MybatisBaseService filesList = new ArrayList<>(); + //根据合同号查询销售订单数据 + BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo); + SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData(); + if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款 + List finBillVehicles = dto.getFinBillVehicles(); + BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); + BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); + //按开票名称sid分组 + Map> groupedByOpenTickSid = finBillVehicles.stream() + .collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid)); + //遍历分组并组装每组的数据 + groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> { + Map map = new HashMap<>(); + Map carMap = new HashMap<>(); + Map filemap = new HashMap<>(); + Map checkMap = new HashMap<>(); + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid); + if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) { + FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0); + //生成开票申请书 + if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { + ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } + } + map.put("contractNo", busSalesOrder.getContractNo()); + List list = new ArrayList<>(); + //====================================主车开始 + BillFileVo billFileVo = new BillFileVo(); + if (busSalesOrderModel != null) { + billFileVo.setCarName(busSalesOrderModel.getModelName()); + billFileVo.setNum(String.valueOf(sameOpenTickSidList.size())); + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + } + /* if (loanSolutions != null) { + if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { + billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + } + }*/ + billFileVo.setOpenPrice(dto.getOneBillMoney()); + billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型 + List vinNoString = new ArrayList<>(); + List lllList = new ArrayList<>(); + BillFileVo finalBillFileVo = billFileVo; + sameOpenTickSidList.forEach(v -> { + //车架号 + BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid()); + /* if(baseVehicle != null){ + vinNoString.add(baseVehicle.getVinNo()); + }*/ + List finBillTrailers = dto.getFinBillTrailers(); + finBillTrailers.removeAll(Collections.singleton(null)); + finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList()); + lllList.addAll(finBillTrailers); + /* String vinNo = String.join(",",vinNoString); + billFileVo.setVinNo(vinNo);*/ + list.add(finalBillFileVo); + }); + + //==========================主车结束 + Map carNameMap = new HashMap<>(); + if (!lllList.isEmpty()) { + for (int i = 0; i < lllList.size(); i++) { + List trailerVinString = new ArrayList<>(); + FinBillTrailerDto finBillTrailerDto = lllList.get(i); + billFileVo = new BillFileVo(); + BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); + if (baseTrailer != null) { + BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid()); + if (baseTrailerModel != null) { + String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue(); + /* if (carNameMap.containsKey(carName)) { + carNameMap.put(carName, Arrays.asList(carNameMap.get(carName).toString()).add(baseTrailer.getVinNo())); + continue; + } else { + billFileVo.setType(busSalesOrder.getBillingType()); + billFileVo.setCarName(carName); + if (busSalesOrderModel != null) { + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + } + trailerVinString.add(baseTrailer.getVinNo()); + carNameMap.put(carName,trailerVinString); + list.add(billFileVo); + }*/ + billFileVo.setCarName(carName); + billFileVo.setVinNo(baseTrailer.getVinNo()); + billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney()); + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + billFileVo.setType(finBillTrailerDto.getBillTypeValue()); + list.add(billFileVo); + } + } + } + } + /*if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + BillFileVo billFileVo1 = list.get(i); + String carName = billFileVo1.getCarName(); + if (carNameMap.containsKey(carName)) { + List ssList = castList(carNameMap.get(carName),String.class); + String trailerVinNo = String.join(",",ssList); + billFileVo1.setOpenPrice(Arrays.asList(carName.split("#")).get(1)); + billFileVo1.setCarName(Arrays.asList(carName.split("#")).get(0)); + billFileVo1.setVinNo(trailerVinNo); + } + } + }*/ + map.put("list", list); + map.put("name", finBillVehicleDto.getOpenTickName()); + String date = DateUtil.today(); + List dateString = Arrays.asList(date.split("-")); + String year = dateString.get(0); + String month = dateString.get(1); + String day = dateString.get(2); + map.put("year", year); + map.put("month", month); + map.put("day", day); + FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid); + if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != null) {//机动车 + if (finCompanyInvoicingDetailsVo != null) { + //生成车辆登记合同 + if (busSalesOrder != null) { + carMap.put("Yf", busSalesOrder.getCustomerName()); + carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 + } + carMap.put("contractNo", "D" + map.get("contractNo")); + if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { + ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } + } + carMap.put("date", date); + List carContractListVos = new ArrayList<>(); + for (FinBillVehicleDto salesOrderVehicle : sameOpenTickSidList) { + CarContractListVo carContractListVo = new CarContractListVo(); + BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid()); + carContractListVo.setBrand(baseVehicle.getModelName()); + carContractListVo.setVinNo(baseVehicle.getVinNo()); + carContractListVo.setEnginNo(baseVehicle.getEngineNo()); + carContractListVos.add(carContractListVo); + } + carMap.put("carLists", carContractListVos); + } + } + } + + if("1".equals(busSalesOrder.getPayTypeKey())){ + if (loanSolutions != null) { + if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { + String remarks = ""; + String date = DateUtil.today(); + List dateString = Arrays.asList(date.split("-")); + String year = dateString.get(0); + String month = dateString.get(1); + String day = dateString.get(2); + filemap.put("year", year); + filemap.put("month", month); + filemap.put("day", day); + if (finCompanyInvoicingDetailsVo != null) { + filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 + filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//乙方 + filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 + filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//乙方证件号码 + filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址 + } else { + CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid()); + if (crmCustomerTemp != null) { + filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称 + filemap.put("customerName", crmCustomerTemp.getName());//乙方 + filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号 + filemap.put("idNo", crmCustomerTemp.getIDNumber());//乙方证件号码 + filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址 + } + } + filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 + remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; + filemap.put("remarks", remarks); + filemap.put("busSid", busSalesOrder.getSid()); + ResultBean> mapResultBean = commonContractFeign.getModelMap(filemap); + checkMap = mapResultBean.getData(); + //生成新车空白合同 + checkMap.put("totalPrice", ""); + checkMap.put("priceRemarks", ""); + checkMap.put("depositTotal", ""); + checkMap.put("createOrgName", ""); + checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey()); + } + } + } + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(1, 2, + 1000, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + + if (!map.isEmpty()) { + Future future1 = pool.submit(() -> { + return getInvoiceApplyFile(map); + }); + if (StringUtils.isNotBlank(future1.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get()); + filesList.add(file); + } + } + if (!carMap.isEmpty()) { + Future future2 = pool.submit(() -> { + return getCarFile(carMap); + }); + if (StringUtils.isNotBlank(future2.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get()); + filesList.add(file); + } + } + if("1".equals(busSalesOrder.getPayTypeKey())){ + Map finalCheckMap = checkMap; + if (!finalCheckMap.isEmpty()) { + Future future3 = pool.submit(() -> { + return blackFile(finalCheckMap); + }); + if (StringUtils.isNotBlank(future3.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get()); + filesList.add(file); + } + } + } + + + } catch (Exception e) { + e.printStackTrace(); + log.error("生成文件失败:==========================" + e.getMessage()); + } + + }); + if (filesList.size() > 0) { + String typeName = contractNo + "开票附件.pdf"; + try { + File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName); + fileUrl = typeName; + } + }else{ + if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同 + /*LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData(); + record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey()); + record.setInvoiceType(busSalesOrder.getBillingType()); + if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){ + record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName()); + }else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){ + record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()); + }*/ + + } + + } + if(StringUtils.isNotBlank(fileUrl)){ + FinBillApplication finBillApplication = fetchBySid(dto.getSid()); + finBillApplication.setFileUrl(fileUrl); + baseMapper.updateById(finBillApplication); + } + return fileUrl; + } + public String blackFile(Map map) { String ftl = ""; String name = ""; @@ -5277,8 +5549,8 @@ public class FinBillApplicationService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); Future future1 = pool.submit(() -> { String fileUrl = getFileUrl(dto); + return fileUrl; }); } catch (Exception e) { e.printStackTrace(); log.error("生成文件失败:==========================" + e.getMessage()); }*/ +// String fileUrl = getFileUrlNew(dto); + String fileUrl = ""; + return fileUrl; } public List castList(Object obj, Class clazz){ @@ -5303,4 +5579,13 @@ public class FinBillApplicationService extends MybatisBaseService(); } + + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + ResultBean rb = ResultBean.fireFail(); + DownloanVoUrl downloanVoUrl = new DownloanVoUrl(); + ResultBean resultBean = saveOrUpdateDto(dto); + String contractNo = createContractNo(dto); + downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo); + return rb.success().setData(downloanVoUrl); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java index 275b7858f6..8efc5a5ffc 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java @@ -1,5 +1,6 @@ package com.yxt.anrui.terminal.api.autoservice.invoiced; +import com.yxt.anrui.terminal.api.autoservice.arrearsTakeCar.AdvanceArrearsDto; import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -98,4 +99,9 @@ public interface InvoicedFeign { @GetMapping("/getFlowOperateTitleByKP") @ResponseBody ResultBean getFlowOperateTitleByKP(@SpringQueryMap InvoicedQuery query); + + @ApiOperation("点击生成附件") + @PostMapping("/saveInvoicedApplyInfoPdf") + @ResponseBody + public ResultBean saveInvoicedApplyInfoPdf(@RequestBody BillApplicationIInfoDto dto); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java index 7465251923..3c21cf45dc 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java @@ -89,4 +89,9 @@ public class InvoicedFeignFallback implements InvoicedFeign { public ResultBean getFlowOperateTitleByKP(InvoicedQuery query) { return null; } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + return null; + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java index 61f7fdab5c..8f4bd9d047 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java @@ -97,4 +97,9 @@ public class InvoicedRest implements InvoicedFeign { public ResultBean getFlowOperateTitleByKP(InvoicedQuery query) { return invoicedService.getFlowOperateTitleByKP(query); } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + return invoicedService.saveInvoicedApplyInfoPdf(dto); + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java index cc974981e8..fed6d69dd2 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java @@ -1116,4 +1116,127 @@ public class InvoicedService { } return rb.success(); } + + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto(); + BeanUtil.copyProperties(dto, finBillApplicationDto, "carBuyContractImages"); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + if (dto.getShowBtn()) { + finBillApplicationDto.setShowBtnStr("1"); + } else { + finBillApplicationDto.setShowBtnStr("0"); + } + finBillApplicationDto.setUseOrgSid(useOrgSid); + finBillApplicationDto.setCreateBySid(dto.getUserSid()); + finBillApplicationDto.setTotalBillMoney(dto.getInvoiceTotal()); + finBillApplicationDto.setOrgSidPath(dto.getOrgPath()); + finBillApplicationDto.setSaleTypeValue(dto.getSaleType()); + finBillApplicationDto.setSaleDeptName(dto.getSellerDept()); + finBillApplicationDto.setStaffName(dto.getSellerName()); + finBillApplicationDto.setOpenTickUnitName(dto.getInvoicingUnit()); + finBillApplicationDto.setCustomerName(dto.getName()); + finBillApplicationDto.setOneBillMoney(dto.getInvoiceMoney()); + finBillApplicationDto.setOpenTickTypeKey(dto.getOpenTickTypeKey()); + finBillApplicationDto.setOpenTickTypeValue(dto.getOpenTickTypeValue()); + finBillApplicationDto.setOpenTickSid(dto.getOpenTickSid()); + finBillApplicationDto.setOpenTickName(dto.getOpenTickName()); + finBillApplicationDto.setBillStateKey(dto.getInvoiceStateKey()); + finBillApplicationDto.setBillStateValue(dto.getInvoiceState()); + finBillApplicationDto.setContractNo(dto.getContractId()); + finBillApplicationDto.setApplyDate(dto.getDate()); + finBillApplicationDto.setCreateBySid(dto.getUserSid()); + finBillApplicationDto.setNodeState(dto.getNodeState()); + finBillApplicationDto.setBillNo(dto.getBillNo()); + String publishInfo = dto.getPublishInfo(); + String[] split = publishInfo.split("-"); + finBillApplicationDto.setDeptName(split[0]); + finBillApplicationDto.setCreateByName(split[1]); + //开票车辆信息 + List vinList = dto.getVinList(); + List finBillVehicleDtos = new ArrayList<>(); + for (VinListDto vinListDto : vinList) { + if (StringUtils.isBlank(vinListDto.getInvoiceInfo())) { + return new ResultBean().fail().setMsg("开票信息不能为空"); + } + FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto(); + finBillVehicleDto.setVinNo(vinListDto.getVin()); + finBillVehicleDto.setVehSid(vinListDto.getVinSid()); + finBillVehicleDto.setCertificateStateKey(vinListDto.getCertificateStateKey()); + finBillVehicleDto.setCertificateStateValue(vinListDto.getCertificateState()); + finBillVehicleDto.setBillTypeKey(vinListDto.getInvoiceTypeKey()); + finBillVehicleDto.setBillTypeValue(vinListDto.getInvoiceType()); + finBillVehicleDto.setOpenTickSid(vinListDto.getOpenTickSid()); + finBillVehicleDto.setOpenTickName(vinListDto.getInvoiceName()); + finBillVehicleDto.setOpenTickRemarks(vinListDto.getInvoiceInfo()); + finBillVehicleDto.setXSState(vinListDto.getXSState()); + finBillVehicleDtos.add(finBillVehicleDto); + } + finBillApplicationDto.setFinBillVehicles(finBillVehicleDtos); + //开票挂车信息 + List finBillTrailers = dto.getFinBillTrailers(); + List finBillTrailerDtos = new ArrayList<>(); + if (finBillTrailers != null && finBillTrailers.size() > 0) { + for (FinBillTrailerDto finBillTrailer : finBillTrailers) { + com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto finBillTrailerDto = new com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto(); + BeanUtil.copyProperties(finBillTrailer, finBillTrailerDto); + finBillTrailerDtos.add(finBillTrailerDto); + } + } + finBillApplicationDto.setFinBillTrailers(finBillTrailerDtos); + //附件信息 + List appCarBuyContractImages = dto.getCarBuyContractImages();//车辆买卖合同 + List customerInvoiceApplyImages = dto.getCustomerInvoiceApplyImages();//客户开票申请书 + List invoiceApplyConfirmImages = dto.getInvoiceApplyConfirmImages();//开票信息确认书 + List registerContractImages = dto.getRegisterContractImages();//车辆登记合同 + List idCardImages = dto.getIdCardImages();//证件 + List carBuyContractImages = new ArrayList<>(); // 车辆买卖合同 + List khkpsqsApplicationAppendxs = new ArrayList<>(); // 客户开票申请书附件信息 + List kpxxqrsApplicationAppendxs = new ArrayList<>(); // 开票信息确认书附件信息 + List cldjhtApplicationAppendxs = new ArrayList<>(); // 车辆登记合同附件信息 + List idCardImagesPC = new ArrayList<>();//证件 + if (appCarBuyContractImages != null) { + for (String appCarBuyContractImage : appCarBuyContractImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(appCarBuyContractImage); + carBuyContractImages.add(finBillFileDto); + } + } + if (customerInvoiceApplyImages != null) { + for (String customerInvoiceApplyImage : customerInvoiceApplyImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(customerInvoiceApplyImage); + khkpsqsApplicationAppendxs.add(finBillFileDto); + } + } + if (invoiceApplyConfirmImages != null) { + for (String invoiceApplyConfirmImage : invoiceApplyConfirmImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(invoiceApplyConfirmImage); + kpxxqrsApplicationAppendxs.add(finBillFileDto); + } + } + if (registerContractImages != null) { + for (String registerContractImage : registerContractImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(registerContractImage); + cldjhtApplicationAppendxs.add(finBillFileDto); + } + } + if (idCardImages != null) { + for (String idCardImage : idCardImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(idCardImage); + idCardImagesPC.add(finBillFileDto); + } + } + finBillApplicationDto.setCarBuyContractImages(carBuyContractImages); + finBillApplicationDto.setKhkpsqsApplicationAppendxs(khkpsqsApplicationAppendxs); + finBillApplicationDto.setKpxxqrsApplicationAppendxs(kpxxqrsApplicationAppendxs); + finBillApplicationDto.setCldjhtApplicationAppendxs(cldjhtApplicationAppendxs); + finBillApplicationDto.setZjApplicationAppendxs(idCardImagesPC); + finBillApplicationDto.setArrearsMoney("0"); + + ResultBean resultBean = finBillApplicationFeign.saveInvoicedApplyInfoPdf(finBillApplicationDto); + return resultBean; + } }