diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java index 7b5bd482dd..e91bf8e3a3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java @@ -159,6 +159,11 @@ public class ImportGeneralDTO implements Serializable { */ private Boolean buildingExistStatus = false; + /** + * 楼栋单元数小于当前值时为true + */ + private Boolean buildingUnitNumStatus = false; + /** * 小区重复状态 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java index 2c764b63db..0156f0e042 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java @@ -8,6 +8,7 @@ package com.epmet.constant; public interface ImportErrorMsgConstants { String EXIST_ERROR = "数据已存在"; + String UNIT_ERROR = "暂不支持单元数减小"; String DOCUMENT_EXIST_ERROR = "文件中存在重复数据"; 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 5c87d4ec46..3fd205a48d 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 @@ -180,4 +180,20 @@ public interface IcBuildingDao extends BaseDao { */ void allUpdateHouseNum(@Param("nums") List nums); + /** + * Desc: 更新楼栋信息 + * @param info + * @author zxc + * @date 2022/4/27 13:29 + */ + void updateBuilding(ImportGeneralDTO info); + + /** + * Desc: 查询楼栋下单元数 + * @param buildingId + * @author zxc + * @date 2022/4/27 14:41 + */ + Integer selectUnitCount(@Param("buildingId")String buildingId); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java index 95c9ae5d9b..6238d0f303 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ImportGeneralDTO; +import com.epmet.dto.NeighborHoodAndManagementDTO; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.form.IcNeighborHoodListFormDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; @@ -60,5 +62,29 @@ public interface IcNeighborHoodDao extends BaseDao { */ List selectNeighborhoodNameByNames(@Param("names")List names,@Param("customerId") String customerId); + /** + * Desc: 更新小区详细地址和备注 + * @param needUpdateList + * @author zxc + * @date 2022/4/27 09:59 + */ + void updateNeighborHood(@Param("list") List needUpdateList); + + /** + * Desc: 更新小区关系表 + * @param updateNeighborHoodAndManagement + * @author zxc + * @date 2022/4/27 10:33 + */ + void neighborHoodPropertyUpdate(@Param("list")List updateNeighborHoodAndManagement); + List selectNeighborList(@Param("gridId")String gridId); + + /** + * Desc: 删除物业关系 + * @param neighborHoodIds + * @author zxc + * @date 2022/4/28 09:10 + */ + void delProperty(@Param("neighborHoodIds")List neighborHoodIds); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java index b374e0ff9f..3b13b608a8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java @@ -179,14 +179,16 @@ public class ImportBuildingInfoListener extends AnalysisEventListener importGeneralDTOS = groupByStatus.get(false); if (!CollectionUtils.isEmpty(importGeneralDTOS)){ List importInfo = neighborHoodService.getImportInfo(formDTO, importGeneralDTOS); - Map> groupByBuildingExistStatus = importInfo.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getBuildingExistStatus)); - List existList = groupByBuildingExistStatus.get(true); - if (!CollectionUtils.isEmpty(existList)){ - existList.forEach(e -> { + /*Map> groupByBuildingExistStatus = importInfo.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getBuildingExistStatus)); + List existList = groupByBuildingExistStatus.get(true);*/ + Map> collect = importInfo.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getBuildingUnitNumStatus)); + List unitNumList = collect.get(true); + if (!CollectionUtils.isEmpty(unitNumList)){ + unitNumList.forEach(e -> { if (!e.getAddStatus()){ nums.add(e.getNum()); BuildingInfoModel buildingInfoModel = ConvertUtils.sourceToTarget(e, BuildingInfoModel.class); - disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.EXIST_ERROR); + disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.UNIT_ERROR); e.setAddStatus(true); } }); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java index a75f0dc15f..a2581e8c48 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java @@ -51,6 +51,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); + List needUpdateList = new ArrayList<>(); String gridName = null; String agencyName = null; @@ -128,7 +129,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener groupByAllName = needDisposeList.stream().collect(Collectors.groupingBy( @@ -151,8 +152,11 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener> groupByStatus = needDisposeList.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getExistStatus)); List importGeneralDTOS = groupByStatus.get(false); - if (!CollectionUtils.isEmpty(importGeneralDTOS)){ - List importInfo = neighborHoodService.getImportInfo(formDTO, importGeneralDTOS); + if (!CollectionUtils.isEmpty(importGeneralDTOS) || !CollectionUtils.isEmpty(needUpdateList)){ + List importInfo = new ArrayList<>(); + if (!CollectionUtils.isEmpty(importGeneralDTOS)){ + importInfo = neighborHoodService.getImportInfo(formDTO, importGeneralDTOS); + } Map> groupByBuildingExistStatus = importInfo.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getNeighborHoodExistStatus)); List existList = groupByBuildingExistStatus.get(true); if (!CollectionUtils.isEmpty(existList)){ @@ -165,7 +169,16 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener notExistList = groupByBuildingExistStatus.get(false); + List notExistList = new ArrayList<>(); + List notExistListFalse = groupByBuildingExistStatus.get(false); + if (!CollectionUtils.isEmpty(notExistListFalse)){ + notExistList.addAll(notExistListFalse); + } + if (!CollectionUtils.isEmpty(needUpdateList)){ + notExistList.addAll(needUpdateList); + // 更新详细地址和备注 + neighborHoodService.updateNeighborHood(needUpdateList); + } if (!CollectionUtils.isEmpty(notExistList)){ // 物业表插入 List propertyNames = notExistList.stream().filter(n -> StringUtils.isNotBlank(n.getPropertyName())).map(m -> m.getPropertyName()).distinct().collect(Collectors.toList()); @@ -184,15 +197,26 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener neighborHoodAndManagementDTOS = ConvertUtils.sourceToTarget(notExistList, NeighborHoodAndManagementDTO.class); + List neighborHoodAndManagementDTOS = ConvertUtils.sourceToTarget(notExistListFalse, NeighborHoodAndManagementDTO.class); + List updateNeighborHoodAndManagement = ConvertUtils.sourceToTarget(needUpdateList, NeighborHoodAndManagementDTO.class); List propertyManagementInfos = propertyManagementDao.selectIdByName(propertyNames); - neighborHoodAndManagementDTOS.forEach(n -> propertyManagementInfos.stream().filter(p -> p.getName().equals(n.getPropertyName())) - .forEach(p -> { - n.setPropertyId(p.getId()); - n.setNeighborHoodId(n.getNeighborHoodId()); - })); + if (!CollectionUtils.isEmpty(neighborHoodAndManagementDTOS)){ + neighborHoodAndManagementDTOS.forEach(n -> propertyManagementInfos.stream().filter(p -> p.getName().equals(n.getPropertyName())) + .forEach(p -> { + n.setPropertyId(p.getId()); + n.setNeighborHoodId(n.getNeighborHoodId()); + })); + } + if (!CollectionUtils.isEmpty(updateNeighborHoodAndManagement)){ + updateNeighborHoodAndManagement.forEach(n -> propertyManagementInfos.stream().filter(p -> p.getName().equals(n.getPropertyName())) + .forEach(p -> { + n.setPropertyId(p.getId()); + n.setNeighborHoodId(n.getNeighborHoodId()); + })); + } List icNeighborHoodPropertyEntities = ConvertUtils.sourceToTarget(neighborHoodAndManagementDTOS, IcNeighborHoodPropertyEntity.class); neighborHoodService.neighborHoodPropertyInsert(icNeighborHoodPropertyEntities); + neighborHoodService.neighborHoodPropertyUpdate(updateNeighborHoodAndManagement); } } } @@ -200,6 +224,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener(); needInsertList = new ArrayList<>(); + needUpdateList = new ArrayList<>(); gridName = null; agencyName = null; gridInfos = null; @@ -297,9 +322,13 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener { * @Date 2022/2/14 15:19 */ IcBuildingDTO getBuildingInfo(String neighborHoodId, String buildingName); + + /** + * Desc: 更新楼栋信息 + * @param info + * @author zxc + * @date 2022/4/27 13:29 + */ + void updateBuilding(ImportGeneralDTO info); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java index fb97d3add3..087ab03441 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.ImportGeneralDTO; +import com.epmet.dto.NeighborHoodAndManagementDTO; import com.epmet.dto.form.IcNeighborHoodAddFormDTO; import com.epmet.dto.form.ImportInfoFormDTO; import com.epmet.dto.result.ImportTaskCommonResultDTO; @@ -155,4 +156,20 @@ public interface IcNeighborHoodService extends BaseService * @return */ PageData openPage(IcNeighborHoodAddFormDTO params); + + /** + * Desc: 更新小区 + * @param needUpdateList + * @author zxc + * @date 2022/4/27 09:59 + */ + void updateNeighborHood(List needUpdateList); + + /** + * Desc: 更新小区关系表 + * @param updateNeighborHoodAndManagement + * @author zxc + * @date 2022/4/27 10:33 + */ + void neighborHoodPropertyUpdate(List updateNeighborHoodAndManagement); } 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 44beeaafe3..110d819b76 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 @@ -25,6 +25,11 @@ import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcHouseEntity; +import com.epmet.dto.result.HouseInfoDTO; +import com.epmet.dto.result.IcHouseListResultDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; +import com.epmet.dto.result.NeighborHoodManageDelResultDTO; +import com.epmet.entity.IcHouseEntity; import com.epmet.enums.HousePurposeEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java index 122e9755a0..351fc95306 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.IcBuildingDTO; +import com.epmet.dto.ImportGeneralDTO; import com.epmet.entity.IcBuildingEntity; import com.epmet.service.IcBuildingService; import lombok.extern.slf4j.Slf4j; @@ -153,4 +154,16 @@ public class IcBuildingServiceImpl extends BaseServiceImpl entities){ - List> partition = ListUtils.partition(entities, NumConstant.ONE_HUNDRED); - partition.forEach(p -> { - neighborHoodPropertyService.insertBatch(p); - }); + if (CollectionUtils.isNotEmpty(entities)){ + List> partition = ListUtils.partition(entities, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + neighborHoodPropertyService.insertBatch(p); + }); + } } /** @@ -521,7 +524,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl units = icBuildingUnitService.getUnitOptions(building.getId()); + Map unitMap = units.stream().collect(Collectors.toMap(OptionResultDTO::getCode, OptionResultDTO::getLabel)); + List unitList = new ArrayList<>(); + for (int i = 1; i <= info.getTotalUnitNum(); i++) { + String unitNum = String.valueOf(i); + if (!unitMap.containsKey(unitNum)) { + IcBuildingUnitEntity icBuildingUnit = new IcBuildingUnitEntity(); + icBuildingUnit.setId(IdWorker.getIdStr()); + icBuildingUnit.setBuildingId(building.getId()); + icBuildingUnit.setCustomerId(customerId); + icBuildingUnit.setUnitName(unitNum + "单元"); + icBuildingUnit.setUnitNum(unitNum); + unitList.add(icBuildingUnit); + } + } + icBuildingUnitService.insertBatch(unitList, NumConstant.ONE_HUNDRED); + } return building.getId(); } IcBuildingEntity buildingEntity = new IcBuildingEntity(); @@ -710,4 +736,37 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl needUpdateList) { + if (CollectionUtils.isNotEmpty(needUpdateList)){ + baseDao.updateNeighborHood(needUpdateList); + } + } + + /** + * Desc: 更新小区关系表 + * @param updateNeighborHoodAndManagement + * @author zxc + * @date 2022/4/27 10:33 + */ + @Override + @Transactional + public void neighborHoodPropertyUpdate(List updateNeighborHoodAndManagement) { + if (CollectionUtils.isNotEmpty(updateNeighborHoodAndManagement)){ + baseDao.delProperty(updateNeighborHoodAndManagement.stream().map(m -> m.getNeighborHoodId()).collect(Collectors.toList())); + List entities = ConvertUtils.sourceToTarget(updateNeighborHoodAndManagement, IcNeighborHoodPropertyEntity.class); + List collect = entities.stream().filter(e -> StringUtils.isNotBlank(e.getPropertyId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)){ + neighborHoodPropertyService.insertBatch(collect); + } + } + } + } 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 ac0b1dfdab..2f1659d4f4 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 @@ -42,6 +42,19 @@ ) + + + UPDATE ic_building + SET TOTAL_UNIT_NUM = #{totalUnitNum}, + TOTAL_FLOOR_NUM = #{totalFloorNum}, + TOTAL_HOUSE_NUM = #{totalHouseNum}, + BUILDING_LEADER_NAME = #{buildingLeaderName}, + BUILDING_LEADER_MOBILE = #{buildingLeaderMobile}, + SORT = #{sort}, + UPDATED_TIME = NOW() + WHERE ID = #{buildingId} + + + + 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 179324ce15..b8c3a2c51d 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 @@ -25,6 +25,59 @@ + + + update ic_neighbor_hood + + + + when id = #{l.neighborHoodId} then #{l.address} + + + + + when id = #{l.neighborHoodId} then #{l.remark} + + + UPDATED_TIME = NOW() + + WHERE DEL_FLAG = '0' + AND ID IN ( + + #{l.neighborHoodId} + + ) + + + + + update ic_neighbor_hood_property + + + + when NEIGHBOR_HOOD_ID = #{l.neighborHoodId} then #{l.propertyId} + + + UPDATED_TIME = NOW() + + WHERE DEL_FLAG = '0' + AND NEIGHBOR_HOOD_ID IN ( + + #{l.neighborHoodId} + + ) + + + + + DELETE FROM ic_neighbor_hood_property + WHERE NEIGHBOR_HOOD_ID IN ( + + #{n} + + ) + +