Browse Source

二维码添加参数

master
Jackwang 3 years ago
parent
commit
73c32cebde
  1. 91
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  2. 191
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  3. 6
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

91
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -102,7 +102,7 @@ public class HouseController implements ResultDataResolver {
@PostMapping("houselist") @PostMapping("houselist")
@MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"}, @MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"},
fieldsMaskType = { MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE }) fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE})
public Result<PageData<IcHouseListResultDTO>> houseList(@LoginUser TokenDto loginUser, @RequestBody IcHouseListFormDTO formDTO) { public Result<PageData<IcHouseListResultDTO>> houseList(@LoginUser TokenDto loginUser, @RequestBody IcHouseListFormDTO formDTO) {
//效验数据 //效验数据
LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(loginUser, "【查询房屋】查询当前staff所在组织信息失败"); LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(loginUser, "【查询房屋】查询当前staff所在组织信息失败");
@ -331,12 +331,13 @@ public class HouseController implements ResultDataResolver {
/** /**
* Desc: 根据类型更新排序 * Desc: 根据类型更新排序
*
* @param formDTO * @param formDTO
* @author zxc * @author zxc
* @date 2022/5/6 08:50 * @date 2022/5/6 08:50
*/ */
@PostMapping("update-sort") @PostMapping("update-sort")
public Result updateSort(@RequestBody UpdateSortFormDTO formDTO){ public Result updateSort(@RequestBody UpdateSortFormDTO formDTO) {
houseService.updateSort(formDTO); houseService.updateSort(formDTO);
return new Result(); return new Result();
} }
@ -358,7 +359,7 @@ public class HouseController implements ResultDataResolver {
formDTO.setIsPage(false); formDTO.setIsPage(false);
formDTO.setPageSize(NumConstant.TEN_THOUSAND); formDTO.setPageSize(NumConstant.TEN_THOUSAND);
//效验数据 //效验数据
if (StringUtils.isBlank(formDTO.getAgencyId())){ if (StringUtils.isBlank(formDTO.getAgencyId())) {
LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(tokenDto, "【查询房屋】查询当前staff所在组织信息失败"); LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(tokenDto, "【查询房屋】查询当前staff所在组织信息失败");
formDTO.setAgencyId(loginUserDetail.getAgencyId()); formDTO.setAgencyId(loginUserDetail.getAgencyId());
} }
@ -378,34 +379,34 @@ public class HouseController implements ResultDataResolver {
.registerWriteHandler(horizontalCellStyleStrategy) .registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.build(); .build();
int[] mergeRowArr = new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12}; int[] mergeRowArr = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
//冻结表头 2行 //冻结表头 2行
FreezeAndFilter writeHandler = new FreezeAndFilter(); FreezeAndFilter writeHandler = new FreezeAndFilter();
writeHandler.rowSplit = 2; writeHandler.rowSplit = 2;
//ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false); //ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false);
ExcelFillRowMergeStrategy mergeStrategy2 = new ExcelFillRowMergeStrategy(mergeRowArr,false); ExcelFillRowMergeStrategy mergeStrategy2 = new ExcelFillRowMergeStrategy(mergeRowArr, false);
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1") WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1")
.head(HouseMemberResultDTO.class) .head(HouseMemberResultDTO.class)
.registerWriteHandler(mergeStrategy2) .registerWriteHandler(mergeStrategy2)
.registerWriteHandler(writeHandler) .registerWriteHandler(writeHandler)
.build(); .build();
PageData<HouseMemberResultDTO> dataList = null; PageData<HouseMemberResultDTO> dataList = null;
Cache<String,Boolean> haveSearchCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED).expireAfterWrite(NumConstant.THIRTY, TimeUnit.MINUTES).build(); Cache<String, Boolean> haveSearchCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED).expireAfterWrite(NumConstant.THIRTY, TimeUnit.MINUTES).build();
do { do {
dataList = houseService.getHouseUser(tokenDto,formDTO,haveSearchCache); dataList = houseService.getHouseUser(tokenDto, formDTO, haveSearchCache);
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
//设置合并策略中的 本次数据的总条数 //设置合并策略中的 本次数据的总条数
mergeStrategy2.setSecTotalCount(dataList.getList().size()+1); mergeStrategy2.setSecTotalCount(dataList.getList().size() + 1);
excelWriter.write(dataList.getList(), writeSheet); excelWriter.write(dataList.getList(), writeSheet);
log.info("getHouseUser doWrite cost:{}ms",System.currentTimeMillis() - start); log.info("getHouseUser doWrite cost:{}ms", System.currentTimeMillis() - start);
if (CollectionUtils.isEmpty(dataList.getList())){ if (CollectionUtils.isEmpty(dataList.getList())) {
break; break;
} }
}while (dataList.getTotal() == formDTO.getPageSize()); } while (dataList.getTotal() == formDTO.getPageSize());
//获取导出配置 //获取导出配置
haveSearchCache.invalidateAll(); haveSearchCache.invalidateAll();
@ -414,53 +415,53 @@ public class HouseController implements ResultDataResolver {
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8"); response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter(); PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result)); printWriter.write(JSON.toJSONString(result));
printWriter.close(); printWriter.close();
} finally { } finally {
if (excelWriter != null){ if (excelWriter != null) {
excelWriter.finish(); excelWriter.finish();
} }
log.info("getHouseUser final cost:{}ms",System.currentTimeMillis() - startTime); log.info("getHouseUser final cost:{}ms", System.currentTimeMillis() - startTime);
} }
} }
/** /**
* @describe: 下载房屋编码 * @return void
* @author wangtong * @describe: 下载房屋编码
* @date 2022/6/1 17:24 * @author wangtong
* @params [formDTO, response] * @date 2022/6/1 17:24
* @return void * @params [formDTO, response]
*/ */
@PostMapping("createHouseQrcode") @PostMapping("createHouseQrcode")
public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response){ public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) {
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
try { try {
IcHouseListResultDTO house = icHouseDao.selectHouseQrcodeById(formDTO.getId()); IcHouseListResultDTO house = icHouseDao.selectHouseQrcodeById(formDTO.getId());
if(null == house){ if (null == house) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息","未查到房屋信息"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息");
} }
//url组成:小程序地址?房屋编码 //url组成:小程序地址?房屋编码
String url = HouseQrcodeEnum.PREFIX.getCode()+"?houseCode="+house.getHouseCode(); String url = HouseQrcodeEnum.PREFIX.getCode() + "?houseCode=" + house.getHouseCode() + "&customerId=" + house.getCustomerId() + "&gridId=" + house.getGridId();
BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() +house.getUnitNum()+ house.getDoorName(), url); BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName(), url);
//BufferedImage 转 InputStream //BufferedImage 转 InputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream); ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
ImageIO.write(image, "png", imageOutput); ImageIO.write(image, "png", imageOutput);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
long length = imageOutput.length(); long length = imageOutput.length();
String fileName = house.getNeighborHoodName() + house.getBuildingName() +house.getUnitNum()+ house.getDoorName()+".png"; String fileName = house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName() + ".png";
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
response.setContentLength((int)length); response.setContentLength((int) length);
response.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName, StrConstant.UTF_8)); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
//输出流 //输出流
byte[] bytes = new byte[1024]; byte[] bytes = new byte[1024];
OutputStream outputStream = response.getOutputStream(); OutputStream outputStream = response.getOutputStream();
long count = 0; long count = 0;
while(count < length){ while (count < length) {
int len = inputStream.read(bytes, 0, 1024); int len = inputStream.read(bytes, 0, 1024);
count +=len; count += len;
outputStream.write(bytes, 0, len); outputStream.write(bytes, 0, len);
} }
outputStream.flush(); outputStream.flush();
@ -470,30 +471,30 @@ public class HouseController implements ResultDataResolver {
} }
/** /**
* @describe: 批量下载一户一档的二维码 * @return void
* @author wangtong * @describe: 批量下载一户一档的二维码
* @date 2022/5/31 17:58 * @author wangtong
* @params [loginUser, formDTO, response] * @date 2022/5/31 17:58
* @return void * @params [loginUser, formDTO, response]
*/ */
@PostMapping(value = "/downloadZip") @PostMapping(value = "/downloadZip")
public void downloadZip(@LoginUser TokenDto loginUser, @RequestBody IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception { public void downloadZip(@LoginUser TokenDto loginUser, @RequestBody IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception {
//效验数据 //效验数据
LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(loginUser, "【查询房屋】查询当前staff所在组织信息失败"); LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(loginUser, "【查询房屋】查询当前staff所在组织信息失败");
formDTO.setAgencyId(loginUserDetail.getAgencyId()); formDTO.setAgencyId(loginUserDetail.getAgencyId());
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
houseService.downloadZip(response,formDTO); houseService.downloadZip(response, formDTO);
} }
/** /**
* @describe: 根据房屋编码获取信息 * @return com.epmet.dto.result.IcHouseInfoResultDTO
* @author wangtong * @describe: 根据房屋编码获取信息
* @date 2022/6/1 18:24 * @author wangtong
* @params [formDTO] * @date 2022/6/1 18:24
* @return com.epmet.dto.result.IcHouseInfoResultDTO * @params [formDTO]
*/ */
@PostMapping("getHouseInfoByCode") @PostMapping("getHouseInfoByCode")
public Result<IcHouseInfoResultDTO> getHouseInfoByCode(@LoginUser TokenDto loginUser,@RequestBody IcHouseInfoFormDTO formDTO) { public Result<IcHouseInfoResultDTO> getHouseInfoByCode(@LoginUser TokenDto loginUser, @RequestBody IcHouseInfoFormDTO formDTO) {
//效验数据 //效验数据
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
formDTO.setCustomerId(loginUser.getCustomerId()); formDTO.setCustomerId(loginUser.getCustomerId());
@ -504,7 +505,7 @@ public class HouseController implements ResultDataResolver {
@PostMapping("createHouseCode") @PostMapping("createHouseCode")
public String createHouseCode(@RequestBody TestFormDTO formDTO) { public String createHouseCode(@RequestBody TestFormDTO formDTO) {
//效验数据 //效验数据
return houseService.createHouseCode(formDTO.getCustomerId(),formDTO.getBuildingId(),formDTO.getAreaCode()); return houseService.createHouseCode(formDTO.getCustomerId(), formDTO.getBuildingId(), formDTO.getAreaCode());
} }

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

@ -85,7 +85,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
/** /**
* 导出房屋内家庭成员时本地缓存 * 导出房屋内家庭成员时本地缓存
*/ */
private static final Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberCacheMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.MINUTES).expireAfterWrite(30,TimeUnit.MINUTES).build(); private static final Cache<String, List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberCacheMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.MINUTES).expireAfterWrite(30, TimeUnit.MINUTES).build();
@Autowired @Autowired
private IcHouseService icHouseService; private IcHouseService icHouseService;
@ -131,28 +131,29 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void addHouse(String customerId, IcHouseAddFormDTO formDTO) { public void addHouse(String customerId, IcHouseAddFormDTO formDTO) {
//同一楼栋,单元内,房屋名称唯一 //同一楼栋,单元内,房屋名称唯一
Integer count = icHouseDao.checkDoorNameUq(formDTO.getNeighborHoodId(), formDTO.getBuildingId(), formDTO.getBuildingUnitId(), formDTO.getDoorName(),null); Integer count = icHouseDao.checkDoorNameUq(formDTO.getNeighborHoodId(), formDTO.getBuildingId(), formDTO.getBuildingUnitId(), formDTO.getDoorName(), null);
if (null != count && count > 0) { if (null != count && count > 0) {
throw new RenException(EpmetErrorCode.DOOR_NAME_EXITED.getCode(), EpmetErrorCode.DOOR_NAME_EXITED.getMsg()); throw new RenException(EpmetErrorCode.DOOR_NAME_EXITED.getCode(), EpmetErrorCode.DOOR_NAME_EXITED.getMsg());
} }
IcHouseDTO icHouseDTO= ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class); IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class);
icHouseDTO.setCustomerId(customerId); icHouseDTO.setCustomerId(customerId);
icHouseDTO.setHouseName(getHouseName(formDTO)); icHouseDTO.setHouseName(getHouseName(formDTO));
icHouseService.save(icHouseDTO); icHouseService.save(icHouseDTO);
} }
private String getHouseName(IcHouseAddFormDTO formDTO){ private String getHouseName(IcHouseAddFormDTO formDTO) {
//设置房间名 楼栋-单元号-门牌号 //设置房间名 楼栋-单元号-门牌号
IcBuildingDTO icBuilding = icBuildingService.get(formDTO.getBuildingId()); IcBuildingDTO icBuilding = icBuildingService.get(formDTO.getBuildingId());
IcBuildingUnitDTO icBuildingUnit = icBuildingUnitService.get(formDTO.getBuildingUnitId()); IcBuildingUnitDTO icBuildingUnit = icBuildingUnitService.get(formDTO.getBuildingUnitId());
String doorName = formDTO.getDoorName(); String doorName = formDTO.getDoorName();
String buildingName = Optional.ofNullable(icBuilding).map(u->u.getBuildingName()).orElse(""); String buildingName = Optional.ofNullable(icBuilding).map(u -> u.getBuildingName()).orElse("");
String unitName = Optional.ofNullable(icBuildingUnit).map(u->u.getUnitNum()).orElse(""); String unitName = Optional.ofNullable(icBuildingUnit).map(u -> u.getUnitNum()).orElse("");
return new StringBuilder().append(buildingName).append("-").append(unitName).append("-").append(doorName).toString(); return new StringBuilder().append(buildingName).append("-").append(unitName).append("-").append(doorName).toString();
} }
/** /**
* 更新 * 更新
*
* @param customerId * @param customerId
* @param formDTO * @param formDTO
*/ */
@ -160,7 +161,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateHouse(String customerId, IcHouseAddFormDTO formDTO) { public void updateHouse(String customerId, IcHouseAddFormDTO formDTO) {
//同一楼栋,单元内,房屋名称唯一 //同一楼栋,单元内,房屋名称唯一
Integer count = icHouseDao.checkDoorNameUq(formDTO.getNeighborHoodId(), formDTO.getBuildingId(), formDTO.getBuildingUnitId(),formDTO.getDoorName(), formDTO.getHouseId()); Integer count = icHouseDao.checkDoorNameUq(formDTO.getNeighborHoodId(), formDTO.getBuildingId(), formDTO.getBuildingUnitId(), formDTO.getDoorName(), formDTO.getHouseId());
if (null != count && count > 0) { if (null != count && count > 0) {
throw new RenException(EpmetErrorCode.DOOR_NAME_EXITED.getCode(), EpmetErrorCode.DOOR_NAME_EXITED.getMsg()); throw new RenException(EpmetErrorCode.DOOR_NAME_EXITED.getCode(), EpmetErrorCode.DOOR_NAME_EXITED.getMsg());
} }
@ -176,11 +177,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
houseChangeRecord(formDTO.getHouseId(), customerId, icHouseDTO); houseChangeRecord(formDTO.getHouseId(), customerId, icHouseDTO);
icHouseService.update(icHouseDTO); icHouseService.update(icHouseDTO);
//删除房屋缓存 //删除房屋缓存
icHouseRedis.delHouseInfo(formDTO.getHouseId(),customerId); icHouseRedis.delHouseInfo(formDTO.getHouseId(), customerId);
} }
/** /**
* Desc: 房屋变更记录 * Desc: 房屋变更记录
*
* @param houseId * @param houseId
* @param customerId * @param customerId
* @param houseDTO * @param houseDTO
@ -189,18 +191,18 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void houseChangeRecord(String houseId, String customerId, IcHouseDTO houseDTO){ public void houseChangeRecord(String houseId, String customerId, IcHouseDTO houseDTO) {
IcHouseEntity entity = icHouseService.selectById(houseId); IcHouseEntity entity = icHouseService.selectById(houseId);
entity.setOwnerName(null == entity.getOwnerName() ? "" : entity.getOwnerName()); entity.setOwnerName(null == entity.getOwnerName() ? "" : entity.getOwnerName());
entity.setOwnerPhone(null == entity.getOwnerPhone() ? "" : entity.getOwnerPhone()); entity.setOwnerPhone(null == entity.getOwnerPhone() ? "" : entity.getOwnerPhone());
entity.setOwnerIdCard(null == entity.getOwnerIdCard() ? "" : entity.getOwnerIdCard()); entity.setOwnerIdCard(null == entity.getOwnerIdCard() ? "" : entity.getOwnerIdCard());
if (null == entity){ if (null == entity) {
throw new EpmetException("不存在此房屋..."); throw new EpmetException("不存在此房屋...");
} }
StringBuilder sbBefore = new StringBuilder(); StringBuilder sbBefore = new StringBuilder();
StringBuilder sbAfter = new StringBuilder(); StringBuilder sbAfter = new StringBuilder();
List<IcHouseChangeDetailEntity> entityList = new ArrayList<>(); List<IcHouseChangeDetailEntity> entityList = new ArrayList<>();
if (!houseDTO.getHouseType().equals(entity.getHouseType())){ if (!houseDTO.getHouseType().equals(entity.getHouseType())) {
sbAfter.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(null == houseDTO.getHouseTypeName() ? HouseTypeEnums.getTypeValue(houseDTO.getHouseType()) : houseDTO.getHouseTypeName()).append(";"); sbAfter.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(null == houseDTO.getHouseTypeName() ? HouseTypeEnums.getTypeValue(houseDTO.getHouseType()) : houseDTO.getHouseTypeName()).append(";");
sbBefore.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(HouseTypeEnums.getTypeValue(entity.getHouseType())).append(";"); sbBefore.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(HouseTypeEnums.getTypeValue(entity.getHouseType())).append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -209,7 +211,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeAfter(null == houseDTO.getHouseTypeName() ? HouseTypeEnums.getTypeValue(houseDTO.getHouseType()) : houseDTO.getHouseTypeName()); e.setChangeAfter(null == houseDTO.getHouseTypeName() ? HouseTypeEnums.getTypeValue(houseDTO.getHouseType()) : houseDTO.getHouseTypeName());
entityList.add(e); entityList.add(e);
} }
if (!houseDTO.getPurpose().equals(entity.getPurpose())){ if (!houseDTO.getPurpose().equals(entity.getPurpose())) {
sbAfter.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(null == houseDTO.getPurposeName() ? HousePurposeEnums.getTypeValue(houseDTO.getPurpose()) : houseDTO.getPurposeName()).append(";"); sbAfter.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(null == houseDTO.getPurposeName() ? HousePurposeEnums.getTypeValue(houseDTO.getPurpose()) : houseDTO.getPurposeName()).append(";");
sbBefore.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(HousePurposeEnums.getTypeValue(entity.getPurpose())).append(";"); sbBefore.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(HousePurposeEnums.getTypeValue(entity.getPurpose())).append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -218,7 +220,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(HousePurposeEnums.getTypeValue(entity.getPurpose())); e.setChangeBefore(HousePurposeEnums.getTypeValue(entity.getPurpose()));
entityList.add(e); entityList.add(e);
} }
if (!houseDTO.getRentFlag().equals(entity.getRentFlag())){ if (!houseDTO.getRentFlag().equals(entity.getRentFlag())) {
sbAfter.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(null == houseDTO.getRentName() ? HouseRentFlagEnums.getTypeValue(houseDTO.getRentFlag()) : houseDTO.getRentName()).append(";"); sbAfter.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(null == houseDTO.getRentName() ? HouseRentFlagEnums.getTypeValue(houseDTO.getRentFlag()) : houseDTO.getRentName()).append(";");
sbBefore.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())).append(";"); sbBefore.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())).append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -227,7 +229,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())); e.setChangeBefore(HouseRentFlagEnums.getTypeValue(entity.getRentFlag()));
entityList.add(e); entityList.add(e);
} }
if (null != houseDTO.getOwnerName() && !houseDTO.getOwnerName().equals(entity.getOwnerName())){ if (null != houseDTO.getOwnerName() && !houseDTO.getOwnerName().equals(entity.getOwnerName())) {
sbAfter.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerName()) ? houseDTO.getOwnerName() : "无").append(";"); sbAfter.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerName()) ? houseDTO.getOwnerName() : "无").append(";");
sbBefore.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无").append(";"); sbBefore.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无").append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -236,7 +238,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无"); e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无");
entityList.add(e); entityList.add(e);
} }
if (null != houseDTO.getOwnerPhone() && !houseDTO.getOwnerPhone().equals(entity.getOwnerPhone())){ if (null != houseDTO.getOwnerPhone() && !houseDTO.getOwnerPhone().equals(entity.getOwnerPhone())) {
sbAfter.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerPhone()) ? houseDTO.getOwnerPhone() : "无").append(";"); sbAfter.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerPhone()) ? houseDTO.getOwnerPhone() : "无").append(";");
sbBefore.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerPhone()) ? entity.getOwnerPhone() : "无").append(";"); sbBefore.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerPhone()) ? entity.getOwnerPhone() : "无").append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -245,7 +247,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerPhone()) ? entity.getOwnerPhone() : "无"); e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerPhone()) ? entity.getOwnerPhone() : "无");
entityList.add(e); entityList.add(e);
} }
if (null != houseDTO.getOwnerIdCard() && !houseDTO.getOwnerIdCard().equals(entity.getOwnerIdCard())){ if (null != houseDTO.getOwnerIdCard() && !houseDTO.getOwnerIdCard().equals(entity.getOwnerIdCard())) {
sbAfter.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerIdCard()) ? houseDTO.getOwnerIdCard() : "无").append(";"); sbAfter.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerIdCard()) ? houseDTO.getOwnerIdCard() : "无").append(";");
sbBefore.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无").append(";"); sbBefore.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无").append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
@ -254,7 +256,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无"); e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无");
entityList.add(e); entityList.add(e);
} }
if (StringUtils.isNotBlank(sbAfter)){ if (StringUtils.isNotBlank(sbAfter)) {
String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE); String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE);
String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE); String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE);
HouseAgencyInfoResultDTO houseAgencyInfo = icHouseDao.getHouseAgencyInfo(houseId); HouseAgencyInfoResultDTO houseAgencyInfo = icHouseDao.getHouseAgencyInfo(houseId);
@ -280,15 +282,16 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
/** /**
* 删除 * 删除
*
* @param houseId * @param houseId
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delHouse(String houseId) { public void delHouse(String houseId) {
//单个删除房屋,房屋内有居民不允许删除 //单个删除房屋,房屋内有居民不允许删除
NeighborHoodManageDelFormDTO formDTO=new NeighborHoodManageDelFormDTO(); NeighborHoodManageDelFormDTO formDTO = new NeighborHoodManageDelFormDTO();
formDTO.setType(CustomerGridConstant.HOUSE); formDTO.setType(CustomerGridConstant.HOUSE);
List<String> ids=new ArrayList<>(); List<String> ids = new ArrayList<>();
ids.add(houseId); ids.add(houseId);
formDTO.setIds(ids); formDTO.setIds(ids);
allDelete(formDTO); allDelete(formDTO);
@ -302,24 +305,25 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
if (StringUtils.isNotBlank(formDTO.getAgencyId())) { if (StringUtils.isNotBlank(formDTO.getAgencyId())) {
pids = getPids(formDTO.getAgencyId()); pids = getPids(formDTO.getAgencyId());
} }
if (StringUtils.isNotBlank(formDTO.getLevel()) && OrgTypeEnum.AGENCY.getCode().equals(formDTO.getLevel())){ if (StringUtils.isNotBlank(formDTO.getLevel()) && OrgTypeEnum.AGENCY.getCode().equals(formDTO.getLevel())) {
pids = getPids(formDTO.getAgencyId()); pids = getPids(formDTO.getAgencyId());
} }
formDTO.setPids(pids); formDTO.setPids(pids);
PageInfo<IcHouseListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage()) PageInfo<IcHouseListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage())
.doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO)); .doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO));
List<IcHouseListResultDTO> records = pageInfo.getList(); List<IcHouseListResultDTO> records = pageInfo.getList();
records.forEach(item->{ records.forEach(item -> {
item.setHouseType(HouseTypeEnums.getTypeValue(item.getHouseTypeKey())); item.setHouseType(HouseTypeEnums.getTypeValue(item.getHouseTypeKey()));
item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey())); item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey()));
}); });
return new PageData<>(records == null? new ArrayList<>():records,pageInfo.getTotal()); return new PageData<>(records == null ? new ArrayList<>() : records, pageInfo.getTotal());
} }
public String getPids(String agencyId){
public String getPids(String agencyId) {
String pids = null; String pids = null;
CustomerAgencyDTO agency = agencyservice.getAgencyById(agencyId); CustomerAgencyDTO agency = agencyservice.getAgencyById(agencyId);
@ -340,33 +344,33 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
public void exportBuildinginfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception { public void exportBuildinginfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception {
//如果类型是house 查房屋 //如果类型是house 查房屋
//导出房屋 //导出房屋
PageData<IcHouseListResultDTO> icHouseExcels = new PageData<>(new ArrayList<>(),NumConstant.ZERO); PageData<IcHouseListResultDTO> icHouseExcels = new PageData<>(new ArrayList<>(), NumConstant.ZERO);
List<IcHouseListResultDTO> list = new ArrayList<>(); List<IcHouseListResultDTO> list = new ArrayList<>();
Integer pageNo = NumConstant.ONE; Integer pageNo = NumConstant.ONE;
do { do {
formDTO.setPageNo(pageNo); formDTO.setPageNo(pageNo);
icHouseExcels = getHouseList(formDTO); icHouseExcels = getHouseList(formDTO);
if (CollectionUtils.isEmpty(icHouseExcels.getList())){ if (CollectionUtils.isEmpty(icHouseExcels.getList())) {
break; break;
} }
list.addAll(icHouseExcels.getList()); list.addAll(icHouseExcels.getList());
pageNo++; pageNo++;
}while (icHouseExcels.getList().size() == formDTO.getPageSize()); } while (icHouseExcels.getList().size() == formDTO.getPageSize());
TemplateExportParams templatePath = new TemplateExportParams("excel/house_export.xlsx"); TemplateExportParams templatePath = new TemplateExportParams("excel/house_export.xlsx");
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("maplist", list); map.put("maplist", list);
ExcelPoiUtils.exportExcel(templatePath ,map,"房屋信息录入表",response); ExcelPoiUtils.exportExcel(templatePath, map, "房屋信息录入表", response);
} }
@Override @Override
public List<HouseInfoDTO> queryListHouseInfo(Set<String> houseIdList, String customerId) { public List<HouseInfoDTO> queryListHouseInfo(Set<String> houseIdList, String customerId) {
if(org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)){ if (org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)) {
return new ArrayList<>(); return new ArrayList<>();
} }
List<HouseInfoDTO> result = new ArrayList<>(); List<HouseInfoDTO> result = new ArrayList<>();
houseIdList.forEach(h -> { houseIdList.forEach(h -> {
HouseInfoDTO houseInfo = icHouseRedis.getHouseInfo(h, customerId); HouseInfoDTO houseInfo = icHouseRedis.getHouseInfo(h, customerId);
if (null != houseInfo){ if (null != houseInfo) {
result.add(houseInfo); result.add(houseInfo);
} }
}); });
@ -381,11 +385,11 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
excelReader = EasyExcel.read(inputStream).build(); excelReader = EasyExcel.read(inputStream).build();
// 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class) ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class)
.registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis,neighborHoodService,icHouseService,epmetCommonServiceOpenFeignClient,importTask.getData().getTaskId(),houseService)) .registerReadListener(new ImportHouseInfoListener(formDTO, icBuildingDao, icHouseRedis, neighborHoodService, icHouseService, epmetCommonServiceOpenFeignClient, importTask.getData().getTaskId(), houseService))
.build(); .build();
excelReader.read(readSheet); excelReader.read(readSheet);
} catch (Exception e){ } catch (Exception e) {
log.error("dispose exception",e); log.error("dispose exception", e);
ImportTaskCommonFormDTO input = new ImportTaskCommonFormDTO(); ImportTaskCommonFormDTO input = new ImportTaskCommonFormDTO();
input.setOperatorId(formDTO.getUserId()); input.setOperatorId(formDTO.getUserId());
input.setTaskId(importTask.getData().getTaskId()); input.setTaskId(importTask.getData().getTaskId());
@ -402,79 +406,80 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
/** /**
* Desc 小区管理中批量删除 * Desc 小区管理中批量删除
*
* @param formDTO * @param formDTO
* @author zxc * @author zxc
* @date 2022/3/1 4:57 下午 * @date 2022/3/1 4:57 下午
*/ */
@Override @Override
public void allDelete(NeighborHoodManageDelFormDTO formDTO) { public void allDelete(NeighborHoodManageDelFormDTO formDTO) {
if (CollectionUtils.isEmpty(formDTO.getIds())){ if (CollectionUtils.isEmpty(formDTO.getIds())) {
return; return;
} }
List<String> ids = formDTO.getIds(); List<String> ids = formDTO.getIds();
if (formDTO.getType().equals(CustomerGridConstant.NEIGHBORHOOD)){ if (formDTO.getType().equals(CustomerGridConstant.NEIGHBORHOOD)) {
List<NeighborHoodManageDelResultDTO> exists = icHouseDao.selectExistBuildingByNeighborHoodIds(ids); List<NeighborHoodManageDelResultDTO> exists = icHouseDao.selectExistBuildingByNeighborHoodIds(ids);
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
exists.forEach(e -> { exists.forEach(e -> {
for (int i = NumConstant.ZERO; i < ids.size(); i++) { for (int i = NumConstant.ZERO; i < ids.size(); i++) {
if (ids.get(i).equals(e.getNeighborHoodId())){ if (ids.get(i).equals(e.getNeighborHoodId())) {
ids.remove(i); ids.remove(i);
continue; continue;
} }
} }
}); });
} }
if (!CollectionUtils.isEmpty(ids)){ if (!CollectionUtils.isEmpty(ids)) {
icNeighborHoodDao.deleteBatchIds(ids); icNeighborHoodDao.deleteBatchIds(ids);
} }
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
String collect = exists.stream().map(m -> m.getName()).collect(Collectors.joining(",")); String collect = exists.stream().map(m -> m.getName()).collect(Collectors.joining(","));
EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含楼栋信息,暂无法删除",collect)); EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含楼栋信息,暂无法删除", collect));
throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode()); throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode());
} }
}else if (formDTO.getType().equals(CustomerGridConstant.BUILDING)){ } else if (formDTO.getType().equals(CustomerGridConstant.BUILDING)) {
List<NeighborHoodManageDelResultDTO> exists = icHouseDao.selectExistHouseByBuildingIds(ids); List<NeighborHoodManageDelResultDTO> exists = icHouseDao.selectExistHouseByBuildingIds(ids);
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
exists.forEach(e -> { exists.forEach(e -> {
for (int i = NumConstant.ZERO; i < ids.size(); i++) { for (int i = NumConstant.ZERO; i < ids.size(); i++) {
if (ids.get(i).equals(e.getBuildingId())){ if (ids.get(i).equals(e.getBuildingId())) {
ids.remove(i); ids.remove(i);
continue; continue;
} }
} }
}); });
} }
if (!CollectionUtils.isEmpty(ids)){ if (!CollectionUtils.isEmpty(ids)) {
icBuildingDao.deleteBatchIds(ids); icBuildingDao.deleteBatchIds(ids);
} }
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
String collect = exists.stream().map(m -> m.getName()).collect(Collectors.joining(",")); String collect = exists.stream().map(m -> m.getName()).collect(Collectors.joining(","));
EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含房屋信息,暂无法删除",collect)); EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含房屋信息,暂无法删除", collect));
throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode()); throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode());
} }
}else if (formDTO.getType().equals(CustomerGridConstant.HOUSE)){ } else if (formDTO.getType().equals(CustomerGridConstant.HOUSE)) {
Result<List<String>> existUsers = epmetUserOpenFeignClient.getExistUserByHouseIds(ids); Result<List<String>> existUsers = epmetUserOpenFeignClient.getExistUserByHouseIds(ids);
if (!existUsers.success()){ if (!existUsers.success()) {
throw new EpmetException("根据房屋IDs查询房屋下是否有存在居民失败..."); throw new EpmetException("根据房屋IDs查询房屋下是否有存在居民失败...");
} }
List<String> exists = existUsers.getData(); List<String> exists = existUsers.getData();
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
exists.forEach(e -> { exists.forEach(e -> {
for (int i = NumConstant.ZERO; i < ids.size(); i++) { for (int i = NumConstant.ZERO; i < ids.size(); i++) {
if (ids.get(i).equals(e)){ if (ids.get(i).equals(e)) {
ids.remove(i); ids.remove(i);
continue; continue;
} }
} }
}); });
} }
if (!CollectionUtils.isEmpty(ids)){ if (!CollectionUtils.isEmpty(ids)) {
icHouseDao.deleteBatchIds(ids); icHouseDao.deleteBatchIds(ids);
} }
if (!CollectionUtils.isEmpty(exists)){ if (!CollectionUtils.isEmpty(exists)) {
List<String> list = icHouseDao.selectHouseNames(exists); List<String> list = icHouseDao.selectHouseNames(exists);
String collect = list.stream().collect(Collectors.joining(",")); String collect = list.stream().collect(Collectors.joining(","));
EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含居民信息,暂无法删除",collect)); EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.setMsg(String.format("%s内包含居民信息,暂无法删除", collect));
throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode()); throw new EpmetException(EpmetErrorCode.NEIGHBORHOOD_DEL_FAILED.getCode());
} }
} }
@ -485,8 +490,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
HouseInfoDTO houseInfo = icHouseRedis.getHouseInfo(houseId, customerId); HouseInfoDTO houseInfo = icHouseRedis.getHouseInfo(houseId, customerId);
if (null != houseInfo && StringUtils.isNotBlank(houseInfo.getAgencyId())) { if (null != houseInfo && StringUtils.isNotBlank(houseInfo.getAgencyId())) {
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(houseInfo.getAgencyId()); AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(houseInfo.getAgencyId());
houseInfo.setAgencyPathName(StringUtils.isNotBlank(agencyInfoCache.getAllParentName())?agencyInfoCache.getAllParentName().concat(StrConstant.HYPHEN).concat(agencyInfoCache.getOrganizationName()):agencyInfoCache.getOrganizationName()); houseInfo.setAgencyPathName(StringUtils.isNotBlank(agencyInfoCache.getAllParentName()) ? agencyInfoCache.getAllParentName().concat(StrConstant.HYPHEN).concat(agencyInfoCache.getOrganizationName()) : agencyInfoCache.getOrganizationName());
houseInfo.setAreaCode(StringUtils.isNotBlank(agencyInfoCache.getAreaCode())?agencyInfoCache.getAreaCode():StrConstant.EPMETY_STR); houseInfo.setAreaCode(StringUtils.isNotBlank(agencyInfoCache.getAreaCode()) ? agencyInfoCache.getAreaCode() : StrConstant.EPMETY_STR);
} else { } else {
houseInfo.setAgencyPathName(StrConstant.EPMETY_STR); houseInfo.setAgencyPathName(StrConstant.EPMETY_STR);
houseInfo.setAreaCode(StrConstant.EPMETY_STR); houseInfo.setAreaCode(StrConstant.EPMETY_STR);
@ -596,6 +601,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
/** /**
* Desc: 根据类型更新排序 * Desc: 根据类型更新排序
*
* @param formDTO * @param formDTO
* @author zxc * @author zxc
* @date 2022/5/6 08:50 * @date 2022/5/6 08:50
@ -603,10 +609,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateSort(UpdateSortFormDTO formDTO) { public void updateSort(UpdateSortFormDTO formDTO) {
if (formDTO.getType().equals(CustomerGridConstant.HOUSE)){ if (formDTO.getType().equals(CustomerGridConstant.HOUSE)) {
IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class); IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class);
icHouseService.update(icHouseDTO); icHouseService.update(icHouseDTO);
}else if(formDTO.getType().equals(CustomerGridConstant.BUILDING)){ } else if (formDTO.getType().equals(CustomerGridConstant.BUILDING)) {
IcBuildingDTO icBuildingDTO = ConvertUtils.sourceToTarget(formDTO, IcBuildingDTO.class); IcBuildingDTO icBuildingDTO = ConvertUtils.sourceToTarget(formDTO, IcBuildingDTO.class);
icBuildingService.update(icBuildingDTO); icBuildingService.update(icBuildingDTO);
} }
@ -625,53 +631,53 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
int searchLevel = 0; int searchLevel = 0;
//如果小区id不为空 则直接查询小区内的居民 //如果小区id不为空 则直接查询小区内的居民
if (StringUtils.isNotEmpty(formDTO.getNeighborHoodId())){ if (StringUtils.isNotEmpty(formDTO.getNeighborHoodId())) {
searchLevel = 1; searchLevel = 1;
} }
//如果楼宇id不为空 则直接查询楼宇内的居民 //如果楼宇id不为空 则直接查询楼宇内的居民
if (StringUtils.isNotEmpty(formDTO.getBuildingId())){ if (StringUtils.isNotEmpty(formDTO.getBuildingId())) {
searchLevel = 2; searchLevel = 2;
} }
//如果有具体的查询套件 则直接按照房屋Id 来查 //如果有具体的查询套件 则直接按照房屋Id 来查
if (StringUtils.isNotEmpty(formDTO.getOwnerName()) || StringUtils.isNotEmpty(formDTO.getOwnerPhone()) || StringUtils.isNotEmpty(formDTO.getRentFlag())){ if (StringUtils.isNotEmpty(formDTO.getOwnerName()) || StringUtils.isNotEmpty(formDTO.getOwnerPhone()) || StringUtils.isNotEmpty(formDTO.getRentFlag())) {
searchLevel = 3; searchLevel = 3;
} }
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
PageData<IcHouseListResultDTO> houseData = this.getHouseList(formDTO); PageData<IcHouseListResultDTO> houseData = this.getHouseList(formDTO);
log.info("getHouseUser getHoseList cost:{}ms",System.currentTimeMillis() - start); log.info("getHouseUser getHoseList cost:{}ms", System.currentTimeMillis() - start);
List<HouseMemberResultDTO> resultList = new ArrayList<>(); List<HouseMemberResultDTO> resultList = new ArrayList<>();
PageData<HouseMemberResultDTO> result = new PageData<>(resultList,houseData.getList().size()); PageData<HouseMemberResultDTO> result = new PageData<>(resultList, houseData.getList().size());
int finalSearchLevel = searchLevel; int finalSearchLevel = searchLevel;
AtomicInteger num = new AtomicInteger((formDTO.getPageNo()-1) * formDTO.getPageSize()); AtomicInteger num = new AtomicInteger((formDTO.getPageNo() - 1) * formDTO.getPageSize());
houseData.getList().forEach(o ->{ houseData.getList().forEach(o -> {
resiParam.setAgencyId(o.getAgencyId()); resiParam.setAgencyId(o.getAgencyId());
if (finalSearchLevel == 1){ if (finalSearchLevel == 1) {
resiParam.setNeighborHoodId(o.getNeighborHoodId()); resiParam.setNeighborHoodId(o.getNeighborHoodId());
} }
if (finalSearchLevel == 2){ if (finalSearchLevel == 2) {
resiParam.setBuildingId(o.getBuildingId()); resiParam.setBuildingId(o.getBuildingId());
} }
if (finalSearchLevel == 3){ if (finalSearchLevel == 3) {
resiParam.setHouseId(o.getHouseId()); resiParam.setHouseId(o.getHouseId());
} }
this.getHouseMembers(resiParam, memberCacheMap,haveSearchCache); this.getHouseMembers(resiParam, memberCacheMap, haveSearchCache);
List<HouseIcResiUserResultDTO.HouseMemberResultDTO> members = memberCacheMap.getIfPresent(o.getHouseId()); List<HouseIcResiUserResultDTO.HouseMemberResultDTO> members = memberCacheMap.getIfPresent(o.getHouseId());
//序号 一个houseId为一个序号 //序号 一个houseId为一个序号
int n = num.incrementAndGet(); int n = num.incrementAndGet();
//没有住户 则直接写房屋 //没有住户 则直接写房屋
if (CollectionUtils.isEmpty(members)){ if (CollectionUtils.isEmpty(members)) {
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(o, HouseMemberResultDTO.class); HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(o, HouseMemberResultDTO.class);
resultDTO.setNum(n); resultDTO.setNum(n);
resultList.add(resultDTO); resultList.add(resultDTO);
return; return;
} }
//有住户 房屋信息是重复的 //有住户 房屋信息是重复的
members.forEach(m->{ members.forEach(m -> {
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class); HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class);
resultDTO.setNum(n); resultDTO.setNum(n);
resultDTO.setAgencyName(o.getAgencyName()); resultDTO.setAgencyName(o.getAgencyName());
@ -694,37 +700,38 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
/** /**
* desc:分情况获取 房屋内居民 * desc:分情况获取 房屋内居民
*
* @param resiParam * @param resiParam
* @param memberMap * @param memberMap
* @param haveSearchCache * @param haveSearchCache
*/ */
public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache<String, List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap, Cache<String, Boolean> haveSearchCache) { public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache<String, List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap, Cache<String, Boolean> haveSearchCache) {
String searchKey = resiParam.getHouseId()+resiParam.getBuildingId()+resiParam.getNeighborHoodId()+resiParam.getGridId()+resiParam.getAgencyId(); String searchKey = resiParam.getHouseId() + resiParam.getBuildingId() + resiParam.getNeighborHoodId() + resiParam.getGridId() + resiParam.getAgencyId();
Boolean haveSearch = haveSearchCache.getIfPresent(searchKey); Boolean haveSearch = haveSearchCache.getIfPresent(searchKey);
//log.info("getHouseUser getHouseMembers searchKey:"+searchKey); //log.info("getHouseUser getHouseMembers searchKey:"+searchKey);
if (haveSearch!= null && haveSearch){ if (haveSearch != null && haveSearch) {
return; return;
} }
long startT = System.currentTimeMillis(); long startT = System.currentTimeMillis();
haveSearchCache.put(searchKey,true); haveSearchCache.put(searchKey, true);
List<HouseIcResiUserResultDTO> memberListTemp = null; List<HouseIcResiUserResultDTO> memberListTemp = null;
resiParam.setPageNo(NumConstant.ONE); resiParam.setPageNo(NumConstant.ONE);
do { do {
Result<List<HouseIcResiUserResultDTO>> memberResult = epmetUserOpenFeignClient.getHouseMemberList(resiParam); Result<List<HouseIcResiUserResultDTO>> memberResult = epmetUserOpenFeignClient.getHouseMemberList(resiParam);
log.debug("=======查询居民:"+ resiParam.getPageNo()+",size:"+resiParam.getPageSize()+",result:"+memberResult.getData().size()); log.debug("=======查询居民:" + resiParam.getPageNo() + ",size:" + resiParam.getPageSize() + ",result:" + memberResult.getData().size());
if (!memberResult.success()) { if (!memberResult.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用user服务失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用user服务失败");
} }
memberListTemp = memberResult.getData(); memberListTemp = memberResult.getData();
log.debug("=======查询居民结果:"+ JSON.toJSONString(memberListTemp)); log.debug("=======查询居民结果:" + JSON.toJSONString(memberListTemp));
if (CollectionUtils.isEmpty(memberListTemp)) { if (CollectionUtils.isEmpty(memberListTemp)) {
break; break;
} }
resiParam.setPageNo(resiParam.getPageNo()+1); resiParam.setPageNo(resiParam.getPageNo() + 1);
memberListTemp.forEach(h -> memberMap.put(h.getHomeId(), h.getHouseMemberList())); memberListTemp.forEach(h -> memberMap.put(h.getHomeId(), h.getHouseMemberList()));
} while (memberListTemp.size() == resiParam.getPageSize()); } while (memberListTemp.size() == resiParam.getPageSize());
log.info("getHouseUser getHouseMembers cost:{}ms,param:{}",System.currentTimeMillis() - startT,JSON.toJSONString(resiParam)); log.info("getHouseUser getHouseMembers cost:{}ms,param:{}", System.currentTimeMillis() - startT, JSON.toJSONString(resiParam));
} }
/** /**
@ -783,13 +790,13 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
@Override @Override
public void downloadZip(HttpServletResponse response,IcHouseListFormDTO formDTO) throws Exception { public void downloadZip(HttpServletResponse response, IcHouseListFormDTO formDTO) throws Exception {
// 查询pids // 查询pids
String pids = null; String pids = null;
if (StringUtils.isNotBlank(formDTO.getAgencyId())) { if (StringUtils.isNotBlank(formDTO.getAgencyId())) {
pids = getPids(formDTO.getAgencyId()); pids = getPids(formDTO.getAgencyId());
} }
if (StringUtils.isNotBlank(formDTO.getLevel()) && OrgTypeEnum.AGENCY.getCode().equals(formDTO.getLevel())){ if (StringUtils.isNotBlank(formDTO.getLevel()) && OrgTypeEnum.AGENCY.getCode().equals(formDTO.getLevel())) {
pids = getPids(formDTO.getAgencyId()); pids = getPids(formDTO.getAgencyId());
} }
formDTO.setPids(pids); formDTO.setPids(pids);
@ -808,10 +815,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
List<IcHouseListResultDTO> houseList = icHouseDao.searchHouseByPage(formDTO); List<IcHouseListResultDTO> houseList = icHouseDao.searchHouseByPage(formDTO);
for(IcHouseListResultDTO house : houseList){ for (IcHouseListResultDTO house : houseList) {
BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() +house.getUnitNum()+ house.getDoorName(), BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName(),
HouseQrcodeEnum.PREFIX.getCode()+"?houseCode="+house.getHouseCode()); HouseQrcodeEnum.PREFIX.getCode() + "?houseCode=" + house.getHouseCode() + "&customerId=" + house.getCustomerId() + "&gridId=" + house.getGridId());
try { try {
byte[] buf = new byte[8192]; byte[] buf = new byte[8192];
@ -825,7 +832,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
} }
inputStream.close(); inputStream.close();
} catch (IOException e) { } catch (IOException e) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组装zip信息有误","组装zip信息有误"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组装zip信息有误", "组装zip信息有误");
} }
} }
zip.close(); zip.close();
@ -850,12 +857,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
* 获取文件名 * 获取文件名
*/ */
public static String getFileName(IcHouseListResultDTO house) { public static String getFileName(IcHouseListResultDTO house) {
return house.getNeighborHoodName() + File.separator +house.getBuildingName() + File.separator +house.getUnitNum() + File.separator + house.getDoorName() + HouseQrcodeEnum.SUFFIX.getCode(); return house.getNeighborHoodName() + File.separator + house.getBuildingName() + File.separator + house.getUnitNum() + File.separator + house.getDoorName() + HouseQrcodeEnum.SUFFIX.getCode();
} }
@Override @Override
public String createHouseCode(String customerId, String buildingId, String areaCode) { public String createHouseCode(String customerId, String buildingId, String areaCode) {
if(StringUtils.isBlank(customerId) || StringUtils.isBlank(buildingId) ||StringUtils.isBlank(areaCode)){ if (StringUtils.isBlank(customerId) || StringUtils.isBlank(buildingId) || StringUtils.isBlank(areaCode)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所有字段不可为空", "所有字段不可为空"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所有字段不可为空", "所有字段不可为空");
} }
String result = ""; String result = "";
@ -899,8 +906,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息");
} }
//url组成:小程序地址?房屋编码 //url组成:小程序地址?房屋编码
String url = HouseQrcodeEnum.PREFIX.getCode() + "?houseCode=" + house.getHouseCode(); String url = HouseQrcodeEnum.PREFIX.getCode() + "?houseCode=" + house.getHouseCode() + "&customerId=" + house.getCustomerId() + "&gridId=" + house.getGridId();
String fileName = house.getNeighborHoodName() + house.getBuildingName() +house.getUnitNum()+ house.getDoorName()+".png"; String fileName = house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName() + ".png";
BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName(), url); BufferedImage image = BarcodeUtils.drawQRImage(house.getNeighborHoodName() + house.getBuildingName() + house.getUnitNum() + house.getDoorName(), url);
@ -938,7 +945,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
@Override @Override
public Result<IcHouseInfoResultDTO> getHouseInfoByCode(IcHouseInfoFormDTO formDTO) { public Result<IcHouseInfoResultDTO> getHouseInfoByCode(IcHouseInfoFormDTO formDTO) {
IcHouseEntity house = icHouseDao.selectByHouseCode(formDTO.getHouseCode()); IcHouseEntity house = icHouseDao.selectByHouseCode(formDTO.getHouseCode());
HouseInfoCache cache = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(),house.getId()); HouseInfoCache cache = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), house.getId());
IcHouseInfoResultDTO resut = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class); IcHouseInfoResultDTO resut = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class);
resut.setHouseId(cache.getHomeId()); resut.setHouseId(cache.getHomeId());
return new Result<IcHouseInfoResultDTO>().ok(resut); return new Result<IcHouseInfoResultDTO>().ok(resut);

6
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -113,7 +113,8 @@
ag.ORGANIZATION_NAME agencyName, ag.ORGANIZATION_NAME agencyName,
c.GRID_ID as gridId, c.GRID_ID as gridId,
gr.GRID_NAME, gr.GRID_NAME,
IFNULL(a.sort,0) as sort IFNULL(a.sort,0) as sort,
a.CUSTOMER_ID
from ic_house a from ic_house a
LEFT JOIN ic_building b on a.BUILDING_ID = b.ID and b.DEL_FLAG = '0' 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' LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0'
@ -387,7 +388,8 @@
CONCAT(d.UNIT_NUM,'单元') as unitNum, CONCAT(d.UNIT_NUM,'单元') as unitNum,
a.DOOR_NAME as doorName, a.DOOR_NAME as doorName,
a.HOUSE_CODE, a.HOUSE_CODE,
a.CUSTOMER_ID a.CUSTOMER_ID,
c.GRID_ID
from ic_house a from ic_house a
LEFT JOIN ic_building b on a.BUILDING_ID = b.ID and b.DEL_FLAG = '0' 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' LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0'

Loading…
Cancel
Save