Browse Source

【报表】批量导出,修改

dev
wangxianzhang 3 years ago
parent
commit
f172839441
  1. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ReportController.java
  2. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java
  3. 3
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java
  4. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java
  5. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ReportController.java

@ -1,5 +1,6 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.annotation.ReportRequest;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ReportHouseTestFormDTO; import com.epmet.dto.form.ReportHouseTestFormDTO;
@ -20,9 +21,10 @@ public class ReportController {
* @return * @return
*/ */
@PostMapping("houses/test") @PostMapping("houses/test")
public Result<PageData<ReportHouseTestResultDTO>> listHouses(@RequestBody ReportHouseTestFormDTO input, @RequestParam(value="id", required = false) String id) { @ReportRequest
System.out.println("id:"+id); public Result<PageData<ReportHouseTestResultDTO>> listHouses(@RequestBody ReportHouseTestFormDTO input) {
PageData<ReportHouseTestResultDTO> pageData = houseService.listHouses4ReportTest(id, input.getPageNo(), input.getPageSize()); System.out.println("id:"+input.getId());
PageData<ReportHouseTestResultDTO> pageData = houseService.listHouses4ReportTest(input.getId(), input.getPageNo(), input.getPageSize());
return new Result<PageData<ReportHouseTestResultDTO>>().ok(pageData); return new Result<PageData<ReportHouseTestResultDTO>>().ok(pageData);
} }

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java

@ -8,7 +8,7 @@ import lombok.Data;
@Data @Data
public class ReportBatchExportFormDTO { public class ReportBatchExportFormDTO {
private String token; //private String token;
private String paramKey; private String paramKey;
private String reportId; private String reportId;

3
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java

@ -93,9 +93,8 @@ public class IcCustomerReportController {
String reportId = input.getReportId(); String reportId = input.getReportId();
String paramKey = input.getParamKey(); String paramKey = input.getParamKey();
String token = input.getToken();
icCustomerReportService.batchExport(reportId, token, paramKey, response); icCustomerReportService.batchExport(reportId, paramKey, response);
} }
@ReportRequest @ReportRequest

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java

@ -51,5 +51,5 @@ public interface IcCustomerReportService extends BaseService<IcCustomerReportEnt
*/ */
List<JiMuReportResultDTO> reportIdAndName(ReportListFormDTO formDTO); List<JiMuReportResultDTO> reportIdAndName(ReportListFormDTO formDTO);
void batchExport(String reportId, String token, String paramKey, HttpServletResponse response); void batchExport(String reportId, String paramKey, HttpServletResponse response);
} }

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java

@ -257,7 +257,7 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
} }
@Override @Override
public void batchExport(String reportId, String token, String paramKey, HttpServletResponse response) { public void batchExport(String reportId, String paramKey, HttpServletResponse response) {
// 1. 首先去积木服务,查询出报表数据源的详细信息,包括报表url,isList;获取到哪一列是id(idFieldName) // 1. 首先去积木服务,查询出报表数据源的详细信息,包括报表url,isList;获取到哪一列是id(idFieldName)
@ -293,7 +293,7 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
} }
// 2. 调用该url的接口,获取到一个列表,根据idFieldName取出ID列 // 2. 调用该url的接口,获取到一个列表,根据idFieldName取出ID列
List<String> ids = listIds(apiUrl, isHttps, idFieldName); List<String> ids = listIds(paramKey, apiUrl, isHttps, idFieldName);
// 3. 然后以这一列作为查询条件,循环,继续调用该接口,得到单条数据,每一条数据都下载一个excel,最后将其打包为一个压缩包下载 // 3. 然后以这一列作为查询条件,循环,继续调用该接口,得到单条数据,每一条数据都下载一个excel,最后将其打包为一个压缩包下载
Path storePath = makeTemporaryDownloadDir(reportId); Path storePath = makeTemporaryDownloadDir(reportId);
@ -453,8 +453,9 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
* @param idFieldName * @param idFieldName
* @return * @return
*/ */
public List<String> listIds(String apiUrl, boolean isHttps, String idFieldName) { public List<String> listIds(String paramKey, String apiUrl, boolean isHttps, String idFieldName) {
apiUrl = apiUrl.replace("${id}", ""); apiUrl = apiUrl.replace("${id}", "");
apiUrl = apiUrl.replace("${paramKey}", paramKey);
Map<String, Object> headers = new HashMap<>(); Map<String, Object> headers = new HashMap<>();
headers.put(Constant.AUTHORIZATION_HEADER, EpmetRequestHolder.getHeader(Constant.AUTHORIZATION_HEADER)); headers.put(Constant.AUTHORIZATION_HEADER, EpmetRequestHolder.getHeader(Constant.AUTHORIZATION_HEADER));

Loading…
Cancel
Save