From 34776d4f15509fb43e28cade2a3626697562daee Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 17 Aug 2022 17:15:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=8A=A5=E8=A1=A8=E3=80=91=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=AF=BC=E5=87=BA-jmreport=E5=B9=B6=E5=8F=91=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=83=BD=E5=8A=9B=E4=B8=8D=E5=A4=AA=E8=A1=8C=EF=BC=8C?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E7=A9=BA=E7=99=BDexcel=EF=BC=8C?= =?UTF-8?q?=E6=B2=A1=E6=95=B0=E6=8D=AE=E5=A1=AB=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/ReportBatchExportFormDTO.java | 2 ++ .../IcCustomerReportController.java | 3 ++- .../service/IcCustomerReportService.java | 2 +- .../impl/IcCustomerReportServiceImpl.java | 24 ++++++++++++++----- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java index 59adb68a26..67f0be2c22 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java @@ -17,4 +17,6 @@ public class ReportBatchExportFormDTO { @NotBlank(message = "reportId必填") private String reportId; + private String id; + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java index bd1898171d..6859f3e942 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java @@ -93,8 +93,9 @@ public class IcCustomerReportController { ValidatorUtils.validateEntity(input); String reportId = input.getReportId(); String paramKey = input.getParamKey(); + final String id = input.getId(); - icCustomerReportService.batchExport(reportId, paramKey, response); + icCustomerReportService.batchExport(id, reportId, paramKey, response); } @ReportRequest diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java index 54b5a6f22c..297d342e19 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java @@ -51,5 +51,5 @@ public interface IcCustomerReportService extends BaseService reportIdAndName(ReportListFormDTO formDTO); - void batchExport(String reportId, String paramKey, HttpServletResponse response); + void batchExport(String bizId, String reportId, String paramKey, HttpServletResponse response); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java index 04e1b596b4..4d8ea4c885 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java @@ -272,7 +272,7 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl ids = listIds(paramKey, apiUrl, isHttps, idFieldName); + List ids = listIds(bizId, paramKey, apiUrl, isHttps, idFieldName); // 3. 然后以这一列作为查询条件,循环,继续调用该接口,得到单条数据,每一条数据都下载一个excel,最后将其打包为一个压缩包下载 Path storePath = makeTemporaryDownloadDir(reportId); @@ -428,6 +428,18 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl bizIds, JimuReportExportRequestDTO param, Path xlsxStorePath, ArrayList files, CountDownLatch cdl) { for (String id : bizIds) { + + try { + Thread.sleep(200l); + } catch (InterruptedException e) { + final String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【报表批量导出】循环导出-请求jmreport,等待过程中睡眠发生意外:{}", errorMsg); + } + + //if (!Arrays.asList("1501821697823608834","1501821694665297922","1501821695114088450","1501821695177003009","1501821695269277697","1501821695344775169","1501821695579656193","1501821695676125186","1501821695755816962","1501821695843897346","1501821695978115074","1501821696108138497","1501821696179441665","1501821696229773313","1501821696284299266","1501821696334630913","1501821696393351170","1501821696452071426","1501821696502403073","1501821696582094849","1501821696645009409","1501821696758255617","1501821696871501826","1501821696917639169","1501821696955387906","1501821696993136641","1501821697135742977","1501821697181880321","1501821697232211969","1501821697274155009").contains(id)) { + // continue; + //} + param.getQueryParam().setId(id); final Response response = jiMuReportOpenFeignClient.exportAllExcelStream(param); // 取出文件后缀 @@ -498,13 +510,13 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl listIds(String paramKey, String apiUrl, boolean isHttps, String idFieldName) { - apiUrl = apiUrl.replace("${id}", ""); - apiUrl = apiUrl.replace("${paramKey}", paramKey); + public List listIds(String id, String paramKey, String apiUrl, boolean isHttps, String idFieldName) { + apiUrl = apiUrl.replace("'${id}'", id == null ? "" : id); + apiUrl = apiUrl.replace("'${paramKey}'", paramKey); Map headers = new HashMap<>(); headers.put(Constant.AUTHORIZATION_HEADER, EpmetRequestHolder.getHeader(Constant.AUTHORIZATION_HEADER)); - Result stringResult = HttpClientManager.getInstance().sendPost(apiUrl, isHttps, "{}", headers); + Result stringResult = HttpClientManager.getInstance().sendPost(apiUrl, isHttps, "{\"id\":" + id + "}", headers); JSONObject dataJsonObject = JSON.parseObject(stringResult.getData()); Object data = dataJsonObject.get("data");