diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql new file mode 100644 index 0000000000..5ceef02408 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql @@ -0,0 +1,12 @@ +CREATE TABLE `ic_customer_report` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `REPORT_ID` varchar(64) NOT NULL COMMENT '报表id', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除;', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间=绑定时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户报表关系表'; \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java index 4d53cebb86..cb6f89eb76 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java @@ -13,6 +13,10 @@ import java.io.Serializable; @Data public class ExportResiUserFormDTO implements Serializable { private static final long serialVersionUID = 8777535966834678256L; + /** + * 客户Id + */ + private String customerId; /** * 表单查询条件 */ @@ -27,5 +31,11 @@ public class ExportResiUserFormDTO implements Serializable { */ private IcExportTemplateSaveFormDTO exportConfig; + /** + * pageNo 报表用的 + */ + private Integer pageNo = 1; + private Integer pageSize = 1000; + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 76706a51b0..e3e68fdbb9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -32,6 +32,7 @@ import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO; import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; @@ -551,11 +552,47 @@ public class IcResiUserController implements ResultDataResolver { * @date 2021/11/19 4:24 下午 * @remark 用于报表调用的接口 试试 */ + @ReportRequest @NoRepeatSubmit @RequestMapping(value = "/exportExcelCustomData") - public Result>> exportExcelCustomData(@LoginUser TokenDto tokenDto, @RequestBody ExportResiUserFormDTO pageFormDTO, HttpServletResponse response) throws Exception { + public Map exportExcelCustomData(@LoginUser TokenDto tokenDto, @RequestParam("templateId") String templateId, + @RequestBody ExportResiUserFormDTO pageFormDTO) throws Exception { + log.warn("templateId=【"+templateId+"】"); + log.warn("pageFormDTO入参【"+JSON.toJSONString(pageFormDTO)+"】"); + pageFormDTO.setTemplateId(templateId); + if (null == pageFormDTO.getSearchForm()) { + IcResiUserPageFormDTO searchForm = new IcResiUserPageFormDTO(); + searchForm.setFormCode("resi_base_info"); + searchForm.setCustomerId(tokenDto.getCustomerId()); + searchForm.setStaffId(tokenDto.getUserId()); + // searchForm.setPageNo(pageFormDTO.getPageNo()); + // searchForm.setPageSize(pageFormDTO.getPageSize()); + List conditions=new ArrayList<>(); + // ResiUserQueryValueDTO temp=new ResiUserQueryValueDTO(); + // temp.setColumnName(""); + // temp.setColumnValue(Arrays.asList("IS_UNEMPLOYED")); + // temp.setQueryType("resi_category"); + // temp.setTableName("ic_resi_user"); + // conditions.add(temp); + searchForm.setConditions(conditions); + pageFormDTO.setSearchForm(searchForm); + } + pageFormDTO.getSearchForm().setPageNo(pageFormDTO.getPageNo()); + pageFormDTO.getSearchForm().setPageSize(pageFormDTO.getPageSize()); + if (null == pageFormDTO.getExportConfig()) { + IcExportTemplateSaveFormDTO exportTemplateSaveFormDTO = new IcExportTemplateSaveFormDTO(); + exportTemplateSaveFormDTO.setFormCode("resi_base_info"); + exportTemplateSaveFormDTO.setIsSaveTemp(false); + pageFormDTO.setExportConfig(exportTemplateSaveFormDTO); + } + //固定通用客户Id + pageFormDTO.setCustomerId("jmreport_resi_default"); Page> maps = icResiUserExportService.exportIcResiUser(tokenDto, pageFormDTO, null, true); - return new Result>>().ok(maps.getResult()); + Map result = new HashMap<>(); + result.put("total",maps.getPages()); + result.put("count",maps.getTotal()); + result.put("data",maps.getResult()); + return result; } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java index f32f44da1f..f22a744046 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java @@ -104,7 +104,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { WriteSheet writeSheet = null; try { //获取用户配置的导出条件 - Result exportConfigResult = this.getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig()); + Result exportConfigResult = this.getIcCustomExportConfig(exportResiUserFormDTO.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig()); Map itemOriginMap = getItemMap(searchForm.getCustomerId()); IcCustomExportResultDTO exportConfigData = exportConfigResult.getData(); @@ -120,6 +120,8 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { if (!onlyGetData){ + searchForm.setIsPage(false); + searchForm.setPageSize(NumConstant.TEN_THOUSAND); //需要合并的列 List mergeColumnIndexList = new ArrayList<>(); @@ -165,7 +167,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { mapListPage = PageHelper.startPage(searchForm.getPageNo(), searchForm.getPageSize(), searchForm.getIsPage()).doSelectPage(() -> { icResiUserService.dynamicQuery(searchForm.getCustomerId(), searchForm.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, searchForm.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath); }); - searchForm.setPageNo(searchForm.getPageNo() + NumConstant.ONE); + if (!searchForm.getIsPage()){ + searchForm.setPageNo(searchForm.getPageNo() + NumConstant.ONE); + } List> result = mapListPage.getResult(); @@ -179,7 +183,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { if (!onlyGetData){ excelWriter.write(resultData, writeSheet); } - } while (mapListPage.getResult().size() == searchForm.getPageSize()); + } while (!searchForm.getIsPage() && mapListPage.getResult().size() == searchForm.getPageSize()); } catch (IOException e) { log.error("exportIcResiUser exception", e); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMessage(), "导出失败"); @@ -226,6 +230,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { if (FieldConstant.ID.equals(key)) { newValue = Md5Util.md5(vauleStr); } + o.put(key,newValue); singleRowData.add(newValue); }); resultData.add(singleRowData); @@ -242,8 +247,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { searchForm.setCustomerId(tokenDto.getCustomerId()); searchForm.setStaffId(tokenDto.getUserId()); ValidatorUtils.validateEntity(searchForm, IcResiUserPageFormDTO.AddUserInternalGroup.class); - searchForm.setIsPage(false); - searchForm.setPageSize(NumConstant.TEN_THOUSAND); } @Nullable