diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index da97859fb9..0e556df1ea 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -569,4 +569,14 @@ public class HouseController implements ResultDataResolver { return houseService.getHomeInfoByHouseCode(dto); } + /** + * 初始化房屋的组织ID路径 + * @return + */ + @PostMapping("orgIdPathInit") + public Result orgIdPathInit() { + houseService.orgIdPathInit(); + return new Result(); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 04c0fc819c..a5c940b0c1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -173,4 +173,6 @@ public interface HouseService { * @return com.epmet.commons.tools.utils.Result */ Result getHomeInfoByHouseCode(HouseInfoFormDTO dto); + + void orgIdPathInit(); } 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 7b551f0515..f6a79dde4f 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 @@ -5,6 +5,7 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.read.metadata.ReadSheet; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -1082,5 +1083,49 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { return new Result().ok(house); } + @Override + public void orgIdPathInit() { + // 循环查询所有没有fullname字段的数据 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcHouseEntity::getId, "1508686441788137474"); + //query.isNull(IcHouseEntity::getOrgIdPath); + //query.last(" limit 1000 "); + + while (true) { + List houses2Dispose = icHouseDao.selectList(query); + + if (org.apache.commons.collections4.CollectionUtils.isEmpty(houses2Dispose)) { + break; + } + + houses2Dispose.stream().forEach(h -> { + IcNeighborHoodDTO neighborhood = neighborHoodService.get(h.getNeighborHoodId()); + ArrayList pidList = new ArrayList<>(); + recureAppendParentAgencyId(neighborhood.getAgencyId(), pidList); + String orgIdPath = String.join(":", pidList); + + // 更新 + IcHouseEntity house = new IcHouseEntity(); + house.setId(h.getId()); + house.setOrgIdPath(orgIdPath); + + icHouseDao.updateById(house); + }); + } + } + /** + * 递归拼接orgIdPath + * @param agencyId + * @param result + */ + private void recureAppendParentAgencyId(String agencyId, List result) { + result.add(0, agencyId); + CustomerAgencyEntity agency = customerAgencyDao.selectById(agencyId); + String pid = agency.getPid(); + if (StringUtils.isBlank(pid) || "0".equals(pid)) { + return; + } + recureAppendParentAgencyId(pid, result); + } }