From f9ef9e267e41000ec87a3961762e0fb35fbe585b Mon Sep 17 00:00:00 2001
From: zxc <1272811460@qq.com>
Date: Sun, 13 Feb 2022 14:14:09 +0800
Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E4=BF=A1=E6=81=AF=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
epmet-module/gov-org/gov-org-server/pom.xml | 6 +++
.../com/epmet/controller/HouseController.java | 43 +++++++++++++--
.../java/com/epmet/model/HouseInfoModel.java | 52 +++++++++++++++++++
.../epmet/model/ImportHouseInfoListener.java | 33 ++++++++++++
4 files changed, 130 insertions(+), 4 deletions(-)
create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java
create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml
index 9bd6cedb44..094292fe13 100644
--- a/epmet-module/gov-org/gov-org-server/pom.xml
+++ b/epmet-module/gov-org/gov-org-server/pom.xml
@@ -125,6 +125,12 @@
2.0.0
compile
+
+ com.alibaba
+ easyexcel
+ 3.0.3
+ compile
+
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
index cd54f15e64..ef37b0234b 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
@@ -19,6 +19,9 @@ package com.epmet.controller;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.read.metadata.ReadSheet;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
@@ -28,16 +31,15 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.IcHouseFormDTO;
-import com.epmet.dto.form.IcNeighborHoodFormDTO;
-import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
-import com.epmet.dto.form.LoginUserDetailsFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.excel.IcHouseExcel;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
+import com.epmet.model.HouseInfoModel;
+import com.epmet.model.ImportHouseInfoListener;
import com.epmet.service.HouseService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
@@ -49,6 +51,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
@@ -232,4 +235,36 @@ public class HouseController implements ResultDataResolver {
Result> queryListHouseInfo(@RequestBody Set houseIds, @RequestParam("customerId") String customerId){
return new Result>().ok(houseService.queryListHouseInfo(houseIds,customerId));
}
+
+ @PostMapping("houseimport")
+ public Result houseImport(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file,
+ @RequestParam("orgId")String orgId,
+ @RequestParam("orgType")String orgType){
+ ImportInfoFormDTO formDTO = new ImportInfoFormDTO();
+ formDTO.setCustomerId(tokenDTO.getCustomerId());
+ formDTO.setOrgType(orgType);
+ formDTO.setOrgId(orgId);
+ formDTO.setUserId(tokenDTO.getUserId());
+ ExcelReader excelReader = null;
+ try {
+ InputStream inputStream = null;
+ try {
+ inputStream = file.getInputStream();
+ } catch (IOException e) {
+ return new Result().error("读取文件失败");
+ }
+ excelReader = EasyExcel.read(inputStream).build();
+ // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
+ ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class)
+ .registerReadListener(new ImportHouseInfoListener(formDTO))
+ .build();
+ excelReader.read(readSheet);
+ } finally {
+ if (excelReader != null) {
+ excelReader.finish();
+ }
+ }
+ return new Result<>();
+ }
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java
new file mode 100644
index 0000000000..db6078ba53
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java
@@ -0,0 +1,52 @@
+package com.epmet.model;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/2/13 1:26 下午
+ * @DESC
+ */
+@Data
+public class HouseInfoModel {
+
+ @ExcelProperty(value = "所属组织")
+ private String agencyName;
+
+ @ExcelProperty(value = "所属网格")
+ private String gridName;
+
+ @ExcelProperty(value = "所属小区")
+ @Length(max=50,message = "不能超过50个字")
+ private String neighborHoodName;
+
+ @ExcelProperty(value = "所属楼栋")
+ private String buildingName;
+
+ @ExcelProperty(value = "单元号")
+ private Integer buildingUnit;
+
+ @ExcelProperty(value = "门牌号")
+ private String doorName;
+
+ @ExcelProperty(value = "房屋类型")
+ private String houseType;
+
+ @ExcelProperty(value = "房屋用途")
+ private String purpose;
+
+ @ExcelProperty(value = "出租")
+ private String rentFlag;
+
+ @ExcelProperty(value = "房主姓名")
+ private String ownerName;
+
+ @ExcelProperty(value = "房主电话")
+ private String ownerPhone;
+
+ @ExcelProperty(value = "房主身份证")
+ private String ownerIdCard;
+
+}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
new file mode 100644
index 0000000000..640a0e73ce
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
@@ -0,0 +1,33 @@
+package com.epmet.model;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.epmet.dto.form.ImportInfoFormDTO;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/2/13 1:25 下午
+ * @DESC
+ */
+public class ImportHouseInfoListener extends AnalysisEventListener {
+
+ private ImportInfoFormDTO formDTO;
+
+ public ImportHouseInfoListener(ImportInfoFormDTO formDTO){
+ this.formDTO = formDTO;
+ }
+
+ @Override
+ public void invoke(HouseInfoModel data, AnalysisContext context) {
+ System.out.println("aaa");
+ if (null == data){
+ return;
+ }
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+
+ }
+
+}