diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql
new file mode 100644
index 0000000000..aa7b268044
--- /dev/null
+++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql
@@ -0,0 +1,5 @@
+INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1556509011061993473', 'jmreport_category', '报表应用类别', '居民信息、房屋信息', 32, 0, 0, '1', '2022-08-08 13:14:01', '1', '2022-08-08 13:14:01');
+
+
+INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1556509175185108994', 1556509011061993473, '房屋信息', 'house_info', '0', '', 2, 0, 0, '1', '2022-08-08 13:14:41', '1', '2022-08-08 13:14:41');
+INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1556509102015475714', 1556509011061993473, '居民信息', 'resi_info', '0', '', 1, 0, 0, '1', '2022-08-08 13:14:23', '1', '2022-08-08 13:14:23');
diff --git a/epmet-commons/epmet-commons-feignclient/pom.xml b/epmet-commons/epmet-commons-feignclient/pom.xml
new file mode 100644
index 0000000000..4cf486cefb
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/pom.xml
@@ -0,0 +1,24 @@
+
+
+
+ epmet-commons
+ com.epmet
+ 2.0.0
+
+
+ 4.0.0
+ jar
+
+ epmet-commons-feignclient
+
+
+
+ com.epmet
+ epmet-commons-tools
+ 2.0.0
+
+
+
+
\ No newline at end of file
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java
new file mode 100644
index 0000000000..1c92f30d11
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java
@@ -0,0 +1,22 @@
+package com.epmet.commons.feignclient.dtos;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 积木报表的返回值Page对象
+ * @param
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class JiMuPage {
+ private int pageNo;
+ private int pageSize;
+ private int total;
+ private int pages;
+ private List> records;
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java
new file mode 100644
index 0000000000..5aa42d273a
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java
@@ -0,0 +1,20 @@
+package com.epmet.commons.feignclient.dtos;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 积木报表的返回值Result对象
+ * @param
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class JiMuResult {
+ private boolean success = true;
+ private String message = "";
+ private Integer code = 0;
+ private T result;
+ private T data;
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java
new file mode 100644
index 0000000000..caf58ec9a9
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java
@@ -0,0 +1,33 @@
+package com.epmet.commons.feignclient.dtos.form;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/8/8 15:08
+ * @DESC
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class JiMuReportFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 3590609549416867701L;
+
+ /**
+ * 报表IDs
+ */
+ private List reportIds;
+
+ /**
+ * 类别
+ */
+ private List categoryKeys;
+
+ private String id;
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java
new file mode 100644
index 0000000000..7e66c588e9
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.commons.feignclient.dtos.form;
+
+import lombok.Data;
+
+/**
+ * 批量导出用的requst dto
+ */
+@Data
+public class JimuReportExportRequestDTO {
+ private String excelConfigId;
+ private ExportRequestQueryParam queryParam = new ExportRequestQueryParam();
+
+ /**
+ * 批量导出用的请求参数
+ */
+ @Data
+ public static class ExportRequestQueryParam {
+ private String id;
+ private String token;
+ private String paramKey;
+ private String pageNo;
+ private Integer pageSize;
+ private String currentPageNo;
+ private Integer currentPageSize;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java
new file mode 100644
index 0000000000..9e27d5ab5b
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.commons.feignclient.dtos.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.Map;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class JiMuReportDetailResultDTO {
+ private String id;
+ private String code;
+ private String name;
+ private String note;
+ private String status;
+ private String type;
+ private String jsonStr;
+ private String apiUrl;
+ private String apiMethod;
+ private String apiCode;
+ private String thumb;
+ private Integer template;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+ private Map dataList;
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java
new file mode 100644
index 0000000000..6ef587b6d5
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.commons.feignclient.dtos.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/8/8 15:10
+ * @DESC
+ */
+@Data
+public class JiMuReportResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -4048477731892329569L;
+
+ private String code;
+
+ private String name;
+
+ private String id;
+ private String reportId;
+ private String reportName;
+
+ private Boolean isList = false;
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java
new file mode 100644
index 0000000000..8eb58e8b74
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java
@@ -0,0 +1,18 @@
+package com.epmet.commons.feignclient.dtos.result;
+
+import lombok.Data;
+
+@Data
+public class JimuReportDbDataResultDTO {
+
+ private ReportDB reportDb;
+
+ @Data
+ public static class ReportDB {
+ private String apiUrl;
+ private String apiMethod;
+ private String isList;
+ private String dbChName;
+ }
+
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java
new file mode 100644
index 0000000000..ef4037afe8
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.commons.feignclient.dtos.result;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 积木报表,报表字段列表
+ */
+@Data
+public class JimuReportFieldTreeResultDTO {
+
+ private Boolean expand;
+ private String code;
+ private List children;
+ private String dbId;
+ private String type;
+ private String isList;
+
+ @Data
+ public static class Child {
+ private Boolean expand;
+ private String title;
+ private String fieldText;
+ }
+}
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java
new file mode 100644
index 0000000000..08b07c0dab
--- /dev/null
+++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java
@@ -0,0 +1,47 @@
+package com.epmet.commons.feignclient.feigns;
+
+import com.epmet.commons.feignclient.dtos.JiMuPage;
+import com.epmet.commons.feignclient.dtos.JiMuResult;
+import com.epmet.commons.feignclient.dtos.form.JimuReportExportRequestDTO;
+import com.epmet.commons.feignclient.dtos.result.JiMuReportDetailResultDTO;
+import com.epmet.commons.feignclient.dtos.result.JimuReportDbDataResultDTO;
+import com.epmet.commons.feignclient.dtos.result.JimuReportFieldTreeResultDTO;
+import com.epmet.commons.feignclient.feigns.fallback.JiMuReportOpenFeignClientFallbackFactory;
+import com.epmet.commons.tools.constant.ServiceConstant;
+import feign.Response;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/8/8 13:52
+ * @DESC
+ */
+@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class)
+//@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class, url = "localhost:8118")
+public interface JiMuReportOpenFeignClient {
+
+ @GetMapping(value = "jmreport/excelQuery")
+ JiMuResult> getList(@RequestParam("pageNo") Integer pageNo,
+ @RequestParam("pageSize") Integer pageSize,
+ @RequestParam("name") String name,
+ @RequestParam("reportType") String reportType,
+ @RequestParam("token") String token,
+ @RequestHeader MultiValueMap headers);
+
+ @GetMapping("jmreport/show")
+ JiMuResult