diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ElectInvoiceController.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ElectInvoiceController.java index 5ae7cd0e..a7fa72a6 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ElectInvoiceController.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ElectInvoiceController.java @@ -30,10 +30,8 @@ import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -109,6 +107,7 @@ public class ElectInvoiceController { //压缩文件初始设置 List dataList = new ArrayList<>(); List pageInvoiceRequestInfoList = downloadInvoiceRequest.getPageInvoiceRequestInfoList(); + log.debug("入参集合大小{}",pageInvoiceRequestInfoList.size()); //批量下载版式文件限制条数100 if(pageInvoiceRequestInfoList.size() > ConfigureConstant.INT_100){ try { @@ -121,6 +120,7 @@ public class ElectInvoiceController { pageInvoiceRequestInfoList.forEach(pageInvoiceRequestInfo -> { List fileDownLoadList = electInvoiceService.queryInvoicePdfPath(pageInvoiceRequestInfo.getInvoiceCode(), pageInvoiceRequestInfo.getInvoiceNo(), pageInvoiceRequestInfo.getXhfNsrsbh(), ""); + log.debug("遍历查询文件大小{}",fileDownLoadList.size()); dataList.addAll(fileDownLoadList); }); @@ -138,7 +138,14 @@ public class ElectInvoiceController { /** * 增加 */ - if (StringUtils.isNotEmpty(zipName) || dataList.size() > 1) { + //去重 + List data = dataList.stream().collect + (Collectors.collectingAndThen( + Collectors.toCollection( + ()->new TreeSet<>(Comparator.comparing(FileDownLoad::getFileName))),ArrayList::new + ) + ); + if (StringUtils.isNotEmpty(zipName) || data.size() > 1) { response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;filename=" + finalFileName + ".zip"); response.setHeader("fileName", finalFileName + ".zip"); diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java index 5a69e88d..d025259b 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java @@ -894,6 +894,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { useLocal = true; } + log.debug("获取数据{},{},{}",useInterface,useMongo,useLocal); if (useMongo) { //调用monggodb获取数据 @@ -909,6 +910,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { fileDownLoad.setFileName(fpdm + "-" + fphm + fileStoreEntity.getSuffix()); fileDownLoad.setFileSuffix(fileStoreEntity.getSuffix()); fileDownLoadList.add(fileDownLoad); + log.debug("useMongo获得文件数量{},内容{}",fileDownLoadList.size()); } } if (useInterface) { @@ -921,17 +923,23 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { if(StringUtils.isBlank(wjlx)){ wjlx = OrderInfoEnum.FILE_TYPE_PDF.getKey(); } + String fileName = fphm; //转换文件类型参数 if(OrderInfoEnum.FILE_TYPE_PDF.getKey().equals(wjlx)){ fileDownloadRequest.setWJLX("1"); + fileName = fileName+ConfigureConstant.STRING_SUFFIX_PDF; } else if (OrderInfoEnum.FILE_TYPE_OFD.getKey().equals(wjlx)) { fileDownloadRequest.setWJLX("2"); + fileName = fileName+ConfigureConstant.STRING_SUFFIX_OFD; } else if (OrderInfoEnum.FILE_TYPE_PNG.getKey().equals(wjlx)) { fileDownloadRequest.setWJLX("3"); + fileName = fileName+ConfigureConstant.STRING_SUFFIX_PNG; } else if (OrderInfoEnum.FILE_TYPE_XML.getKey().equals(wjlx)) { fileDownloadRequest.setWJLX("4"); + fileName = fileName+ConfigureConstant.STRING_SUFFIX_XML; } else { fileDownloadRequest.setWJLX("1"); + fileName = fileName+ConfigureConstant.STRING_SUFFIX_PDF; } //通过terminalCode判断全电类型 @@ -943,7 +951,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { if(OrderInfoContentEnum.SUCCESS.getKey().equals(response.getCode())){ FileDownLoad fileDownLoad = new FileDownLoad(); fileDownLoad.setFileContent(response.getFileContent()); - fileDownLoad.setFileName(fphm); + fileDownLoad.setFileName(fileName); if (OrderInfoEnum.FILE_TYPE_PDF.getKey().equals(wjlx)) { fileDownLoad.setFileSuffix(ConfigureConstant.STRING_SUFFIX_PDF); } else if (OrderInfoEnum.FILE_TYPE_OFD.getKey().equals(wjlx)) { @@ -954,6 +962,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { fileDownLoad.setFileSuffix(ConfigureConstant.STRING_SUFFIX_XML); } fileDownLoadList.add(fileDownLoad); + log.debug("useInterface获得文件数量{},内容{}",fileDownLoadList.size()); } } else { @@ -1008,6 +1017,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { } fileDownLoad.setFileSuffix(ConfigureConstant.STRING_SUFFIX_PDF); fileDownLoadList.add(fileDownLoad); + log.debug("useLocal获得文件数量{}",fileDownLoadList.size()); } } diff --git a/pom.xml b/pom.xml index f28e3c66..8fc78cbc 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.0.1-sdenergy - 1.0.0.2-sdenergy + 1.0.0.4-sdenergy 6.1.4.0-BASE