From 6ccee695639fbdb502d2b97f4150e1530f923539 Mon Sep 17 00:00:00 2001 From: lzh Date: Sat, 30 Oct 2021 00:12:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E5=8C=BA=EF=BC=8C=E6=A5=BC=E5=AE=87?= =?UTF-8?q?=EF=BC=8C=E6=88=BF=E5=B1=8B=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=9F=A5=E8=AF=A2=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=8C=E5=AF=BC=E5=85=A5=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/NeighborhoodConstant.java | 4 +- .../com/epmet/dto/form/IcBulidingFormDTO.java | 15 +- .../com/epmet/dto/form/IcHouseFormDTO.java | 6 +- .../epmet/dto/form/IcNeighborHoodFormDTO.java | 4 +- .../dto/form/ListIcNeighborHoodFormDTO.java | 4 +- .../dto/result/IcNeighborHoodResultDTO.java | 8 +- .../epmet/controller/BuildingController.java | 70 +++++++- .../com/epmet/controller/HouseController.java | 81 ++++++++- .../controller/NeighborHoodController.java | 98 ++++++++--- .../main/java/com/epmet/dao/IcHouseDao.java | 4 +- .../java/com/epmet/excel/IcBuildingExcel.java | 12 +- .../java/com/epmet/excel/IcHouseExcel.java | 14 +- .../com/epmet/excel/IcNeighborHoodExcel.java | 5 +- .../com/epmet/service/BuildingService.java | 7 + .../java/com/epmet/service/HouseService.java | 7 + .../service/impl/BuildingServiceImpl.java | 119 ++++++++++++- .../epmet/service/impl/HouseServiceImpl.java | 93 +++++++++- .../service/impl/NeighborHoodServiceImpl.java | 160 +++--------------- .../java/com/epmet/util/ExcelPoiUtils.java | 16 +- .../java/com/epmet/util/ExcelVerifyInfo.java | 31 ++++ .../main/resources/excel/building_export.xlsx | Bin 0 -> 12531 bytes .../main/resources/excel/house_export.xlsx | Bin 0 -> 11453 bytes .../main/resources/excel/neighbor_export.xlsx | Bin 0 -> 12931 bytes .../main/resources/mapper/IcBuildingDao.xml | 86 +++++----- .../src/main/resources/mapper/IcHouseDao.xml | 137 ++++++++------- .../resources/mapper/IcNeighborHoodDao.xml | 48 ++++-- 26 files changed, 685 insertions(+), 344 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelVerifyInfo.java create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/building_export.xlsx create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_export.xlsx create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export.xlsx diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/constant/NeighborhoodConstant.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/constant/NeighborhoodConstant.java index a7b77e0b90..49a21f262e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/constant/NeighborhoodConstant.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/constant/NeighborhoodConstant.java @@ -6,10 +6,10 @@ package com.epmet.constant; */ public interface NeighborhoodConstant { - String NEIGHBOR_HOOD= "neighbourHood"; + String GRID = "grid"; + String NEIGHBOR_HOOD= "neighbourHood"; String BUILDING = "building"; - String HOUSE = "house"; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingFormDTO.java index da2b08fc09..9026613dc1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingFormDTO.java @@ -24,6 +24,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -74,43 +75,43 @@ public class IcBulidingFormDTO implements Serializable { /** * 排序 */ - @NotBlank(message = "排序不能为空", groups = { UpdateGroup.class}) + @NotNull(message = "排序不能为空", groups = {AddGroup.class, UpdateGroup.class}) private Integer sort = 0; /** * 总单元数 */ - @NotBlank(message = "总单元数不能为空", groups = {AddGroup.class, UpdateGroup.class}) + @NotNull(message = "总单元数不能为空", groups = {AddGroup.class, UpdateGroup.class}) private Integer totalUnitNum=1; /** * 总楼层总数 */ - @NotBlank(message = "总楼层总数不能为空", groups = {AddGroup.class, UpdateGroup.class}) + @NotNull(message = "总楼层总数不能为空", groups = {AddGroup.class, UpdateGroup.class}) private Integer totalFloorNum; /** * 总户数 */ - @NotBlank(message = "总户数不能为空", groups = {AddGroup.class, UpdateGroup.class}) + @NotNull(message = "总户数不能为空", groups = {AddGroup.class, UpdateGroup.class}) private Integer totalHouseNum; /** * 坐标位置 */ - @NotBlank(message = "坐标位置不能为空", groups = { UpdateGroup.class}) + private String location; /** * 中心点位:经度 */ - @NotBlank(message = "经度不能为空", groups = {UpdateGroup.class}) + private String longitude; /** * 中心点位:纬度 */ - @NotBlank(message = "维度不能为空", groups = {UpdateGroup.class}) + private String latitude; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java index 022a34ad6e..14feda5200 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java @@ -21,9 +21,9 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import lombok.Data; -import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -77,8 +77,8 @@ public class IcHouseFormDTO implements Serializable { /** * 1出租;0未出租 */ - @NotBlank(message = "是否出租不能为空", groups = {AddGroup.class, UpdateGroup.class}) - private Boolean rentFlag; + @NotNull(message = "是否出租不能为空", groups = {AddGroup.class, UpdateGroup.class}) + private Integer rentFlag; /** * 房主姓名 diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcNeighborHoodFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcNeighborHoodFormDTO.java index 5e6aebef29..98a6ad0fde 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcNeighborHoodFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcNeighborHoodFormDTO.java @@ -94,13 +94,13 @@ public class IcNeighborHoodFormDTO implements Serializable { /** * 中心点位:经度 */ - @NotBlank(message = "经度不能为空", groups = {UpdateGroup.class}) + private String longitude; /** * 中心点位:纬度 */ - @NotBlank(message = "纬度不能为空", groups = {UpdateGroup.class}) + private String latitude; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java index 3e7eecf9b8..80b95263b6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java @@ -70,11 +70,11 @@ public class ListIcNeighborHoodFormDTO implements Serializable{ /** * 楼栋ID */ -// private String buildingId; + private String buildingId; /** * 小区ID */ -// private String neighborHoodId; + private String neighborHoodId; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java index 77358255e1..ca53315d02 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java @@ -22,10 +22,10 @@ public class IcNeighborHoodResultDTO implements Serializable { * */ private Long total; - /** - * 数据类型【小区:neighbourHood,楼栋:building,房屋:house】 - * */ - private String dataType; +// /** +// * 数据类型【小区:neighbourHood,楼栋:building,房屋:house】 +// * */ +// private String dataType; /** * 结果集 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java index 632f57fd3f..1763147e90 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java @@ -17,29 +17,43 @@ package com.epmet.controller; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.constant.NeighborhoodConstant; import com.epmet.dto.BuildingTreeLevelDTO; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.form.IcBulidingFormDTO; import com.epmet.dto.form.IcNeighborHoodFormDTO; import com.epmet.dto.form.ListIcNeighborHoodFormDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.excel.IcBuildingExcel; +import com.epmet.excel.IcHouseExcel; import com.epmet.excel.IcNeighborHoodExcel; import com.epmet.service.BuildingService; import com.epmet.service.IcBuildingService; import com.epmet.service.IcNeighborHoodService; import com.epmet.service.NeighborHoodService; +import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -70,7 +84,7 @@ public class BuildingController { public Result houseList(@RequestBody ListIcNeighborHoodFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); - IcNeighborHoodResultDTO icNeighborHoodResultDTO = neighborHoodService.listNeighborhood(formDTO); + IcNeighborHoodResultDTO icNeighborHoodResultDTO = buildingService.listBuilding(formDTO); return new Result().ok(icNeighborHoodResultDTO); } @@ -110,6 +124,60 @@ public class BuildingController { List buildingTreeLevelDTOS =buildingService.treeList(tokenDTO.getUserId()); return new Result().ok(buildingTreeLevelDTOS); } + /** + * 导出模板 + * @param formDTO + * @param response + * @throws Exception + */ + @PostMapping("exporttemplate") + public void exportTemplate(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + TemplateExportParams templatePath = new TemplateExportParams("excel/building_template.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",new ArrayList()); + ExcelPoiUtils.exportExcel(templatePath ,map,"楼宇信息录入表",response); + + } + /** + * 导出 + * @param formDTO + * @param response + * @throws Exception + */ + @RequestMapping("exportbuildinginfo") + public void exportbuildinginfo(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + buildingService.exportBuildinginfo(formDTO,response); + + } + + /** + * 导入数据 + * @param file + * @return + * @throws IOException + */ + @PostMapping("import") + public Result importExcel(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file) throws IOException { +// String customerId = tokenDTO.getCustomerId(); + String customerId = "123123"; + + ExcelImportResult importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcBuildingExcel.class); + + List failList = importResult.getFailList(); + + if(!CollectionUtils.isEmpty(failList)){ + for ( IcBuildingExcel entity : failList) { + log.error("第{}行,{}",entity.getRowNum(),entity.getErrorMsg());//打印失败的行 和失败的信息 + } + return new Result().error(8000,failList.get(0).getErrorMsg()); + } + List result =importResult.getList(); + + buildingService.importExcel(customerId,result); + return new Result().ok("导入成功"); + } } \ No newline at end of file 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 82eb115b44..3e96997238 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 @@ -17,24 +17,40 @@ package com.epmet.controller; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.ErrorCode; 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.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.constant.NeighborhoodConstant; import com.epmet.dto.form.IcHouseFormDTO; import com.epmet.dto.form.IcNeighborHoodFormDTO; import com.epmet.dto.form.ListIcNeighborHoodFormDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.excel.IcBuildingExcel; +import com.epmet.excel.IcHouseExcel; +import com.epmet.excel.IcNeighborHoodExcel; import com.epmet.service.HouseService; import com.epmet.service.NeighborHoodService; +import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -60,7 +76,7 @@ public class HouseController { public Result houseList(@RequestBody ListIcNeighborHoodFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); - IcNeighborHoodResultDTO icNeighborHoodResultDTO = neighborHoodService.listNeighborhood(formDTO); + IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(formDTO); return new Result().ok(icNeighborHoodResultDTO); } @@ -93,5 +109,60 @@ public class HouseController { houseService.delHouse(formDTO.getHouseId()); return new Result(); } + /** + * 导出模板 + * @param formDTO + * @param response + * @throws Exception + */ + @PostMapping("exporttemplate") + public void exportTemplate(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + TemplateExportParams templatePath = new TemplateExportParams("excel/house_template.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",new ArrayList()); + ExcelPoiUtils.exportExcel(templatePath ,map,"房屋信息录入表",response); + + } + /** + * 导出 + * @param formDTO + * @param response + * @throws Exception + */ + @RequestMapping("exporthouseinfo") + public void exporthouseinfo(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + houseService.exportBuildinginfo(formDTO,response); + + } + + /** + * 导入数据 + * @param file + * @return + * @throws IOException + */ + @PostMapping("import") + public Result importExcel(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file) throws IOException { + + String customerId = tokenDTO.getCustomerId(); +// String customerId = "123123"; + + ExcelImportResult importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcHouseExcel.class); + + List failList = importResult.getFailList(); + + if(!CollectionUtils.isEmpty(failList)){ + for ( IcHouseExcel entity : failList) { + log.error("第{}行,{}",entity.getRowNum(),entity.getErrorMsg());//打印失败的行 和失败的信息 + } + return new Result().error(8000,failList.get(0).getErrorMsg()); + } + List result =importResult.getList(); + + houseService.importExcel(customerId,result); + return new Result().ok("导入成功"); + } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java index 97aa10b5b8..d9b38807e4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java @@ -19,6 +19,9 @@ package com.epmet.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.security.dto.TokenDto; @@ -27,28 +30,30 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.constant.NeighborhoodConstant; +import com.epmet.dao.IcBuildingDao; import com.epmet.dto.form.IcNeighborHoodFormDTO; import com.epmet.dto.form.ListIcNeighborHoodFormDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.entity.IcBuildingEntity; import com.epmet.excel.IcBuildingExcel; import com.epmet.excel.IcHouseExcel; import com.epmet.excel.IcNeighborHoodExcel; -import com.epmet.service.BuildingService; -import com.epmet.service.HouseService; -import com.epmet.service.IcNeighborHoodService; -import com.epmet.service.NeighborHoodService; +import com.epmet.service.*; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -73,6 +78,8 @@ public class NeighborHoodController { private BuildingService buildingService; @Autowired private HouseService houseService; + @Resource + private IcBuildingDao icBuildingDao; @@ -112,8 +119,13 @@ public class NeighborHoodController { //效验数据 ValidatorUtils.validateEntity(formDTO, IcNeighborHoodFormDTO.DeleteGroup.class); String neighborHoodId = formDTO.getNeighborHoodId(); + //判断是否存在楼宇,如果存在不能删除 + List icBuildingEntities = icBuildingDao.selectList(new QueryWrapper().lambda().eq(IcBuildingEntity::getNeighborHoodId, neighborHoodId)); + if(!CollectionUtils.isEmpty(icBuildingEntities)){ + return new Result().error(8000,"小区下已存在楼宇,无法删除"); + } neighborHoodService.DelNeighborhood(neighborHoodId); - return new Result(); + return new Result().ok("删除成功"); } @@ -123,13 +135,55 @@ public class NeighborHoodController { * @param response * @throws Exception */ - @RequestMapping("exportneighborhoodinfo") + @PostMapping("exportneighborhoodinfo") public void exportneighborhoodinfo(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); neighborHoodService.exportNeighborhoodinfo(formDTO,response); } + /** + * 导出模板 + * @param formDTO + * @param response + * @throws Exception + */ + @PostMapping("exporttemplate") + public void exportTemplate(@RequestBody ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_template.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",new ArrayList()); + ExcelPoiUtils.exportExcel(templatePath ,map,"小区信息录入表",response); + + } + + /** + * 导出模板 + + * @param response + * @throws Exception + */ + /*@GetMapping("export") + public void export( HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_template.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",new ArrayList()); + ExcelPoiUtils.exportExcel(templatePath ,map,"小区信息录入表",response); + + }*/ + /** + * 导出 + * @param response + * @throws Exception + */ + /* @RequestMapping("exportinfo") + public void exportinfo(HttpServletResponse response) throws Exception { + ListIcNeighborHoodFormDTO formDTO = new ListIcNeighborHoodFormDTO(); + ValidatorUtils.validateEntity(ListIcNeighborHoodFormDTO.class); + neighborHoodService.exportNeighborhoodinfo(formDTO,response); + }*/ // /** @@ -151,25 +205,25 @@ public class NeighborHoodController { * @return * @throws IOException */ - @PostMapping("importneighborhoodinfo") - public Result importExcel(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException { - String dataType = request.getParameter("dataType"); - if(StringUtils.isEmpty(dataType)){ - return new Result().error(ErrorCode.PASSWORD_ERROR); - } + @PostMapping("import") + public Result importExcel(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file) throws IOException { + String customerId = tokenDTO.getCustomerId(); // String customerId = "123123"; - if(NeighborhoodConstant.NEIGHBOR_HOOD.equals(dataType)){ - List result = ExcelPoiUtils.importExcel(file, 0, 1, IcNeighborHoodExcel.class); - neighborHoodService.importExcel(customerId,result); - }else if(NeighborhoodConstant.BUILDING.equals(dataType)){ - List result = ExcelPoiUtils.importExcel(file, 0, 1, IcBuildingExcel.class); - buildingService.importExcel(customerId,result); - }else if(NeighborhoodConstant.HOUSE.equals(dataType)){ - List result = ExcelPoiUtils.importExcel(file, 0, 1, IcHouseExcel.class); - houseService.importExcel(customerId,result); + ExcelImportResult importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcNeighborHoodExcel.class); +// List result = ExcelPoiUtils.importExcel(file, 0, 1, IcNeighborHoodExcel.class); + List failList = importResult.getFailList(); + + if(!CollectionUtils.isEmpty(failList)){ + for ( IcNeighborHoodExcel entity : failList) { + log.error("第{}行,{}",entity.getRowNum(),entity.getErrorMsg());//打印失败的行 和失败的信息 + } + return new Result().error(8000,failList.get(0).getErrorMsg()); } - return new Result().ok("导入成功"); + List result =importResult.getList(); +// log.info(JSON.toJSONString(result)); + neighborHoodService.importExcel(customerId,result); + return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 929a8ab570..e82789db12 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -51,7 +51,5 @@ public interface IcHouseDao extends BaseDao { IPage> searchHouseByPage(IPage page, @Param("house") IcHouseEntity house); - List searchAllHouse(@Param("neighbor") IcNeighborHoodEntity neighbor, - @Param("building") IcBuildingEntity building, - @Param("house") IcHouseEntity house); + List searchAllHouse(@Param("house") IcHouseEntity house); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcBuildingExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcBuildingExcel.java index 230f8d26e0..d29a14942e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcBuildingExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcBuildingExcel.java @@ -18,11 +18,13 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; +import com.epmet.util.ExcelVerifyInfo; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; -import java.util.Date; +import javax.validation.constraints.NotNull; +import java.io.Serializable; /** * 楼栋信息 @@ -31,7 +33,7 @@ import java.util.Date; * @since v1.0.0 2021-10-27 */ @Data -public class IcBuildingExcel { +public class IcBuildingExcel extends ExcelVerifyInfo implements Serializable { /*@Excel(name = "楼栋主键") private String id; @@ -108,14 +110,14 @@ public class IcBuildingExcel { private String buildingName; @Excel(name = "单元数") - @NotBlank(message = "单元数不能位空") + @NotNull(message = "单元数不能位空") private Integer totalUnitNum; @Excel(name = "层数") - @NotBlank(message = "层数不能位空") + @NotNull(message = "层数不能位空") private Integer totalFloorNum; @Excel(name = "户数") - @NotBlank(message = "户数不能位空") + @NotNull(message = "户数不能位空") private Integer totalHouseNum; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcHouseExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcHouseExcel.java index d51725fd6e..c606388a25 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcHouseExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcHouseExcel.java @@ -18,11 +18,13 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; +import com.epmet.util.ExcelVerifyInfo; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; -import java.util.Date; +import javax.validation.constraints.NotNull; +import java.io.Serializable; /** * 房屋信息 @@ -31,7 +33,7 @@ import java.util.Date; * @since v1.0.0 2021-10-27 */ @Data -public class IcHouseExcel { +public class IcHouseExcel extends ExcelVerifyInfo implements Serializable { /*@Excel(name = "房屋主键") private String id; @@ -95,17 +97,17 @@ public class IcHouseExcel { - @Excel(name = "小区名称") + @Excel(name = "所属小区") @NotBlank(message = "小区名称不能位空") @Length(max=50,message = "小区名称不能超过50个字") private String neighborHoodName; - @Excel(name = "楼栋名称") + @Excel(name = "所属楼栋") @NotBlank(message = "楼栋名称不能位空") private String buildingName; @Excel(name = "单元号") - @NotBlank(message = "单元号不能位空") + @NotNull(message = "单元号不能位空") private Integer buildingUnit; @Excel(name = "门牌号") @@ -132,7 +134,7 @@ public class IcHouseExcel { @NotBlank(message = "房主电话不能位空") private String ownerPhone; - @Excel(name = "房主身份证号") + @Excel(name = "房主身份证") @NotBlank(message = "房主身份证号不能位空") private String ownerIdCard; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java index 2926485139..71fcec8379 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java @@ -20,10 +20,12 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.util.ExcelVerifyInfo; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import java.io.Serializable; import java.util.Date; /** @@ -33,7 +35,7 @@ import java.util.Date; * @since v1.0.0 2021-10-26 */ @Data -public class IcNeighborHoodExcel { +public class IcNeighborHoodExcel extends ExcelVerifyInfo implements Serializable { /*@Excel(name = "小区主键") private String id; @@ -109,7 +111,6 @@ public class IcNeighborHoodExcel { private String neighborHoodName; @Excel(name = "关联物业") - private String propertyName; @Excel(name = "详细地址") diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java index 8cdad17d3e..39df4d14df 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java @@ -19,9 +19,12 @@ package com.epmet.service; import com.epmet.dto.BuildingTreeLevelDTO; import com.epmet.dto.form.IcBulidingFormDTO; +import com.epmet.dto.form.ListIcNeighborHoodFormDTO; +import com.epmet.dto.result.IcNeighborHoodResultDTO; import com.epmet.excel.IcBuildingExcel; import com.epmet.excel.IcNeighborHoodExcel; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -50,4 +53,8 @@ public interface BuildingService { List treeList(String customerId); void importExcel(String customerId, List list); + + IcNeighborHoodResultDTO listBuilding(ListIcNeighborHoodFormDTO formDTO); + + void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception ; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 258c8c020d..20978c60b2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -18,9 +18,12 @@ package com.epmet.service; import com.epmet.dto.form.IcHouseFormDTO; +import com.epmet.dto.form.ListIcNeighborHoodFormDTO; +import com.epmet.dto.result.IcNeighborHoodResultDTO; import com.epmet.excel.IcHouseExcel; import com.epmet.excel.IcNeighborHoodExcel; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -44,4 +47,8 @@ public interface HouseService { void importExcel(String customerId, List list); + + IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO); + + void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 2ae7a5ac42..0eae07a286 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -1,15 +1,23 @@ package com.epmet.service.impl; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.IcBulidingFormDTO; +import com.epmet.dto.form.ListIcNeighborHoodFormDTO; import com.epmet.dto.result.ExtStaffPermissionResultDTO; +import com.epmet.dto.result.IcNeighborHoodResultDTO; import com.epmet.entity.*; import com.epmet.excel.IcBuildingExcel; import com.epmet.excel.IcNeighborHoodExcel; import com.epmet.service.*; +import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -18,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -48,6 +57,8 @@ public class BuildingServiceImpl implements BuildingService { private IcNeighborHoodDao icNeighborHoodDao; @Resource private CustomerStaffAgencyDao customerStaffAgencyDao; + @Resource + private IcBuildingUnitDao icBuildingUnitDao; @Override @Transactional(rollbackFor = Exception.class) @@ -63,7 +74,7 @@ public class BuildingServiceImpl implements BuildingService { for(int i =0 ;iu.getId()).orElse(""));//neighborHoodMap.get(icBuildingExcel.getNeighborHoodName()).getId() entity.setBuildingName(icBuildingExcel.getBuildingName()); + entity.setType(""); + entity.setSort(0); entity.setTotalUnitNum(icBuildingExcel.getTotalUnitNum()); entity.setTotalFloorNum(icBuildingExcel.getTotalFloorNum()); entity.setTotalHouseNum(icBuildingExcel.getTotalHouseNum()); @@ -214,7 +227,8 @@ public class BuildingServiceImpl implements BuildingService { for(int i =0 ;i> resultMap = searchBuilding(formDTO); + result.setTotal(resultMap.getTotal()); + result.setList(resultMap.getRecords()); + return result; + } + + @Override + public void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + //如果类型是building 查楼栋 + //导出楼栋 + List icBuildingExcels = searchAllBuilding(formDTO); + TemplateExportParams templatePath = new TemplateExportParams("excel/building_export.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",icBuildingExcels); + ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"楼宇信息录入表",response); + return ; + } + private List searchAllBuilding(ListIcNeighborHoodFormDTO formDTO) { + +// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); +// neighborHoodEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) +// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) +// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) +// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); +// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); + +// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); +// buildingEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) +// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); +// buildingEntityQueryWrapper.eq("a.DEL_FLAG","0"); + IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); + building.setDelFlag("0"); + + return icBuildingDao.searchAllBuilding(building); + } + + private IPage> searchBuilding(ListIcNeighborHoodFormDTO formDTO) { + IPage page = new Page(formDTO.getPageNo(),formDTO.getPageSize()); + +// IcNeighborHoodEntity neighbor = new IcNeighborHoodEntity(); +// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); + +// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); +// neighborHoodEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) +// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) +// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) +// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); + + + IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); + building.setDelFlag("0"); +// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); +// +// buildingEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) +// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); +// buildingEntityQueryWrapper.eq("a.DEL_FLAG","0"); + + return icBuildingDao.searchBuildingByPage(page,building); + } + private List covertToTree(CustomerAgencyEntity customerAgency,List agencyList) { BuildingTreeLevelDTO buildingTreeLevelDTO = new BuildingTreeLevelDTO(); @@ -264,7 +346,7 @@ public class BuildingServiceImpl implements BuildingService { IcBuildingDTO icBuilding= icBuildingService.get(formDTO.getBuildingId()); if(!icBuilding.getNeighborHoodId().equals(formDTO.getNeighborHoodId())){ - //更新对应房屋小区名 + //更新对应房屋小区id List icHouseEntities = icHouseDao.selectList(new QueryWrapper().lambda().eq(IcHouseEntity::getBuildingId, formDTO.getBuildingId())); icHouseEntities.forEach(item->{ item.setNeighborHoodId(formDTO.getNeighborHoodId()); @@ -277,7 +359,24 @@ public class BuildingServiceImpl implements BuildingService { icBuildingService.update(icBuildingDTO); //更新楼宇单元 //如果楼宇单元大于之前的楼宇单元,新增单元 - //如果小于,判断是否存在房屋,如果存在就提示不能更改 + Integer nowUnit= formDTO.getTotalUnitNum(); + Integer unit = icBuilding.getTotalUnitNum(); + if(nowUnit>unit){ + //新增单元 + List unitList = new ArrayList<>(); + for(int i =unit ;i icHouseEntities = icHouseDao.selectList(new QueryWrapper().lambda().eq(IcHouseEntity::getBuildingId, buildingId)); + if(!CollectionUtils.isEmpty(icHouseEntities)){ + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(),"楼宇单元下存在房屋,无法删除"); + } + //删除楼宇 icBuildingService.deleteById(buildingId); + //删除楼宇单元 + icBuildingUnitDao.delete(new QueryWrapper().lambda().eq(IcBuildingUnitEntity::getBuildingId,buildingId)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 724a35b032..d393d24362 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -1,5 +1,8 @@ package com.epmet.service.impl; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcBuildingDao; import com.epmet.dao.IcBuildingUnitDao; @@ -9,12 +12,17 @@ import com.epmet.dto.IcBuildingDTO; import com.epmet.dto.IcBuildingUnitDTO; import com.epmet.dto.IcHouseDTO; import com.epmet.dto.form.IcHouseFormDTO; +import com.epmet.dto.form.ListIcNeighborHoodFormDTO; +import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.entity.IcBuildingEntity; import com.epmet.entity.IcHouseEntity; +import com.epmet.entity.IcNeighborHoodEntity; import com.epmet.excel.IcHouseExcel; import com.epmet.service.HouseService; import com.epmet.service.IcBuildingService; import com.epmet.service.IcBuildingUnitService; import com.epmet.service.IcHouseService; +import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; @@ -51,7 +60,7 @@ public class HouseServiceImpl implements HouseService { public void addHouse(String customerId, IcHouseFormDTO formDTO) { IcHouseDTO icHouseDTO= ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class); icHouseDTO.setCustomerId(customerId); - icHouseDTO.setRentFlag(formDTO.getRentFlag()?1:0); + icHouseDTO.setRentFlag(formDTO.getRentFlag()); icHouseDTO.setHouseName(getHouseName(formDTO)); icHouseService.save(icHouseDTO); @@ -78,7 +87,7 @@ public class HouseServiceImpl implements HouseService { IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class); icHouseDTO.setId(formDTO.getHouseId()); icHouseDTO.setCustomerId(customerId); - icHouseDTO.setRentFlag(formDTO.getRentFlag()?1:0); + icHouseDTO.setRentFlag(formDTO.getRentFlag()); //设置 icHouseDTO.setHouseName(getHouseName(formDTO)); icHouseService.update(icHouseDTO); @@ -127,12 +136,12 @@ public class HouseServiceImpl implements HouseService { entity.setId(uuid); entity.setCustomerId(customerId); Map item = buildMap.get(icHouseExcel.getNeighborHoodName()+","+icHouseExcel.getBuildingName()+","+icHouseExcel.getBuildingUnit()); - if(!CollectionUtils.isEmpty(item)){ - entity.setNeighborHoodId(String.valueOf(item.get("neighborId"))); - entity.setBuildingId(String.valueOf(item.get("buildingId"))); - entity.setBuildingUnitId(String.valueOf(item.get("buildingUnitId"))); - entity.setHouseName(icHouseExcel.getBuildingName()+"-"+icHouseExcel.getBuildingUnit()+"-"+icHouseExcel.getDoorName()); - } + + entity.setNeighborHoodId(String.valueOf(Optional.ofNullable(item).map(u->u.get("neighborId")).orElse(""))); + entity.setBuildingId(String.valueOf(Optional.ofNullable(item).map(u->u.get("buildingId")).orElse(""))); + entity.setBuildingUnitId(String.valueOf(Optional.ofNullable(item).map(u->u.get("buildingUnitId")).orElse(""))); + entity.setHouseName(icHouseExcel.getBuildingName()+"-"+icHouseExcel.getBuildingUnit()+"-"+icHouseExcel.getDoorName()); + entity.setDoorName(icHouseExcel.getDoorName()); entity.setHouseType(icHouseExcel.getHouseType()); entity.setPurpose(icHouseExcel.getPurpose()); @@ -143,10 +152,76 @@ public class HouseServiceImpl implements HouseService { houseEntityList.add(entity); } //3.保存 - //4.新增单元 icHouseService.insertBatch(houseEntityList); } + @Override + public IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO) { + IcNeighborHoodResultDTO result = new IcNeighborHoodResultDTO(); + //如果类型是house 查房屋 + IPage> resultMap = searchHouse(formDTO); + result.setTotal(resultMap.getTotal()); + result.setList(resultMap.getRecords()); + return result; + } + + @Override + public void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { + //如果类型是house 查房屋 + //导出房屋 + + List icHouseExcels = searchAllHouse(formDTO); + TemplateExportParams templatePath = new TemplateExportParams("excel/house_export.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",icHouseExcels); + ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"房屋信息录入表",response); + + return ; + } + private List searchAllHouse(ListIcNeighborHoodFormDTO formDTO) { + + IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); + + IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); + + + IcHouseEntity house = ConvertUtils.sourceToTarget(formDTO, IcHouseEntity.class); + house.setDelFlag("0"); + + return icHouseDao.searchAllHouse(house); + } + + private IPage> searchHouse(ListIcNeighborHoodFormDTO formDTO) { + IPage page = new Page(formDTO.getPageNo(),formDTO.getPageSize()); + +// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); +// neighborHoodEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) +// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) +// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) +// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); +// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); + + +// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); +// buildingEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) +// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); +// IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); + + +// QueryWrapper houseEntityQueryWrapper = new QueryWrapper<>(); +// houseEntityQueryWrapper.lambda() +// .eq(!StringUtils.isEmpty(formDTO.getOwnerName()),IcHouseEntity::getOwnerName,formDTO.getOwnerName()) +// .like(!StringUtils.isEmpty(formDTO.getOwnerPhone()),IcHouseEntity::getOwnerPhone,formDTO.getOwnerPhone()); +// houseEntityQueryWrapper.eq("a.DEL_FLAG","0"); + + IcHouseEntity house = ConvertUtils.sourceToTarget(formDTO, IcHouseEntity.class); + house.setDelFlag("0"); + + return icHouseDao.searchHouseByPage(page,house); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java index fff8156f11..bed3ac83ee 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java @@ -102,91 +102,26 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { */ @Override public IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO) { - String dataType = formDTO.getLevel(); + String level = formDTO.getLevel(); Integer pageNo = formDTO.getPageNo(); Integer pageSize = formDTO.getPageSize(); IcNeighborHoodResultDTO result = new IcNeighborHoodResultDTO(); - result.setDataType(dataType); - - if(StringUtils.isEmpty(dataType)|| NeighborhoodConstant.NEIGHBOR_HOOD.equals(dataType)){ - //如果类型是neighbourHood 查小区 - IPage> resultMap = searchNeighborhood(formDTO); - result.setTotal(resultMap.getTotal()); - result.setList(resultMap.getRecords()); - }else if(NeighborhoodConstant.BUILDING.equals(dataType)){ - //如果类型是building 查楼栋 - IPage> resultMap = searchBuilding(formDTO); - result.setTotal(resultMap.getTotal()); - result.setList(resultMap.getRecords()); - }else if(NeighborhoodConstant.HOUSE.equals(dataType)){ - //如果类型是house 查房屋 - IPage> resultMap = searchHouse(formDTO); - result.setTotal(resultMap.getTotal()); - result.setList(resultMap.getRecords()); - } - return result; - - } - - - - private IPage> searchHouse(ListIcNeighborHoodFormDTO formDTO) { - IPage page = new Page(formDTO.getPageNo(),formDTO.getPageSize()); - -// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); -// neighborHoodEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) -// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) -// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) -// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); -// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); - -// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); -// buildingEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) -// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); -// IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); + IPage> resultMap = searchNeighborhood(formDTO); + result.setTotal(resultMap.getTotal()); + result.setList(resultMap.getRecords()); + return result; -// QueryWrapper houseEntityQueryWrapper = new QueryWrapper<>(); -// houseEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getOwnerName()),IcHouseEntity::getOwnerName,formDTO.getOwnerName()) -// .like(!StringUtils.isEmpty(formDTO.getOwnerPhone()),IcHouseEntity::getOwnerPhone,formDTO.getOwnerPhone()); -// houseEntityQueryWrapper.eq("a.DEL_FLAG","0"); - IcHouseEntity house = ConvertUtils.sourceToTarget(formDTO, IcHouseEntity.class); - house.setDelFlag("0"); - - return icHouseDao.searchHouseByPage(page,house); } - private IPage> searchBuilding(ListIcNeighborHoodFormDTO formDTO) { - IPage page = new Page(formDTO.getPageNo(),formDTO.getPageSize()); -// IcNeighborHoodEntity neighbor = new IcNeighborHoodEntity(); -// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); -// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); -// neighborHoodEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) -// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) -// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) -// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); - IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); - building.setDelFlag("0"); -// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); -// -// buildingEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) -// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); -// buildingEntityQueryWrapper.eq("a.DEL_FLAG","0"); - return icBuildingDao.searchBuildingByPage(page,building); - } private IPage> searchNeighborhood(ListIcNeighborHoodFormDTO formDTO) { @@ -202,6 +137,13 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); neighbor.setDelFlag("0"); + if(NeighborhoodConstant.GRID.equals(formDTO.getLevel())){ + //根据网格过滤 + neighbor.setGridId(formDTO.getId()); + }else{ + //根据组织过滤 + neighbor.setAgencyId(formDTO.getId()); + } return icNeighborHoodDao.searchNeighborhoodByPage(page, neighbor); } @@ -274,38 +216,14 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { */ @Override public void exportNeighborhoodinfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception { - String dataType = formDTO.getLevel(); - - if(StringUtils.isEmpty(dataType)|| NeighborhoodConstant.NEIGHBOR_HOOD.equals(dataType)){ - //如果类型是neighbourHood 查小区 - //导出小区 - List icNeighborHoodExcels = searchAllNeighborhood(formDTO); + //导出小区 + List icNeighborHoodExcels = searchAllNeighborhood(formDTO); // ExcelUtils.exportExcelToTarget(response, "小区信息录入表", icNeighborHoodExcels, IcNeighborHoodExcel.class); - TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_template.xlsx"); - ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"小区信息录入表",response); - - return ; - }else if(NeighborhoodConstant.BUILDING.equals(dataType)){ - //如果类型是building 查楼栋 - //导出楼栋 - List icBuildingExcels = searchAllBuilding(formDTO); -// ExcelUtils.exportExcelToTarget(response, "楼宇信息录入表", icBuildingExcels, IcBuildingExcel.class); - TemplateExportParams templatePath = new TemplateExportParams("excel/building_template.xlsx"); - ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"楼宇信息录入表",response); - - return ; - }else if(NeighborhoodConstant.HOUSE.equals(dataType)){ - //如果类型是house 查房屋 - //导出房屋 - - List icHouseExcels = searchAllHouse(formDTO); -// ExcelUtils.exportExcelToTarget(response, "房屋信息录入表", icHouseExcels, IcHouseExcel.class); - TemplateExportParams templatePath = new TemplateExportParams("excel/house_template.xlsx"); - ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"房屋信息录入表",response); - - return ; - } + TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_export.xlsx"); + Map map = new HashMap<>(); + map.put("maplist",icNeighborHoodExcels); + ExcelPoiUtils.exportExcel(templatePath ,map,"小区信息录入表",response); } @Override @@ -339,16 +257,18 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { entity.setId(uuid); entity.setCustomerId(customerId); entity.setNeighborHoodName(icNeighborHoodExcel.getNeighborHoodName()); - entity.setAgencyId(agencyMap.get(icNeighborHoodExcel.getAgencyName()).getId()); - entity.setParentAgencyId(agencyMap.get(icNeighborHoodExcel.getAgencyName()).getPid()); - entity.setAgencyPids(agencyMap.get(icNeighborHoodExcel.getAgencyName()).getPids()); - entity.setGridId(gridMap.get(icNeighborHoodExcel.getGridName()).getId()); + + entity.setAgencyId(Optional.ofNullable(agencyMap.get(icNeighborHoodExcel.getAgencyName())).map(u->u.getId()).orElse("")); // agencyMap.get(icNeighborHoodExcel.getAgencyName()).getId()); + entity.setParentAgencyId(Optional.ofNullable(agencyMap.get(icNeighborHoodExcel.getAgencyName())).map(u->u.getPid()).orElse(""));//agencyMap.get(icNeighborHoodExcel.getAgencyName()).getPid() + entity.setAgencyPids(Optional.ofNullable(agencyMap.get(icNeighborHoodExcel.getAgencyName())).map(u->u.getPids()).orElse(""));//agencyMap.get(icNeighborHoodExcel.getAgencyName()).getPids() + entity.setGridId(Optional.ofNullable(gridMap.get(icNeighborHoodExcel.getGridName())).map(u->u.getId()).orElse(""));//gridMap.get(icNeighborHoodExcel.getGridName()).getId() entity.setAddress(icNeighborHoodExcel.getAddress()); entity.setRemark(icNeighborHoodExcel.getRemark()); neighborHoodEntityList.add(entity); IcNeighborHoodPropertyEntity entity1 = new IcNeighborHoodPropertyEntity(); - entity1.setPropertyId(propertyMap.get(icNeighborHoodExcel.getPropertyName()).getId()); + + entity1.setPropertyId(Optional.ofNullable(propertyMap.get(icNeighborHoodExcel.getPropertyName())).map(u->u.getId()).orElse("")); entity1.setNeighborHoodId(uuid); icNeighborHoodPropertyEntityList.add(entity1); } @@ -360,26 +280,7 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { } - private List searchAllBuilding(ListIcNeighborHoodFormDTO formDTO) { -// QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); -// neighborHoodEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId()) -// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId()) -// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId()) -// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName()); -// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); - -// QueryWrapper buildingEntityQueryWrapper = new QueryWrapper<>(); -// buildingEntityQueryWrapper.lambda() -// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId()) -// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName()); -// buildingEntityQueryWrapper.eq("a.DEL_FLAG","0"); - IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); - building.setDelFlag("0"); - - return icBuildingDao.searchAllBuilding(building); - } private List searchAllNeighborhood(ListIcNeighborHoodFormDTO formDTO) { // QueryWrapper neighborHoodEntityQueryWrapper = new QueryWrapper<>(); @@ -395,18 +296,7 @@ public class NeighborHoodServiceImpl implements NeighborHoodService { return icNeighborHoodDao.searchAllNeighborhood(neighbor); } - private List searchAllHouse(ListIcNeighborHoodFormDTO formDTO) { - IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); - - IcBuildingEntity building = ConvertUtils.sourceToTarget(formDTO, IcBuildingEntity.class); - - - IcHouseEntity house = ConvertUtils.sourceToTarget(formDTO, IcHouseEntity.class); - house.setDelFlag("0"); - - return icHouseDao.searchAllHouse(neighbor,building,house); - } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelPoiUtils.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelPoiUtils.java index fa03b631d1..38ea2c597c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelPoiUtils.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelPoiUtils.java @@ -169,7 +169,7 @@ public class ExcelPoiUtils { params.setTitleRows(titleRows); params.setHeadRows(headerRows); params.setNeedSave(true); - params.setSaveUrl("/excel/"); + params.setSaveUrl("/tmp/excel/"); try { return ExcelImportUtil.importExcel(new File(filePath), pojoClass, params); } catch (NoSuchElementException e) { @@ -218,7 +218,7 @@ public class ExcelPoiUtils { ImportParams params = new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); - params.setSaveUrl("/excel/"); + params.setSaveUrl("/tmp/excel/"); params.setNeedSave(true); try { return ExcelImportUtil.importExcel(inputStream, pojoClass, params); @@ -236,12 +236,12 @@ public class ExcelPoiUtils { * @param * @return */ - public static ExcelImportResult importExcelMore(MultipartFile file, Class pojoClass) throws IOException { + public static ExcelImportResult importExcelMore(MultipartFile file,Integer titleRows, Integer headerRows, Class pojoClass) throws IOException { if (file == null) { return null; } try { - return importExcelMore(file.getInputStream(), pojoClass); + return importExcelMore(file.getInputStream(), titleRows, headerRows, pojoClass); } catch (Exception e) { throw new IOException(e.getMessage()); } @@ -255,14 +255,14 @@ public class ExcelPoiUtils { * @param * @return */ - private static ExcelImportResult importExcelMore(InputStream inputStream, Class pojoClass) throws IOException { + private static ExcelImportResult importExcelMore(InputStream inputStream,Integer titleRows, Integer headerRows, Class pojoClass) throws IOException { if (inputStream == null) { return null; } ImportParams params = new ImportParams(); - params.setTitleRows(1);//表格内数据标题行 - params.setHeadRows(1);//表头行 - params.setSaveUrl("/excel/"); + params.setTitleRows(titleRows);//表格内数据标题行 + params.setHeadRows(headerRows);//表头行 + params.setSaveUrl("/tmp/excel/"); params.setNeedSave(true); params.setNeedVerify(true); try { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelVerifyInfo.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelVerifyInfo.java new file mode 100644 index 0000000000..42be514c98 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/util/ExcelVerifyInfo.java @@ -0,0 +1,31 @@ +package com.epmet.util; + +import cn.afterturn.easypoi.handler.inter.IExcelDataModel; +import cn.afterturn.easypoi.handler.inter.IExcelModel; + +public class ExcelVerifyInfo implements IExcelModel, IExcelDataModel { + + private String errorMsg; + + private int rowNum; + + @Override + public Integer getRowNum() { + return rowNum; + } + + @Override + public void setRowNum(Integer rowNum) { + this.rowNum = rowNum; + } + + @Override + public String getErrorMsg() { + return errorMsg; + } + + @Override + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/building_export.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/building_export.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2e2fbd53a4687a1b712d03e47607025fb7c5c251 GIT binary patch literal 12531 zcmeHNWm_ECw(j6gv(i|uV+7AE-@caKg{)1OwNPW<lkVSKVu+!ZeOYSA^wvbQA`8lK@R24&wm!&KfC`e_SGqYhorbqKs zzlsbCqjYx5{p{s3Sz(-Xeb`StWarSyMdK$ zHj=7m+tgR)Z8pFYsbynlXvH|#TdwE$G6j^6FL8ZN~&= z-gGdPFZ#pT2X<_L+AHZ0=~9`hS+4*g%8y9dD;3e(j}Rv*yfBYqy@w> zXfB4{7ZV8ZlNGRHB7!yd4amgWk(ue|`M(GOBiT?3-vT}P zgf+AHuDtR6GuD)QeXf+~+{XJW31O$~T4Im%GS^J^lnc|!k8U4*D=S7cU~|x3cFh1j9ZQ_61IqfR`8XE*}F%i;P@ONa|C}hUpI4d$(LCSdf4^nQ7}a3i;YBU{fPc5 zvUkRjqmi9Q*vD&Y^VjAw#@xGSF9BRMkB9AxzI}m(H zGPJX^`swI$)phOWSunk_svm*Z0>iMrHE7v6O6<8d#WST|p#c#_A%R9_wUBD+kGG#8 z;gv4OYS4aAT+;_CQnO*SXvnpnfBNuKDj3T5D8A{fq-n}Xd^$aDnDeq%R@}u4j zwR95raaYtDW66;O+5-5D!4E{z8I4X-7C_J7ROUiFM=V0H*8h~4$%NINGD61zeI>GT z><(=TaR@ZLz(#7&WD)6&RfEPdh0USuh1uOtPiPco=+j=hOQM4U^PomDZt0% zfetN@CBw>eg!3eD$|&`FgZki$Dms@Am0$G{K_Y$%WWWTNUx*P57dmMn<(6*01vL3#O>E{?_F6w}+$_q5|nDECS(e@HmX068&nsaD`4kjXQaKut4!2qEKA zgSXz5LV$!=ggsZTK)&%27@(3`xR!oYlT$9F1!6Yb%`}s37+!I_pR-WD;pe(JhTi8 zbpdobmSZXKIqUkDiv)^Hk_K1de1s@Xw(R(>i-T#Q$IE(45?pci?07*Bh)^FrSYzth zuJshKd424k@d*xZDKyHwRywx_PuO32o>M(CMV)yN>>4c{^4pCXk z@qI18m&5eQbD{>&;GTh1;txmiXT|upQ+Wms1Hte9 zXCKXRqu?+Ispr_g#edw(A=cI;p0_1JxJ>&BK&`w!*2S54NnCx|2gWi(J(`LRt~&42>jl~$+%1Cq{-iUt6B$*7`Y-)N9lYzjI~5%7#PTmF zbHb>ggT5Z;=1%CB(K!&?q)#!OryAkme{*)9K_1|juVcHL_A$(-d!OKEU&2YM;2$;e zXw}qcEBn@A%PcCfOta4pXT%uD6Sg--%8>k;vbUc)w2QQ?bCWBmKS{rmpwn2EWr4$> zZ`Ws=!&Ah6Vi3k^ z_ed+4J-6V50{6F3bu>3IadKq-bz%KwUE>$t&$ED?5yJ)1^OZP^XkGG-;=Qm#nU+Es z)Y+aCU^usejhU~;?Ge!qpil}c500ODAibCHYC0x4^SS5y zNn5*_=tf!z6)Nh{6Ogz!g02Vc`@-6#XQz8L4^5Rr|~vZ!SuqC|ypq0=u2v&RqRyi*OCM`G_UYnRTilNVT* znF-MhSD6z<%oF>*>8?sQJVUkJf=Uw+*V1Db(0U5YZ+V9%jqo`^x#1%Ez%`Y5GVA(9 z)+xm|w#QE_YhAM^6Yv+Ao3gxGfELZt+8}hmJr~`L0UWuwD|7kTxE5@Bx26 z{e-0r&lT*UE%%uOK1%vLlixpvV6*K;Y!0rJ`=%O!+7_h&Vaxi(8`J&^N!RlQ_s3jm z7#=H`TdhMupE*oyNX2IJut58`c;jG67D7o}BhR%d-v;^^KZckNfpBg=>y`P8KI@nX z+RGkSDVEDs33NM6{|ec)x%iVFO{!Mcx*&maQ3Gae%z0w0_m5)t-9$~ZjUS2Pp_UnW zsRiI3s@Z%$xGmnoE6H6$5 zq_{n&+6Kqa0Y754d`iD>@ZwfD=gOx~F9lZ>op_Al#jS)s!rGGbAm!o5Z+cykw*X+e z1l6sUiu!z;wThh_9^-o~Cs81BAO~N91ilUiKzF@d40L`YiRZv8qi~_9Q=$K*-T>`3 zr;GelJWzZu96x*r2N}CpTnWdFZu8yMqX-6ev^Bz(aJE)1fdc}9fddMHLAxJWF%kN6 z<>P4mFw@`??V*I-oBS`o{`0SslM<^f*c{v;w8OHG>$5YiKSxF|h69p{nsw(h=6t3d zlMCOz$Xg=)rXt_C5$amtEFIfl&qM1JYco583p{92iqz7h^p1W191kbWIaJ{A<7K)e zZebOE5^5BdA1KSVEq91P!H}Bdj6>O4n#LKc!%}N0O52(Ia^+;tostiSwj!GNdc8dp zD3($werC>rtvuNm6rJAc7R7Ci*hJyCbLGKxz~H^nJo1I*CS-YTLL*g+1or4mOeakt zSE$kre-}6{VZNE(V%sM4eD}re?6=RzaUKpyd_T~=NHAh--u?Q@r^!ct=PsNJIFd?* z`ahMP?WfYG$I9Dnkp5KqL+_W1M%G+KoEqttHR?49mr6Ca4%BXh9|1{qroXU9AUK@ic)U2X{T^5a%(KcBhUHihUF8}a z&BE3`PaAtCCIN+Gx!gVXN(5@!H-W5^n6R{Zw={zN!V1j;wGz*}QX<~{9b?JVdlI;W z)&O6dPgsjN_|NOzeB4;rRPM7Uy|^bz8llYcR*>$+vJc@aCM0_A;kJf~_ud_j4JME+ zH5t-lEx3Eg?7iw`H@bTsH$7m~#%U^s9h^G4HQKEsdpt}#JxV{t6pW*<(sa>kuHrLoS&X6~%oyFsj} zJ9R-eZdb#4z{9v$n9Nu*?>+$(RvU8B9phc&X{>eXz@wr7{+KSjJ=^L%e>3E25X&h+ zs!(I7?(ohXu4mVw>)1XMx<_ili;08?WsX~IxG+NL^O9s`zgNE*TS+$}CC}&}{akvg z4s5sot$|L8O|~6MNcUKSBmm=(*OVO)#Z%cTR506!+zr@k^PokIt$ha-F&h4_y_fDK z?6PD#8wJ7)-7AX78gLJvru1VX9J?w0x(k`XMoxlizqT#dsh zM|1uEx%%P{t}5FtkOF&GXb$;Emw$2h!$LC{&ga=IZk{`3Z{^ui&cO zxbNs#coC>~O}Cxi4pmh_EqAnOG1p`{p)~bf9syC5;T*{H;4>18?Yi< z%m(@kme6&DFo;aVq{I;sYTmm}B=6ZjF|})b;}R88Hun@MsUCL_65**T_R!=z2boA+ zeNL9?cFD|)y_sem#uXYguKA8z9*GyzoxSaN?Z}Fwk|DKo!`y+Xy0)fXfcRE2frOzb zIYV=c?_kfrd>`XEQBoPq($t;nLz(=pZZ28Y=4POSi_UFlQnsPOj9?op3s z4T2+ePQ0J>*k38ClevkF3G=V>uR!WROEHRo1GAOllt{v{K-%T3K#N2Ba9a_laY19L zx=_-rC&gg{FUs1it|9v}Bp`q`1QDGJ1+H*PMrWWvi`I|)g5l&KWoV8d*k(|JzObKa zy02bEI6r zI_ZWT0R60ly{>!e>-^yn%4_Huz?KkEBWy;yX=ew)4c9B{Ws9P+z}XKv-j2{h_!sTr z*n0k;w}WeOBND9^YaFz_b+1k`Zbm+QtvJEQRE-_c7`xE$tZLPn%eV063>rF*~07eJQzoj#FIHwkhkG+bMs-829-E{@sV!U1pX+Soeet6 z`|A45%G>q(>mLg{sI5*LfuWCwy^7xVTZml1OJ$SssxspHhfVNB=yu~a8080wBnE~c zH9Yn*$J>J?WB3wzzMfh_#UG!fBaFnJ!(;l}2JdA@Fs{}>=P)fY)n>S+K?c_QyxMkU z)J8QDOzL7io93?YfsGi~?a4r?FWzS3=g%yN@dOESIdGxzf`*qQi?HU`_#uxdnG)`C zwM~~l&?eA!&?RPi^qS)GX}AUh2g_h7SLMo!&X0h0IA{g3J;sJqDpb{y=pln0CZqxL z--p|6?2?pci(!BCNpu9goHDq>RUM3cHKvo(l?RGIx8!|G(m!Xix#kB;ZA(ij#@i9^ z-U&opi)|P&XptBzgYc^FeD@M3G;%X`NQd_d&4?P*W_piHl`?4>+e3XR%Ic3PzKl$* zdje^C47@;cc=>JKeua7t;p(fHJ!0}Cdyx$A!gPeFqS-H{g#^bbtlSij)Fr$OBQ{fd z`Pkf3YuJU`!8Wr+)wl)aiX?aUS!w|n%R$&Q`o;U~71rvq96QHyo&isM!P~lwk_4 zf^7LIlndVnB(Xlz{YX56%qW-#&L7VOV}7=?IT<|Qp->) z(!0u!IdV&aq5b-bwIg|m({R#2%!~(4`3DWf`M^kb*yql$aG85HwL#j%&w$B+!Z!GR ze@FFEJB~A3;(2N@hr;!EuFJvQ;?;Dk+*zKuR6M0%*+_E8Vky^zQmdo_jiiEkS+RMx z4k@k$I0|GV%yn|U;r*zy2Wc4%Aa;FxdOyg>1@g~d}W;Epz(i$wDx`uMEvgy$9aisk7nEQ2&>usuo7 zS_N0O<2wxDuo_7SP%0Jr39*8jFcVWGQL|l*X~~iieuSZ=$k=w(9kQ+~o?_5I&9s+=uA+IV z#509H7Gh5e#0b^{zDS z_By=96YuPc@&^j`^oN`BZ1EIHXMXTSw(dnDGW}S2{cI3NWLt^iwJ|j5bS$-z1OoJF zv{S=Gt4zt7Ct187e`sU);W1J?i7f{pAP&@>_T}CR6IxuGI ziC}V<=FTOL2{Yxjd6A56F{XmEy7ZZ!p@o8*SGrskXC=G+3V&PF-SP*YTZ`#J(X$jr zWl7Dq0nGp&Pf5Y(0t^k=+gEx1QW?Ba0jHTYjl`{UGY=RO#Pjn~eEk~!j4xGTr(mO( zg-6E=r2GWEZ_c+ySNPU+t!e#JjWcp&+ihV_hW5SubRZNAmNS_VwO0fpLGyU8WF{82 z>)B9WJnN2lrHfvKwdQUXH%BYs?kZi=(creCRavo7YrAjkS*ki3i&IaY>OZr6a#C%A zXcs?*=C#f)u-C=PtQh(JcB7N90lQy8TY05a{@T3Y1@}5fJND)yNXtf+u-<`+@*dDb zl1cJexDSuoEO|HX1PSAO^LD=>HDYwy*j1jlQ;hej4EwO@?&o8EM@WIrF7|+tvhqI=S7r&D=JE{OzV-`1vSra-OAl`zu?Gd%5EP zw&&>8B(2i|^xhws&F%T#Y748vzsrcsg}=G*@W31WJo$m^Jik+Kjz*dJeSVc5rk=c6 z75gQ`@m`$*#x*pf@#I;MLNv*HdYDMlueb}e-c!dz%1|gU3pln zoO!MRP(3?^h4%7dNQPk6&Us}%zCRidEj1mz@LH&z8IYt9mvtl)RP$cW6N%Qpi9oX@ zfOmaF4eb9TNqlOS4tvq99l-|6ADk>={>vWSw6a6#@{1kHdji{VxEcYx zs9WOW;h{9GCJ?@4VQ2id3b$J?y+Kz1jTaLHELW7(0xYh@hmL|6%%OJOe24C(#qt^$ z<7yE;ZYZgN0CQ$z*6BpKWEMH?;$%PfVxL_x*1i2`))0zHZTiEwWRPzRjq0=fBVvi7 zRT{ca4}j054OaeXE14!6NnbZXoDH?`^_(divWq*8g6R+2mE%S(k1+xQL(38jjk6Yl z&Dx_TsQw3gJrYgnkK8f*Gu2pg26ZQj?Thjtd;xo!4%=+40bDpdQy5Wc-nWPD?~Tj7AiiW2w$K z+*FT-!uRY31CspnZRDziR=BDNe0g&b>=d#jeI^B04n6U`+=V{dVUR`6%GPRk#xL)? zF>MOSYIWh)&yjepg%++_II6FlZdEz z!WasYpidHSskpUdZBva%9FXOiA3XO#SkJR|2R^cjQ-_J~tZo^`x@p_MHUEv~(5#i) zxw55&l!`uHN)_dHugw`EV>IFrv@IhN0Z-n-CDFu*7EyW6`vhg|MCzlofL7L|W<^B8?q~+fnLB5%Pz;rQtdwV~3%(#T7dtgQJjQ z?vAsTnrO=GDB}9%k1&d8gzY1|g)5z^j4wQ^R|R`Twis#O45LP$kaYO8{Mz*b#jcq*abUQofe}(=QsjA7w zMma!-?NR8>172+8Y-5OC8?SmQS`NH08m_X82{wh3P+FHLCeLW(rnrTE0O#r$w~#=; zShtwP+DsyrW?7rKuQ4IUG#q0~8E%ilb799Ms9^Z@=IYd2`x-DJ(Y4 zDjY^S>(V%vMWTIIz2k0au#${SuyCOQY^7kzX|8^$zMkz}*txah#uF^$BzRtbHd%hq z0O8)ypRp~DhGm(swqi(H3+bd8tsK(T_{?QM^mxyMQ`lW*mo(o(ZUPUlvPzI*v&j9n zur+iJ>zuQ_wJW|SzUy0e#HFUk$W3q;5viRciFf!NxU~6qyBAq$W1kPEq%7Do1OH4( z1AF`bG7?P1e;w&@vbGE0*5eg42-f#DxsnLVSD2Od`%7#(!#0^qRZC;EY$@M#IG52_ zc^qhve+eiJdzV#4I)w46;+w7ML;Gmdi(KxNDQb&x*hA}{{J3~3^8|)!U9$thRzX1{ zY0`3NTr*Z9ZKMMoVlSZVG5&cjE9H1cP=vbJu;1AS`Vum^9P5uNyl)`8r^*@_WJ^yb ziVE--=;g*@fQDgS_pOA&P&)AvULb(&g zxedZ4`=Wd%^ZlPp7oX;#cWSv)XtUY$w_Hm z#f@!Aj`pk8mk<9K&`b|P&M|nQC%GELOLT}P@?`Mjz#N+Rw4v5*E&}I9;Nx)qMQ$n_L@ekw}<_lt!Zs? zaK(bd;h1C-egTe=vjUJxu*bK_z=t)=9HGnrff?no8lIWcb?d0t4HH`(BVmvYMOh4+ z@-tm%TrND9awK;Aohf8l)Q}K(wf?Z5&mb7VG2%auKmT6RKkoiv7+Oj8uK<6Y!u&Hp zBiJbaX(scj;L};O-=c@$uK1J5w5P&=3cf@5CH#NP@I1wNI=k^3Nd)PC|HR)W zIi8|CZ3h2F;R606%CFY&QLfFt7-QXDMzDY zNly{}8utE{2LR})0D!**!B55i8lwDJyoKgZ;{OU*o=X4K3H(_)h5k>{M*r&)lw_g7 T+VgX|6BV!uR>1q`KY#rXhBHJ; literal 0 HcmV?d00001 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_export.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_export.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9460a651dab7de2c80bb9af0fb3d65f06b3d94ee GIT binary patch literal 11453 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 literal 0 HcmV?d00001 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2a1b3237d9de0b9f071d4c7ebfcc9fb0df6ef6cb GIT binary patch literal 12931 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

9`#A z^g$5_AJ$!|Y>})zK+PMVe5R$TV`@E_*c8Dq{PeY)szpDzb}fnt zlJqQL^6E=U8+O;jl#!x~tWS#<3vkt(#!(Av>*S>eN|*tz)ooZYWXEGK8W!h;60q=s zb~8Bna6$|UOZ}Q(@J!^03CrZwJ(?AT%qPS5LQxli<0Luz?pv$gX`@EqyiH&f)$%BW z!q3a-TPwl9Pkr5t%evg5n|RLCdvjxU|KP>q5i>Lb&z*1B2ZYxOKvW%ce3E*6Fn?Tq zi#ywxkJqF?+&hVV(mi^;dA2cF8@5m?ZH?70SAiAzj&keW)4i*b=u)}#5(9;zxK4wNiTy z*TSRh>J!*VZSUHbbybZ+6BJD9T&@`Zl}!Qb;N)5$Z(;yq6e_5tXlP>~Z*ODkz-VA& zZ}c;!1E~bIU*)eJuS(Qes z1CzOKUPGzzP(KfY(68UwWTwKJarpSVBhOM>tfwl+4$2|3=%Rh$AQn_8?rvT0JiRX{ zzrsvA`;j+TA11a^3Fug}mbj`z8&%03+l-^PfVtE4wTtOL06aGJ9G%if<+0GY;LHeO zI4QUGEr(#;%$NCgZC+kN)kz&QGUtv=|_59kkUU;8w|7-}D`+eH8S0T*6vWt$J8 zq!j4*1OAngdbYOzWh97-e}2+prL5;cJ=!ZMdzcS*N!2ePKL|2YoeE%4>$gi@Dw!Li zW{ZDFgLNK_k->(t_bate#oA_;lnAE3s@kzOe*8Kb$(qNxJVjwP4s&4HlOG#LZW>Qp zt8KE+*T%I~8V}D^+$pQB;6Of1;j}VZQ*J0}ov{HtB=zeIxZ`p}{$Q5)kA$FQQ9rFQ#j+ohuEs zOu1$-iBsmYcCblV_8Fl(Z^Jxy43-b;O`cA+`)NvjdM_s?Efh54+J|aLbopa1!3AQ+ zPA%U{!H@(jdK!B^xLYZLtuXRT65XKWDy+}YQm73U_%VF1WQZBPKfk|wyu3f#3tdql zGWX)Ne$jg?GIAG)L-5KO8bS;M8O}ilx>LIeQqCJJBl3esAec+Lx=JwHi?ai953@@f zGvXJ^#hFSQcj4Qr^S!pq8;5AH%P{ZNFiPNgucZ6TYA=7x8$-t z2vIthqb4UMxa8JE`#Cxh@-Xh?2$t7+6;=mT4sW%nw^u>%Hx)_3_%=H2ti$YtW@<^Qq?wB_A!gZP#D> zv*B{8ahDOZ?YF-ir=lZQaJHLLr8+k8`KMl^f*4z#^YEf^;;^@V2nJ=7?}s;&pQj! zK9riPs%_rxw%@Id>yv`2=Isu~#9HtQunnAKf#iHWA6oQ$m_tnAEA-$Qk)LYe7+<+; z9`?FoV5y+T53(RDh+vVGQ-6%jgX2&L$BMf*hNy@f;s>qP9~=V%rw0Xt|2{eXdrANJ z_Ahhf@=|{X`1`!-UjYU|PWdm>tIrLePwo9SeFV+%J)7ZsZv6N0rr)Lj02-*;_J0pM zJ;!-I select - a.ID as buildingId, a.BUILDING_NAME as buildingName, + b.NEIGHBOR_HOOD_NAME as neighbourHoodName, a.TOTAL_HOUSE_NUM as totalHouseNum, a.TOTAL_FLOOR_NUM as totalFloorNum, a.TOTAL_UNIT_NUM as totalUnitNum, - a.BUILDING_NAME as buildingType, - b.NEIGHBOR_HOOD_NAME as neighbourHoodName + a.TYPE as buildingType, + a.ID as buildingId, + c.ID as agencyId. + c.ORGANIZATION_NAME as agencyName, + d.ID as gridId, + d.GRID_NAME as gridName, + a.SORT as sort, + a.LONGITUDE as longitude, + a.LATITUDE as latitude, + a.TYPE as buildingTypeKey from ic_building a - LEFT JOIN ic_neighbor_hood b on a.NEIGHBOR_HOOD_ID = b.ID - + LEFT JOIN ic_neighbor_hood b on a.NEIGHBOR_HOOD_ID = b.ID and b.DEL_FLAG='0' + left join customer_agency c on b.AGENCY_ID = c.ID and c.DEL_FLAG='0' - + left join customer_grid d on b.GRID_ID = d.ID and d.DEL_FLAG='0' + + AND a.NEIGHBOR_HOOD_ID = #{building.id} - - AND a.BUILDING_NAME like concat('%',trim(#{building.buildingName}),'%') + + AND a.DEL_FLAG = #{building.delFlag} + + + + + + - diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index e62cb42010..01764d05ad 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -104,39 +104,78 @@ --> + - \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml index b1d6f0c7e3..9703c6b33c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml @@ -61,19 +61,30 @@ select a.id as neighborHoodId, a.NEIGHBOR_HOOD_NAME as neighborHoodName, + b.ORGANIZATION_NAME as agencyName, + c.GRID_NAME as gridName, a.ADDRESS as address, a.REMARK as remark, + b.ID as agencyId, + c.ID as gridId, + d.PROPERTY_ID as propertyId , + a.LOCATION as location, + a.LONGITUDE as longitude, + a.LATITUDE as latitude - b.ORGANIZATION_NAME as orgName, - c.GRID_NAME as gridName from ic_neighbor_hood a - left join customer_agency b on a.AGENCY_ID = b.ID + left join customer_agency b on a.AGENCY_ID = b.ID and b.DEL_FLAG='0' - left join customer_grid c on a.GRID_ID = c.ID + left join customer_grid c on a.GRID_ID = c.ID and c.DEL_FLAG='0' + + left join ic_neighbor_hood_property d on a.ID = d.NEIGHBOR_HOOD_ID and d.DEL_FLAG='0' - - AND a.GRID_ID = #{neighbor.id} + + AND a.GRID_ID = #{neighbor.gridId} + + + AND (a.AGENCY_ID = #{neighbor.agencyId} or CONCAT(':',a.PIDS, ':') like CONCAT('%:',#{neighbor.agencyId},':%')) AND a.DEL_FLAG = #{neighbor.delFlag} @@ -90,17 +101,20 @@ c.GRID_NAME as gridName from ic_neighbor_hood a - left join customer_agency b on a.AGENCY_ID = b.ID + left join customer_agency b on a.AGENCY_ID = b.ID and b.DEL_FLAG='0' - left join customer_grid c on a.GRID_ID = c.ID - left join ic_neighbor_hood_property d on a.ID = d.NEIGHBOR_HOOD_ID - left join ic_property_management e on d.PROPERTY_ID = e.ID + left join customer_grid c on a.GRID_ID = c.ID and c.DEL_FLAG='0' + left join ic_neighbor_hood_property d on a.ID = d.NEIGHBOR_HOOD_ID and d.DEL_FLAG='0' + left join ic_property_management e on d.PROPERTY_ID = e.ID and e.DEL_FLAG='0' - - AND a.GRID_ID = #{neighbor.id} + + AND a.GRID_ID = #{neighbor.gridId} + + + AND (a.AGENCY_ID = #{neighbor.agencyId} or CONCAT(':',a.PIDS, ':') like CONCAT('%:',#{neighbor.agencyId},':%')) - AND a.DEL_FLAG = #{building.delFlag} + AND a.DEL_FLAG = #{neighbor.delFlag} @@ -142,15 +156,15 @@ ic_neighbor_hood a INNER JOIN customer_agency b on a.AGENCY_ID = b.ID and b.ORGANIZATION_NAME in - ${val} + #{val} - INNER JOIN customer_grid c on a.GRID_ID = c.ID and c.PID = b.ID and b.GRID_NAME in + INNER JOIN customer_grid c on a.GRID_ID = c.ID and c.PID = b.ID and c.GRID_NAME in - ${val} + #{val} where a.DEL_FLAG= '0'and a.NEIGHBOR_HOOD_NAME in - ${val} + #{val}