Browse Source

Merge remote-tracking branch 'remotes/origin/dev_0608fix'

feature/teamB_zz_wgh
jianjun 3 years ago
parent
commit
dcee2a4900
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 10
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java
  3. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java
  4. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java
  5. 22
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingUnitDao.java
  6. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  7. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java
  8. 15
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java
  9. 27
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  10. 16
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml
  11. 27
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml
  12. 22
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

1
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

10
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;
/**
* 开始日期 eg20220505
*/
private String updateStartDate;
/**
* 结束日期 eg20220505
*/
private String updateEndDate;
}

3
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;
}

1
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 = "文件中存在重复数据";

22
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<IcBuildingUnitEntity> {
/**
* Desc: 根据楼栋ID获取单元IDs
* @param buildingId
* @param size
* @author zxc
* @date 2022/5/31 15:46
*/
List<String> 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<String> ids);
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -102,4 +102,12 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
*/
HouseAgencyInfoResultDTO getHouseAgencyInfo(@Param("houseId") String houseId);
/**
* Desc: 获取单元下的房屋数
* @param unitIds
* @author zxc
* @date 2022/5/31 15:53
*/
Integer getHouseCountByUnitIds(@Param("unitIds")List<String> unitIds);
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java

@ -188,7 +188,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
if (!e.getAddStatus()){
nums.add(e.getNum());
BuildingInfoModel buildingInfoModel = ConvertUtils.sourceToTarget(e, BuildingInfoModel.class);
disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.UNIT_ERROR);
disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.UNIT_EXIST_HOUSES_ERROR);
e.setAddStatus(true);
}
});

15
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java

@ -454,7 +454,20 @@ public class BuildingServiceImpl implements BuildingService {
Integer unit = icBuilding.getTotalUnitNum();
if (nowUnit < unit) {
//如果小于,判断是否存在房屋,如果存在就提示不能更改
throw new EpmetException(EpmetErrorCode.ORG_EDIT_FAILED.getCode(), EpmetErrorCode.ORG_EDIT_FAILED.getMsg(), "暂不支持单元号减小");
/**
* 校验规则单元号倒序校验原来的单元数 - 现在单元数个单元下是不是存在房屋存在房屋不能更新
* 2022-05-31修改逻辑可以修改变小先去校验,单元下存在房屋就报错不存在删除对应单元更新楼栋单元数
*/
Integer size = unit - nowUnit;
List<String> 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<OptionResultDTO> units = icBuildingUnitService.getUnitOptions(icBuilding.getId());

27
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<IcNeighborHoodDao
private OssFeignClient ossFeignClient;
@Autowired
private ExecutorService executorService;
@Autowired
private IcBuildingUnitDao icBuildingUnitDao;
@Autowired
private IcHouseDao icHouseDao;
@Override
public PageData<IcNeighborHoodDTO> page(Map<String, Object> params) {
@ -598,7 +599,23 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
info.setBuildingExistStatus(true);
if (info.getBuildingUpdateStatus()){
if (info.getTotalUnitNum() < building.getTotalUnitNum()){
info.setBuildingUnitNumStatus(true);
/**
* 需求变动
* 单元数可以修改变小先去校验,单元下存在房屋就报错不存在删除对应单元更新楼栋单元数
* 校验规则单元号倒序校验原来的单元数 - 现在单元数个单元下是不是存在房屋存在房屋不能更新
*/
info.setBuildingId(building.getId());
Integer size = building.getTotalUnitNum() - info.getTotalUnitNum();
List<String> 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);

16
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},
<if test="buildingLeaderName != null and buildingLeaderName != '' ">
BUILDING_LEADER_NAME = #{buildingLeaderName},
</if>
<if test="buildingLeaderMobile != null and buildingLeaderMobile != '' ">
BUILDING_LEADER_MOBILE = #{buildingLeaderMobile},
</if>
<if test="sort != null">
SORT = #{sort},
</if>
<if test="type != null and type != ''">
TYPE = #{type},
</if>
UPDATED_TIME = NOW()
WHERE ID = #{buildingId}
</update>

27
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingUnitDao.xml

@ -3,19 +3,20 @@
<mapper namespace="com.epmet.dao.IcBuildingUnitDao">
<resultMap type="com.epmet.entity.IcBuildingUnitEntity" id="icBuildingUnitMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="buildingId" column="BUILDING_ID"/>
<result property="unitNum" column="UNIT_NUM"/>
<result property="unitName" column="UNIT_NAME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 删除单元 -->
<update id="delUnit">
UPDATE ic_building_unit
SET DEL_FLAG = '1',
UPDATED_TIME = NOW()
WHERE ID IN (
<foreach collection="ids" item="id" separator=",">#{id}</foreach>
)
</update>
<!-- 根据楼栋ID获取单元IDs -->
<select id="getUnitIdByBuildingId" resultType="java.lang.String">
SELECT ID FROM ic_building_unit WHERE DEL_FLAG = '0' AND BUILDING_ID = #{buildingId} ORDER BY UNIT_NUM+0 DESC LIMIT #{size}
</select>
</mapper>

22
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'
<where>
1 = 1
and a.del_flag = '0'
<if test="pids != null and pids != ''">
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 @@
<if test="remark != null and remark.trim() != ''">
AND a.REMARK like CONCAT('%',#{remark},'%')
</if>
and a.del_flag = '0'
<if test="null != updateStartDate and updateStartDate != '' and null != updateEndDate and updateEndDate != ''">
AND ((DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') >= #{updateStartDate} AND DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') <![CDATA[<=]]> #{updateEndDate})
OR (DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d') >= #{updateStartDate} AND DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d') <![CDATA[<=]]> #{updateEndDate}))
</if>
<if test="null != updateEndDate and updateEndDate != '' and (updateStartDate == null or updateStartDate == '') ">
AND (DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') <![CDATA[<=]]> #{updateEndDate}) OR ((DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d')) <![CDATA[<=]]> #{updateEndDate})
</if>
<if test="null != updateStartDate and updateStartDate != '' and (updateEndDate == null or updateEndDate == '') ">
AND (DATE_FORMAT(a.CREATED_TIME,'%Y%m%d') <![CDATA[>=]]> #{updateStartDate}) OR ((DATE_FORMAT(a.UPDATED_TIME,'%Y%m%d')) <![CDATA[>=]]> #{updateStartDate})
</if>
</where>
#排序规则:根据小区、楼栋、单元、门牌号(分别按照数字和中文)分别升序排序
ORDER BY
@ -374,4 +385,11 @@
WHERE h.ID = #{houseId}
</select>
<!-- 获取单元下的房屋数 -->
<select id="getHouseCountByUnitIds" resultType="java.lang.Integer">
SELECT COUNT(ID) FROM ic_house WHERE DEL_FLAG = '0' AND BUILDING_UNIT_ID IN (
<foreach collection="unitIds" item="id" separator=",">#{id}</foreach>
)
</select>
</mapper>

Loading…
Cancel
Save