Browse Source

生成房屋编码方法

feature/teamB_zz_wgh
Jackwang 3 years ago
parent
commit
9a3a02a80c
  1. 12
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseCodeInfoDTO.java
  2. 24
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseCodeInfoDao.java
  3. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseCodeInfoEntity.java
  4. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  5. 50
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  6. 12
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseCodeInfoDao.xml

12
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseCodeInfoDTO.java

@ -1,12 +1,12 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.io.Serializable;
/**
*
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
@ -29,11 +29,11 @@ public class IcHouseCodeInfoDTO implements Serializable {
/**
* 最大的楼栋编码序列号
*/
private Integer buildingMaxNum;
private String buildingMaxNum;
/**
* 该楼栋下最大的房屋编码序列号
*/
private Integer houseMaxNum;
private String houseMaxNum;
}
}

24
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseCodeInfoDao.java

@ -3,14 +3,32 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcHouseCodeInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
*
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
*/
@Mapper
public interface IcHouseCodeInfoDao extends BaseDao<IcHouseCodeInfoEntity> {
}
/**
* @describe: 通过客户id和楼栋id查询
* @author wangtong
* @date 2022/6/1 17:01
* @params [customerId, buildingId]
* @return com.epmet.entity.IcHouseCodeInfoEntity
*/
IcHouseCodeInfoEntity selectByCuIdAndBuilId(@Param("customerId") String customerId,@Param("buildingId") String buildingId);
/**
* @describe: 查询数据库里最大的楼栋编号
* @author wangtong
* @date 2022/6/1 17:15
* @params []
* @return com.epmet.entity.IcHouseCodeInfoEntity
*/
IcHouseCodeInfoEntity selectMaxHouseMaxNum();
}

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseCodeInfoEntity.java

@ -1,15 +1,12 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
@ -34,11 +31,11 @@ public class IcHouseCodeInfoEntity extends BaseEpmetEntity {
/**
* 最大的楼栋编码序列号
*/
private Integer buildingMaxNum;
private String buildingMaxNum;
/**
* 该楼栋下最大的房屋编码序列号
*/
private Integer houseMaxNum;
private String houseMaxNum;
}

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -126,4 +126,14 @@ public interface HouseService {
* @return void
*/
void downloadZip(HttpServletResponse response,IcHouseListFormDTO formDTO) throws Exception;
/**
* @describe: 生成自增的房屋编码编码规则
* 国家统计局社区区划代码37021101004212位数字+楼栋序列码(5位数字自增)+房屋码(5位数字自增)
* @author wangtong
* @date 2022/6/1 16:58
* @params [customerId-客户id, buildingId-楼栋id, areaCode-区划代码]
* @return java.lang.String
*/
String createHouseCode(String customerId,String buildingId,String areaCode);
}

50
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -30,6 +30,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IcHouseChangeDetailEntity;
import com.epmet.entity.IcHouseChangeRecordEntity;
import com.epmet.entity.IcHouseCodeInfoEntity;
import com.epmet.entity.IcHouseEntity;
import com.epmet.enums.HouseChangeEnums;
import com.epmet.enums.HousePurposeEnums;
@ -111,6 +112,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
private IcHouseChangeDetailService changeDetailService;
@Autowired
private HouseService houseService;
@Autowired
private IcHouseCodeInfoDao icHouseCodeInfoDao;
@Override
@ -839,5 +842,52 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return house.getNeighborHoodName() + File.separator +house.getBuildingName() + File.separator +house.getUnitNum() + File.separator + house.getDoorName() + HouseQrcodeEnum.SUFFIX.getCode();
}
@Override
public String createHouseCode(String customerId, String buildingId, String areaCode) {
String result = "";
IcHouseCodeInfoEntity codeEntity = icHouseCodeInfoDao.selectByCuIdAndBuilId(customerId, buildingId);
if (null == codeEntity) {
//查询数据库里最大的楼栋编号
IcHouseCodeInfoEntity maxCodeEntity = icHouseCodeInfoDao.selectMaxHouseMaxNum();
//新增楼栋信息
IcHouseCodeInfoEntity newEntity = new IcHouseCodeInfoEntity();
if (null != maxCodeEntity) {
Integer buildingMaxNum = Integer.valueOf(maxCodeEntity.getBuildingMaxNum()) + 1;
result = areaCode + getNewMaxIndex(buildingMaxNum) + "00001";
} else {
//数据库里面的第一条数据
result = areaCode + "00001" + "00001";
newEntity.setBuildingMaxNum("00001");
newEntity.setHouseMaxNum("00001");
}
newEntity.setCustomerId(customerId);
newEntity.setBuildingId(buildingId);
icHouseCodeInfoDao.insert(newEntity);
} else {
Integer houseMaxNum = Integer.valueOf(codeEntity.getHouseMaxNum()) + 1;
result = areaCode + codeEntity.getBuildingMaxNum() + getNewMaxIndex(houseMaxNum);
//更新该楼栋下最大的房间编号
codeEntity.setHouseMaxNum(getNewMaxIndex(houseMaxNum));
icHouseCodeInfoDao.updateById(codeEntity);
}
return result;
}
/**
* @return java.lang.String
* @describe: 把数字转换成5位的字符串不够的前面补0
* @author wangtong
* @date 2022/6/1 14:27
* @params [maxIndex]
*/
private String getNewMaxIndex(Integer maxIndex) {
String result = maxIndex.toString();
while (result.length() < 5) {
result = "0" + result;
}
return result;
}
}

12
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseCodeInfoDao.xml

@ -9,6 +9,16 @@
<result property="buildingMaxNum" column="BUILDING_MAX_NUM"/>
<result property="houseMaxNum" column="HOUSE_MAX_NUM"/>
</resultMap>
<select id="selectByCuIdAndBuilId" resultType="com.epmet.entity.IcHouseCodeInfoEntity">
select * from ic_house_code_info
where CUSTOMER_ID=#{customerId}
and BUILDING_ID=#{buildingId}
</select>
<select id="selectMaxHouseMaxNum" resultType="com.epmet.entity.IcHouseCodeInfoEntity">
select * from ic_house_code_info
order by BUILDING_MAX_NUM desc
limit 1
</select>
</mapper>
</mapper>

Loading…
Cancel
Save