From fa0058664b36f51ef5d4493e46bba8e846baccb5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Sun, 13 Feb 2022 14:03:13 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/IcPartymemberStyleImportExcel.java | 3 --- .../impl/IcPartymemberStyleServiceImpl.java | 18 ------------------ 2 files changed, 21 deletions(-) diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java index 722f994d92..38da34f534 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java @@ -44,9 +44,6 @@ public class IcPartymemberStyleImportExcel extends ExcelVerifyInfo { @NotBlank(message = "此列不能为空") private String mainDeed; - @Excel(name = "照片") - private String imageUrl; - @Excel(name="所属分类") @NotBlank(message = "此列不能为空") private String categoryName; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java index be22a71067..f245cfbc39 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java @@ -18,7 +18,6 @@ package com.epmet.modules.partymember.service.impl; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -232,7 +231,6 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcPartymemberStyleImportExcel.class); List failList = importResult.getFailList(); - log.info("excel中的数据校验失败:"+JSON.toJSONString(failList,true)); //存放错误数据行号 List numList = new ArrayList<>(); if (!org.springframework.util.CollectionUtils.isEmpty(failList)) { @@ -290,22 +288,6 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl { - IcPartymemberStyleImageEntity urlEntity = new IcPartymemberStyleImageEntity(); - urlEntity.setImageUrl(url); - urlEntity.setCustomerId(tokenDto.getCustomerId()); - urlEntity.setStyleId(entity.getId()); - urlEntity.setSort(i.getAndIncrement()); - urlEntity.setRevision(NumConstant.ZERO); - urlEntity.setDelFlag(NumConstant.ZERO_STR); - urlEntity.setCreatedBy(tokenDto.getUserId()); - urlEntity.setUpdatedBy(tokenDto.getUserId()); - urlEntity.setCreatedTime(new Date()); - urlEntity.setUpdatedTime(new Date()); - imageList.add(urlEntity); - }); - } return entity; }).collect(Collectors.toList()); 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 02/13] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AF=BC=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) { + + } + +} From 444c837fdcea59c54e5207cac803c0fa1d41e878 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 13 Feb 2022 15:02:08 +0800 Subject: [PATCH 03/13] =?UTF-8?q?9999=E6=9B=BF=E6=8D=A2=E4=B8=BA=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcSocietyOrgController.java | 7 +++---- .../impl/IcPartyActivityServiceImpl.java | 7 ++++--- .../service/impl/IcPartyUnitServiceImpl.java | 6 +++--- .../epmet/controller/BuildingController.java | 3 ++- .../com/epmet/controller/HouseController.java | 2 +- .../controller/NeighborHoodController.java | 3 ++- .../service/impl/BuildingServiceImpl.java | 2 +- .../impl/IcNeighborHoodServiceImpl.java | 18 +++++++++--------- .../impl/IcPartymemberStyleServiceImpl.java | 7 ++++--- 9 files changed, 29 insertions(+), 26 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java index 786fc77928..2b07959e33 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java @@ -20,6 +20,7 @@ package com.epmet.controller; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.ExcelUtils; @@ -27,10 +28,8 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.AddSocietyOrgFormDTO; import com.epmet.dto.form.EditSocietyOrgFormDTO; -import com.epmet.dto.form.GetListPlaceOrgFormDTO; import com.epmet.dto.form.GetListSocietyOrgFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.GetListPlaceOrgResultDTO; import com.epmet.dto.result.GetListSocietyOrgResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcSocietyOrgExcel; @@ -164,9 +163,9 @@ public class IcSocietyOrgController { Collections.sort(resultList); String subList = resultList.stream().map(String::valueOf).collect(Collectors.joining("、")); log.warn(str + "第" + subList + "行未成功!"); - return new Result().error(9999, str + "第" + subList + "行未成功!"); + return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!"); } return new Result().ok(str); } -} \ No newline at end of file +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java index cdfa84d5e2..4cea3f9136 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java @@ -24,6 +24,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; @@ -267,7 +268,7 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl list = result.stream().map(item -> { @@ -296,7 +297,7 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl list = result.stream().map(item -> { @@ -405,7 +405,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl result){ if (CollectionUtils.isEmpty(result)){ - return new Result().error(9999,"excel表格内没有数据"); + return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"excel表格内没有数据"); } List nums = new ArrayList<>(); - List gridNames = result.stream().map(m -> m.getGridName()).distinct().collect(Collectors.toList()); + List gridNames = result.stream().map(IcNeighborHoodExcel::getGridName).distinct().collect(Collectors.toList()); // 1. 查询数据网格是否存在 List gridInfos = customerGridDao.selectGridInfoByNames(gridNames, formDTO.getCustomerId()); if (CollectionUtils.isEmpty(gridInfos)){ @@ -238,7 +238,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl { for (InfoByNamesResultDTO g : gridInfos) { @@ -253,7 +253,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl neighborHoods = groupStatus.get(true); // 2. 查询组织选中组织下存在的小区 - List existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(m -> m.getNeighborHoodName()).distinct().collect(Collectors.toList()), formDTO.getCustomerId()); + List existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(IcNeighborHoodExcel::getNeighborHoodName).distinct().collect(Collectors.toList()), formDTO.getCustomerId()); // 为了显示多少行插入成功,未成功 result.forEach(r -> { for (String s : existNames) { @@ -272,7 +272,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl collect = finalNeedInsert.stream().collect(Collectors.groupingBy(o -> o.getGridName() + "_" + o.getNeighborHoodName(), Collectors.counting())); collect.forEach((k,v) -> { @@ -368,7 +368,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl imageList = new ArrayList<>(); List list = result.stream().map(item -> { @@ -299,9 +300,9 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl Date: Sun, 13 Feb 2022 16:37:42 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E9=80=9A=E7=94=A8DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/ImportHouseGeneralDTO.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java new file mode 100644 index 0000000000..0b0e6d2e19 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -0,0 +1,86 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/2/13 4:32 下午 + * @DESC + */ +@Data +public class ImportHouseGeneralDTO implements Serializable { + + private static final long serialVersionUID = -345610717773879687L; + + /** + * 组织名、ID + */ + private String agencyName; + private String agencyId; + + /** + * 网格名、ID + */ + private String gridName; + private String gridId; + + /** + * 小区名、ID + */ + private String neighborHoodName; + private String neighborHoodId; + + /** + * 所属楼栋、ID + */ + private String buildingName; + private String buildingId; + + /** + * 单元号、ID + */ + private Integer buildingUnit; + private Integer buildingUnitId; + + /** + * 门牌号 + */ + private String doorName; + + /** + * 房屋类型 + */ + private String houseType; + + /** + * 房屋用途 + */ + private String purpose; + + /** + * 是否出租 + */ + private String rentFlag; + + /** + * 姓名 + */ + private String ownerName; + + /** + * 电话 + */ + private String ownerPhone; + + /** + * 身份证 + */ + private String ownerIdCard; + + /** + * 行数 + */ + private Integer num; +} From 55ba9b5b71c9747562b9ab613a6c6fb96c98ce10 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sun, 13 Feb 2022 16:46:57 +0800 Subject: [PATCH 05/13] emm --- .../src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java index 33ad356bb1..ca83776f30 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java @@ -24,7 +24,7 @@ public class ImportInfoFormDTO implements Serializable { private String orgId; /** - * 组织类型 agency:组织,grid:网格 + * 组织类型 agency:组织,grid:网格,neighborHood:小区,building:楼栋 */ @NotBlank(message = "orgType不能为空",groups = ImportInfoForm.class) private String orgType; From a03ca03f47af0d2c8108bf073524d78cb008d1d3 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sun, 13 Feb 2022 17:01:17 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E6=88=BF=E5=B1=8BID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java index 0b0e6d2e19..b0601d449c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -80,7 +80,12 @@ public class ImportHouseGeneralDTO implements Serializable { private String ownerIdCard; /** - * 行数 + * 行号 */ private Integer num; + + /** + * 房屋ID + */ + private Integer houseId; } From 413af387af662b99c4af85dc6d87c2060cba93b7 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sun, 13 Feb 2022 17:03:24 +0800 Subject: [PATCH 07/13] fangwuID --- .../src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java index b0601d449c..99e09837b0 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -87,5 +87,5 @@ public class ImportHouseGeneralDTO implements Serializable { /** * 房屋ID */ - private Integer houseId; + private String houseId; } From c554be8b0b38f93a2611df56a91b4eb70cf16f5c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Feb 2022 10:52:51 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=9A=82=E6=8F=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 44 ++++++ .../com/epmet/controller/HouseController.java | 8 +- .../java/com/epmet/dao/IcBuildingDao.java | 49 +++++++ .../com/epmet/model/HouseInfoModelDTO.java | 41 ++++++ .../epmet/model/ImportHouseInfoListener.java | 128 +++++++++++++++++- .../java/com/epmet/redis/IcHouseRedis.java | 94 +++++++++++++ .../main/resources/mapper/IcBuildingDao.xml | 40 ++++++ 7 files changed, 401 insertions(+), 3 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index dc3fb232bc..8e179837e2 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -640,4 +640,48 @@ public class RedisKeys { public static String getHouseInfoCacheKey(String houseId,String customerId){ return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId); } + + /** + * @Description 临时房屋缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:38 上午 + */ + public static String getTemporaryHouseInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryHouse:").concat(customerId).concat(":").concat(userId); + } + + /** + * @Description 临时网格缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:38 上午 + */ + public static String getTemporaryGridInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryGrid:").concat(customerId).concat(":").concat(userId); + } + + /** + * @Description 临时小区缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:39 上午 + */ + public static String getTemporaryNeighborHoodInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryNeighborHood:").concat(customerId).concat(":").concat(userId); + } + + /** + * @Description 临时楼栋缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:39 上午 + */ + public static String getTemporaryBuildingInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(":").concat(userId); + } } 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 e41c93421d..ed586e0fdb 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 @@ -31,6 +31,7 @@ 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.dao.IcBuildingDao; import com.epmet.dto.form.*; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; @@ -40,6 +41,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.model.HouseInfoModel; import com.epmet.model.ImportHouseInfoListener; +import com.epmet.redis.IcHouseRedis; import com.epmet.service.HouseService; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; @@ -72,6 +74,10 @@ public class HouseController implements ResultDataResolver { @Autowired private EpmetUserOpenFeignClient userOpenFeignClient; + @Autowired + private IcBuildingDao icBuildingDao; + @Autowired + private IcHouseRedis icHouseRedis; @PostMapping("houselist") @@ -256,7 +262,7 @@ public class HouseController implements ResultDataResolver { excelReader = EasyExcel.read(inputStream).build(); // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class) - .registerReadListener(new ImportHouseInfoListener(formDTO)) + .registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis)) .build(); excelReader.read(readSheet); } finally { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 6d029cb291..8a1092573a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ImportHouseGeneralDTO; import com.epmet.dto.result.BaseInfoFamilyBuildingResultDTO; import com.epmet.dto.result.BuildingResultDTO; import com.epmet.entity.CustomerAgencyEntity; @@ -73,4 +74,52 @@ public interface IcBuildingDao extends BaseDao { List buildingListByIds(@Param("buildingIdList") List buildingIdList); IPage buildingListByIds(IPage page,@Param("buildingIdList") List buildingIdList); + /** + * @Description 根据ID查询楼栋名 + * @param orgId + * @author zxc + * @date 2022/2/13 2:32 下午 + */ + String selectBuildingNameById(@Param("orgId")String orgId); + + /** + * @Description 根据ID查询小区名 + * @param orgId + * @author zxc + * @date 2022/2/13 4:21 下午 + */ + String selectNeighborHoodNameById(@Param("orgId")String orgId); + + /** + * @Description 根据ID查询网格名 + * @param orgId + * @author zxc + * @date 2022/2/13 4:26 下午 + */ + String selectGridNameById(@Param("orgId")String orgId); + + /** + * @Description 根据ID查询组织名 + * @param orgId + * @author zxc + * @date 2022/2/13 4:29 下午 + */ + String selectAgencyNameById(@Param("orgId")String orgId); + + /** + * @Description 查询组织下所有网格信息 + * @param orgId + * @author zxc + * @date 2022/2/14 9:48 上午 + */ + List selectAllGridByOrgId(@Param("orgId")String orgId); + + /** + * @Description 查询网格下所有的小区 + * @param orgId + * @author zxc + * @date 2022/2/14 10:21 上午 + */ + List selectAllNeighborHoodByGridIds(@Param("orgIds")List orgId); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java new file mode 100644 index 0000000000..2193e9cf2d --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java @@ -0,0 +1,41 @@ +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 HouseInfoModelDTO { + + private String agencyName; + + private String gridName; + + private String neighborHoodName; + + private String buildingName; + + private Integer buildingUnit; + + private String doorName; + + private String houseType; + + private String purpose; + + private String rentFlag; + + private String ownerName; + + private String ownerPhone; + + private String ownerIdCard; + + private Integer num; + +} 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 index 640a0e73ce..d8c402b040 100644 --- 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 @@ -2,7 +2,21 @@ package com.epmet.model; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcBuildingDao; +import com.epmet.dto.ImportHouseGeneralDTO; import com.epmet.dto.form.ImportInfoFormDTO; +import com.epmet.redis.IcHouseRedis; +import org.apache.commons.lang3.StringUtils; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author zxc @@ -11,23 +25,133 @@ import com.epmet.dto.form.ImportInfoFormDTO; */ public class ImportHouseInfoListener extends AnalysisEventListener { + List nums = new ArrayList<>(); + List needDisposeList = new ArrayList<>(); + List needInsertList = new ArrayList<>(); + Integer num = NumConstant.ZERO; + String buildingName = null; + String neighborHoodName = null; + String gridName = null; + String agencyName = null; + Map gridInfos = null; + List gridInfoDTOs = null; + Map neighborHoodInfos = null; + List neighborHoodInfoDTOs = null; + private ImportInfoFormDTO formDTO; + private IcBuildingDao icBuildingDao; + private IcHouseRedis icHouseRedis; - public ImportHouseInfoListener(ImportInfoFormDTO formDTO){ + public ImportHouseInfoListener(ImportInfoFormDTO formDTO,IcBuildingDao icBuildingDao, IcHouseRedis icHouseRedis){ this.formDTO = formDTO; + this.icBuildingDao = icBuildingDao; + this.icHouseRedis = icHouseRedis; } @Override public void invoke(HouseInfoModel data, AnalysisContext context) { - System.out.println("aaa"); if (null == data){ return; } + ImportHouseGeneralDTO dto = ConvertUtils.sourceToTarget(data, ImportHouseGeneralDTO.class); + num = num + NumConstant.ONE; + if (formDTO.getOrgType().equals("building")){ + buildingName = null == buildingName ? icBuildingDao.selectBuildingNameById(formDTO.getOrgId()) : buildingName; + // 不是本楼的 + if (!data.getBuildingName().equals(buildingName)){ + nums.add(num); + }else { + /** + * 1。根据楼宇查询 + */ + needDisposeList.add(dto); + Map collect = needDisposeList.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnitId() + "_" + n.getDoorName(), n -> StringUtils.isNotBlank(n.getHouseId()) ? n.getHouseId() : "")); + icHouseRedis.setTemporaryCacheHouse(formDTO.getCustomerId(), collect, formDTO.getUserId()); +// Map temporaryCacheHouses = icHouseRedis.getTemporaryCacheHouses(formDTO.getCustomerId(), formDTO.getUserId()); + // TODO 等待方法 + List result = new ArrayList<>(); + //把房屋ID不为空的行号加入nums,说明已存在 + result.forEach(r -> { + if (StringUtils.isNotBlank(r.getHouseId())){ + nums.add(r.getNum()); + } + }); + } + }else if (formDTO.getOrgType().equals("neighborHood")){ + neighborHoodName = null == neighborHoodName ? icBuildingDao.selectNeighborHoodNameById(formDTO.getOrgId()) : neighborHoodName; + //不是本小区的 + if (!data.getNeighborHoodName().equals(neighborHoodName)){ + nums.add(num); + }else { + + } + }else if (formDTO.getOrgType().equals("grid")){ + gridName = null == gridName ? icBuildingDao.selectGridNameById(formDTO.getOrgId()) : gridName; + //不是本网格的 + if (!data.getGridName().equals(gridName)){ + nums.add(num); + }else { + // + } + }else if (formDTO.getOrgType().equals("agency")){ + agencyName = null == agencyName ? icBuildingDao.selectAgencyNameById(formDTO.getOrgId()) : agencyName; + //不是本组织的 + if (!data.getAgencyName().equals(agencyName)){ + nums.add(num); + }else { + // 根据组织查询出所有网格,甩出不是本组织下的网格 + gridInfos = null == gridInfos ? getGridInfos(formDTO.getOrgId()) : gridInfos; + if (null == gridInfos){ + // 组织下确实不存在网格 + return; + } + // 根据网格名对比,没有找到的就把行号加入到未执行成功队列中 + Object cacheGridName = icHouseRedis.getTemporaryCacheGrid(formDTO.getCustomerId(), formDTO.getUserId(), dto.getGridName()); + if (null == cacheGridName){ + nums.add(num); + return; + } + dto.setGridId(cacheGridName.toString()); + dto.setAgencyId(formDTO.getOrgId()); + needDisposeList.add(dto); + } + } + } + + /** + * @Description 获取网格信息 + * @param orgId + * @author zxc + * @date 2022/2/14 9:57 上午 + */ + public Map getGridInfos(String orgId){ + gridInfoDTOs = icBuildingDao.selectAllGridByOrgId(orgId); + gridInfos = gridInfoDTOs.stream().collect(Collectors.toMap(n -> n.getGridName(), n -> n.getGridId())); + icHouseRedis.setTemporaryCacheGrid(formDTO.getCustomerId(), gridInfos, formDTO.getUserId()); + return gridInfos; + } + + /** + * @Description 获取网格下的小区 + * @param gridIds + * @author zxc + * @date 2022/2/14 10:16 上午 + */ + public Map getNeighborHoodInfos(List gridIds){ + neighborHoodInfoDTOs = icBuildingDao.selectAllNeighborHoodByGridIds(gridIds); + neighborHoodInfos = neighborHoodInfoDTOs.stream().collect(Collectors.toMap(n -> n.getGridId() + "_" + n.getNeighborHoodName(), n -> n.getNeighborHoodId())); + icHouseRedis.setTemporaryCacheNeighBorHood(formDTO.getCustomerId(), neighborHoodInfos, formDTO.getUserId()); + return neighborHoodInfos; } @Override public void doAfterAllAnalysed(AnalysisContext context) { + // 删除缓存 + icHouseRedis.delTemporaryCacheGrids(formDTO.getCustomerId(), formDTO.getUserId()); + icHouseRedis.delTemporaryCacheNeighBorHood(formDTO.getCustomerId(), formDTO.getUserId()); + icHouseRedis.delTemporaryCacheBuilding(formDTO.getCustomerId(), formDTO.getUserId()); + icHouseRedis.delTemporaryCacheHouses(formDTO.getCustomerId(), formDTO.getUserId()); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java index 4f3ece54a8..a4882e915e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java @@ -18,15 +18,23 @@ package com.epmet.redis; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcHouseDao; +import com.epmet.dto.ImportHouseGeneralDTO; import com.epmet.dto.result.HouseInfoDTO; +import com.epmet.model.HouseInfoModel; +import com.epmet.model.HouseInfoModelDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -43,6 +51,9 @@ public class IcHouseRedis { @Autowired private IcHouseDao icHouseDao; + @Autowired + private RedisTemplate redisTemplate; + public void delete(Object[] ids) { } @@ -79,4 +90,87 @@ public class IcHouseRedis { return houseInfo; } + /** + * @Description 存放房屋临时缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 9:04 上午 + */ + public void setTemporaryCacheHouse(String customerId, Map map,String userId){ + String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId); + redisUtils.hMSet(key,map,RedisUtils.NOT_EXPIRE); + } + + /** + * @Description 获取房屋临时缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:28 上午 + */ + public Object getTemporaryCacheHouse(String customerId,String userId,String buildingIdAndUnitIdAndHouseName){ + String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId); + return redisUtils.hGet(key, buildingIdAndUnitIdAndHouseName); + } + + /** + * @Description 删除房屋临时缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 9:29 上午 + */ + public void delTemporaryCacheHouses(String customerId,String userId){ + String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } + + public void setTemporaryCacheGrid(String customerId, Map map,String userId) { + String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId, userId); + redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); + } + public Object getTemporaryCacheGrid(String customerId,String userId,String gridName){ + String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); + Object o = redisUtils.hGet(key, gridName); + return o; + } + public Map getTemporaryCacheGrids(String customerId,String userId){ + String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); + return redisUtils.hGetAll(key); + } + public void delTemporaryCacheGrids(String customerId,String userId){ + String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } + + public void setTemporaryCacheNeighBorHood(String customerId, Map map,String userId) { + String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId, userId); + redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); + } + public Object getTemporaryCacheNeighBorHood(String customerId,String userId,String gridIdAndNeighborHoodName){ + String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); + return redisUtils.hGet(key, gridIdAndNeighborHoodName); + } + public void delTemporaryCacheNeighBorHood(String customerId,String userId){ + String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } + + public void setTemporaryCacheBuilding(String customerId, Map map,String userId) { + String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId, userId); + redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); + } + public Object getTemporaryCacheBuilding(String customerId,String userId,String neighborHoodIdAndBuildingName){ + String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); + return redisUtils.hGet(key, neighborHoodIdAndBuildingName); + } + public void delTemporaryCacheBuilding(String customerId,String userId){ + String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } + + + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index d4f3847235..19291a2fc4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -221,4 +221,44 @@ order by gridName,neighborHoodName,buildingName + + + + + + + + + + + + + + + + + + From 11ff0e4433336fe25c70f64cfa337ec79a85a4c1 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Feb 2022 14:11:10 +0800 Subject: [PATCH 09/13] =?UTF-8?q?id=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java index 99e09837b0..2cc7e8cc4e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -42,7 +42,7 @@ public class ImportHouseGeneralDTO implements Serializable { * 单元号、ID */ private Integer buildingUnit; - private Integer buildingUnitId; + private String buildingUnitId; /** * 门牌号 From 38397a605aa5ef48f5ff567d0add4de6f91a74a6 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Feb 2022 14:35:48 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=9A=82=E6=8F=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 11 ++ .../java/com/epmet/dao/IcBuildingDao.java | 16 ++ .../epmet/model/ImportHouseInfoListener.java | 168 ++++++++++++++---- .../java/com/epmet/redis/IcHouseRedis.java | 119 +++++++++++++ .../main/resources/mapper/IcBuildingDao.xml | 22 +++ 5 files changed, 300 insertions(+), 36 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 8e179837e2..580a8d97e1 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -684,4 +684,15 @@ public class RedisKeys { public static String getTemporaryBuildingInfoCacheKey(String customerId,String userId){ return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(":").concat(userId); } + + /** + * @Description 临时楼栋单元缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:54 下午 + */ + public static String getTemporaryBuildingUnitInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryBuildingUnit:").concat(customerId).concat(":").concat(userId); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 8a1092573a..4a04c1ee71 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -122,4 +122,20 @@ public interface IcBuildingDao extends BaseDao { */ List selectAllNeighborHoodByGridIds(@Param("orgIds")List orgId); + /** + * @Description 根据小区ID查询楼栋 + * @param neighborHoodId + * @author zxc + * @date 2022/2/14 1:25 下午 + */ + List selectAllBuildingByNeighborHoodId(@Param("neighborHoodId")String neighborHoodId); + + /** + * @Description 根据楼栋ID查询楼栋单元 + * @param building + * @author zxc + * @date 2022/2/14 1:58 下午 + */ + List selectAllBuildingUnitByBuildingId(@Param("building")String building); + } \ No newline at end of file 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 index d8c402b040..3d2aed1a32 100644 --- 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 @@ -4,6 +4,9 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.ImportHouseGeneralDTO; @@ -12,10 +15,7 @@ import com.epmet.redis.IcHouseRedis; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -26,17 +26,24 @@ import java.util.stream.Collectors; public class ImportHouseInfoListener extends AnalysisEventListener { List nums = new ArrayList<>(); + Integer num = NumConstant.ZERO; + List needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); - Integer num = NumConstant.ZERO; + String buildingName = null; String neighborHoodName = null; String gridName = null; String agencyName = null; + Map gridInfos = null; List gridInfoDTOs = null; Map neighborHoodInfos = null; List neighborHoodInfoDTOs = null; + Map buildingInfos = null; + List buildingInfoDTOs = null; + Map buildingUnitInfos = null; + List buildingUnitInfoDTOs = null; private ImportInfoFormDTO formDTO; private IcBuildingDao icBuildingDao; @@ -53,8 +60,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener getBuildingInfos(String neighborHoodId){ + buildingInfoDTOs = icBuildingDao.selectAllBuildingByNeighborHoodId(neighborHoodId); + buildingInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getNeighborHoodId() + "_" + n.getBuildingName(), n -> n.getBuildingId())); + icHouseRedis.setTemporaryCacheBuilding(formDTO.getCustomerId(), buildingInfos, formDTO.getUserId()); + return buildingInfos; + } + + /** + * @Description 获取楼栋下的单元 + * @param buildingId + * @author zxc + * @date 2022/2/14 2:04 下午 + */ + public Map getBuildingUnitInfos(String buildingId){ + buildingUnitInfoDTOs = icBuildingDao.selectAllBuildingUnitByBuildingId(buildingId); + buildingUnitInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnit(), n -> n.getBuildingUnitId())); + icHouseRedis.setTemporaryCacheBuildingUnit(formDTO.getCustomerId(), buildingUnitInfos, formDTO.getUserId()); + return buildingInfos; + } + @Override public void doAfterAllAnalysed(AnalysisContext context) { @@ -151,6 +246,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener map,String userId) { String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取网格临时缓存【单个】 + * @param customerId + * @param userId + * @param gridName + * @author zxc + * @date 2022/2/14 1:49 下午 + */ public Object getTemporaryCacheGrid(String customerId,String userId,String gridName){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); Object o = redisUtils.hGet(key, gridName); return o; } + + /** + * @Description 获取网格临时缓存【多个】 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public Map getTemporaryCacheGrids(String customerId,String userId){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); return redisUtils.hGetAll(key); } + + /** + * @Description 删除网格临时缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public void delTemporaryCacheGrids(String customerId,String userId){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时小区缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public void setTemporaryCacheNeighBorHood(String customerId, Map map,String userId) { String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取临时小区缓存【单个】 + * @param customerId + * @param userId + * @param gridIdAndNeighborHoodName + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public Object getTemporaryCacheNeighBorHood(String customerId,String userId,String gridIdAndNeighborHoodName){ String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); return redisUtils.hGet(key, gridIdAndNeighborHoodName); } + + /** + * @Description 删除临时小区缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void delTemporaryCacheNeighBorHood(String customerId,String userId){ String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时楼栋缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void setTemporaryCacheBuilding(String customerId, Map map,String userId) { String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取临时楼栋缓存【单个】 + * @param customerId + * @param userId + * @param neighborHoodIdAndBuildingName + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public Object getTemporaryCacheBuilding(String customerId,String userId,String neighborHoodIdAndBuildingName){ String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); return redisUtils.hGet(key, neighborHoodIdAndBuildingName); } + + /** + * @Description 删除临时楼栋缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void delTemporaryCacheBuilding(String customerId,String userId){ String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时楼栋单元缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public void setTemporaryCacheBuildingUnit(String customerId, Map map,String userId) { + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId, userId); + redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); + } + + /** + * @Description 获取临时楼栋单元缓存【单个】 + * @param customerId + * @param userId + * @param buildingIdAndUnitName + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public Object getTemporaryCacheBuildingUnit(String customerId,String userId,String buildingIdAndUnitName){ + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId); + return redisUtils.hGet(key, buildingIdAndUnitName); + } + /** + * @Description 删除临时楼栋单元缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public void delTemporaryCacheBuildingUnit(String customerId,String userId){ + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index 19291a2fc4..93ff429c4e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -261,4 +261,26 @@ ) + + + + + + From be3c7dc3724b071207ee9e96947b40c5b3c93cdb Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 14 Feb 2022 14:59:27 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java | 6 ++++++ .../main/java/com/epmet/constant/CustomerGridConstant.java | 2 ++ 2 files changed, 8 insertions(+) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java index 2cc7e8cc4e..ce310c480d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -19,6 +19,8 @@ public class ImportHouseGeneralDTO implements Serializable { */ private String agencyName; private String agencyId; + private String pid; + private String pids; /** * 网格名、ID @@ -37,6 +39,10 @@ public class ImportHouseGeneralDTO implements Serializable { */ private String buildingName; private String buildingId; + private String type; + private Integer totalUnitNum; + private Integer totalFloorNum; + private Integer totalHouseNum; /** * 单元号、ID diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java index 4374038f6f..5b8289ffa1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java @@ -16,4 +16,6 @@ public interface CustomerGridConstant { String DEPT = "dept"; String GRID = "grid"; + + String NEIGHBORHOOD = "neighborHood"; } From 1414888249b8c26293b4f70672f4197aee863011 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Feb 2022 15:07:46 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/ImportHouseGeneralDTO.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java index ce310c480d..ea6fbb6b49 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -19,6 +20,10 @@ public class ImportHouseGeneralDTO implements Serializable { */ private String agencyName; private String agencyId; + + /** + * agencyId的pid + */ private String pid; private String pids; @@ -39,9 +44,25 @@ public class ImportHouseGeneralDTO implements Serializable { */ private String buildingName; private String buildingId; + + /** + * 房屋类型 + */ private String type; - private Integer totalUnitNum; + + /** + * 单元数 + */ + private Integer totalUnitNum = NumConstant.ONE; + + /** + * 层数 + */ private Integer totalFloorNum; + + /** + * 户数 + */ private Integer totalHouseNum; /** From a5db5669c0da6eb7a24d663115d76cfe10e72fc9 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 14 Feb 2022 15:24:45 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=85=9A=E5=91=98=E9=A3=8E=E9=87=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=80=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partymember/service/impl/IcPartymemberStyleServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java index 76f75c7e45..e16fdd1384 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java @@ -197,6 +197,7 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); PageInfo pageInfo = new PageInfo<>(list); List dtoList = ConvertUtils.sourceToTarget(list, IcPartymemberStyleDTO.class);