diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index ed274b2c28..6a66e1ae71 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -256,6 +256,7 @@ public enum EpmetErrorCode { RESI_IC_NAT(8925,"已存在记录,请联系社区工作人员修改"), IC_MOVE_IN(8926,"居民信息中房屋信息与当前选择房屋不一致,是否更新?"), NOT_REGEIST_RESI(8927,"未注册居民"), + UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"), //通用错误码 start diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java index cec2d19994..8697f4b375 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java @@ -79,4 +79,14 @@ public class IcHouseListFormDTO extends PageFormDTO { * 备注 */ private String remark; + + /** + * 开始日期 eg:20220505 + */ + private String updateStartDate; + + /** + * 结束日期 eg:20220505 + */ + private String updateEndDate; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java index 4c1b40288f..069318849c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java @@ -79,7 +79,8 @@ public class IcHouseListResultDTO implements Serializable { */ private String ownerIdCard; - private Double sort; + private String remark; + private Double sort; } 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 0156f0e042..85f0d846f7 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 @@ -9,6 +9,7 @@ public interface ImportErrorMsgConstants { String EXIST_ERROR = "数据已存在"; String UNIT_ERROR = "暂不支持单元数减小"; + String UNIT_EXIST_HOUSES_ERROR = "单元下存在房屋,不可修改单元数"; String DOCUMENT_EXIST_ERROR = "文件中存在重复数据"; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingUnitDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingUnitDao.java index 69465df911..147f25f7d2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingUnitDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingUnitDao.java @@ -20,6 +20,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.IcBuildingUnitEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 楼栋单元信息 @@ -29,5 +32,22 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcBuildingUnitDao extends BaseDao { - + + /** + * Desc: 根据楼栋ID获取单元IDs + * @param buildingId + * @param size + * @author zxc + * @date 2022/5/31 15:46 + */ + List getUnitIdByBuildingId(@Param("buildingId")String buildingId,@Param("size")Integer size); + + /** + * Desc: 删除单元 + * @param ids + * @author zxc + * @date 2022/5/31 16:04 + */ + void delUnit(@Param("ids")List ids); + } \ No newline at end of file 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 e1cb4de562..d428631ad5 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 @@ -102,4 +102,12 @@ public interface IcHouseDao extends BaseDao { */ HouseAgencyInfoResultDTO getHouseAgencyInfo(@Param("houseId") String houseId); + /** + * Desc: 获取单元下的房屋数 + * @param unitIds + * @author zxc + * @date 2022/5/31 15:53 + */ + Integer getHouseCountByUnitIds(@Param("unitIds")List unitIds); + } 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 94de07dbbc..e567bf017d 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 @@ -188,7 +188,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener ids = icBuildingUnitDao.getUnitIdByBuildingId(formDTO.getBuildingId(), size); + if (!CollectionUtils.isEmpty(ids)){ + Integer houseCount = icHouseDao.getHouseCountByUnitIds(ids); + if (houseCount.compareTo(NumConstant.ZERO) != NumConstant.ZERO){ + throw new EpmetException(EpmetErrorCode.UNIT_EXIST_HOUSES_ERROR.getCode()); + } + icBuildingUnitDao.delUnit(ids); + } +// throw new EpmetException(EpmetErrorCode.ORG_EDIT_FAILED.getCode(), EpmetErrorCode.ORG_EDIT_FAILED.getMsg(), "暂不支持单元号减小"); } else { //新增单元 List units = icBuildingUnitService.getUnitOptions(icBuilding.getId()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java index ee0d37afef..c54ea3a436 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java @@ -44,10 +44,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; import com.epmet.constants.ImportTaskConstants; -import com.epmet.dao.CustomerGridDao; -import com.epmet.dao.IcBuildingDao; -import com.epmet.dao.IcNeighborHoodDao; -import com.epmet.dao.IcPropertyManagementDao; +import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.IcNeighborHoodAddFormDTO; import com.epmet.dto.form.ImportInfoFormDTO; @@ -121,6 +118,10 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl page(Map params) { @@ -598,7 +599,23 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl ids = icBuildingUnitDao.getUnitIdByBuildingId(building.getId(), size); + if (!org.springframework.util.CollectionUtils.isEmpty(ids)){ + Integer houseCount = icHouseDao.getHouseCountByUnitIds(ids); + if (houseCount.compareTo(NumConstant.ZERO) != NumConstant.ZERO){ + info.setBuildingUnitNumStatus(true); + }else { + icBuildingUnitDao.delUnit(ids); + icBuildingService.updateBuilding(info); + } + } }else { info.setBuildingId(building.getId()); icBuildingService.updateBuilding(info); 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 7e0d3bde18..92c486f24a 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 @@ -48,10 +48,18 @@ SET TOTAL_UNIT_NUM = #{totalUnitNum}, TOTAL_FLOOR_NUM = #{totalFloorNum}, TOTAL_HOUSE_NUM = #{totalHouseNum}, - BUILDING_LEADER_NAME = #{buildingLeaderName}, - BUILDING_LEADER_MOBILE = #{buildingLeaderMobile}, - SORT = #{sort}, - TYPE = #{type}, + + BUILDING_LEADER_NAME = #{buildingLeaderName}, + + + BUILDING_LEADER_MOBILE = #{buildingLeaderMobile}, + + + SORT = #{sort}, + + + TYPE = #{type}, + UPDATED_TIME = NOW() WHERE ID = #{buildingId} diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml index 0ee38da368..09f334b42d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml @@ -3,19 +3,20 @@ - - - - - - - - - - - - - + + + UPDATE ic_building_unit + SET DEL_FLAG = '1', + UPDATED_TIME = NOW() + WHERE ID IN ( + #{id} + ) + + + + \ No newline at end of file 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 5fe411e6ee..e907804e12 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 @@ -112,7 +112,8 @@ ag.ORGANIZATION_NAME agencyName, c.GRID_ID as gridId, gr.GRID_NAME, - IFNULL(a.sort,0) as sort + IFNULL(a.sort,0) as sort, + IFNULL(a.REMARK,'') AS remark from ic_house a LEFT JOIN ic_building b on a.BUILDING_ID = b.ID and b.DEL_FLAG = '0' LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0' @@ -121,6 +122,7 @@ LEFT JOIN customer_agency ag on ag.ID = c.AGENCY_ID and d.DEL_FLAG = '0' 1 = 1 + and a.del_flag = '0' and case c.AGENCY_PIDS when '' then CONCAT(c.AGENCY_ID) like CONCAT(#{pids}, '%') else CONCAT(c.AGENCY_PIDS, ':', c.AGENCY_ID) like CONCAT(#{pids}, '%') end @@ -170,7 +172,16 @@ AND a.REMARK like CONCAT('%',#{remark},'%') - and a.del_flag = '0' + + AND ((DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') >= #{updateStartDate} AND DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') #{updateEndDate}) + OR (DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d') >= #{updateStartDate} AND DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d') #{updateEndDate})) + + + AND (DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') #{updateEndDate}) OR ((DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d')) #{updateEndDate}) + + + AND (DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') =]]> #{updateStartDate}) OR ((DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d')) =]]> #{updateStartDate}) + #排序规则:根据小区、楼栋、单元、门牌号(分别按照数字和中文)分别升序排序 ORDER BY @@ -374,4 +385,11 @@ WHERE h.ID = #{houseId} + + +