| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springblade.common.cache.SysCache; |
| | | import org.springblade.common.param.CommonParamSet; |
| | | import org.springblade.common.utils.NodeTreeUtil; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity; |
| | |
| | | import org.springblade.modules.system.entity.Region; |
| | | import org.springblade.modules.system.service.IDeptService; |
| | | import org.springblade.modules.system.service.IRegionService; |
| | | import org.springblade.modules.task.vo.TaskVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | @Override |
| | | public IPage<GridVO> selectGridPage(IPage<GridVO> page, GridVO grid) { |
| | | Dept dept = deptService.getById(AuthUtil.getDeptId()); |
| | | if (null!=dept){ |
| | | grid.setRegionCode(dept.getRegionCode()); |
| | | } |
| | | return page.setRecords(baseMapper.selectGridPage(page, grid)); |
| | | // List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId()); |
| | | // Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2; |
| | | CommonParamSet commonParamSet = new CommonParamSet().invoke(GridVO.class, grid); |
| | | return page.setRecords(baseMapper.selectGridPage(page, grid,commonParamSet.getRegionChildCodesList(),commonParamSet.getIsAdministrator())); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public GridVO getGridDetailByHouseCode(String houseCode) { |
| | | return baseMapper.getGridDetailByHouseCode(houseCode); |
| | | public GridVO getPlaceGridDetailByHouseCode(String houseCode) { |
| | | return baseMapper.getPlaceGridDetailByHouseCode(houseCode); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<String> getAddressCodeListByUserId(Long userId) { |
| | | return baseMapper.getAddressCodeListByUserId(userId); |
| | | public List<String> getAddressCodeListByUserId(Long userId,String addressCode) { |
| | | return baseMapper.getAddressCodeListByUserId(userId,addressCode); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Object spatialAnalysis() { |
| | | public Object spatialAnalysis(DoorplateAddressEntity addressEntity) { |
| | | // 按社区 |
| | | String name = null; |
| | | // String name = "茶山路社区居民委员会"; |
| | | //查询社区信息 |
| | | List<DoorplateAddressEntity> doorplateAddressEntities = doorplateAddressService.getAllDoorplateAddress(name); |
| | | List<DoorplateAddressEntity> doorplateAddressEntities = doorplateAddressService.getAllDoorplateAddress(addressEntity); |
| | | //遍历 |
| | | for (DoorplateAddressEntity doorplateAddressEntity : doorplateAddressEntities) { |
| | | //点坐标解析 |
| | | String point = "'POINT(" + doorplateAddressEntity.getX84() + " " + doorplateAddressEntity.getY84() +")'"; |
| | | String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() +")'"; |
| | | // String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'"; |
| | | GridEntity gridEntity = baseMapper.spatialAnalysis(point); |
| | | if (null!=gridEntity){ |
| | | List<GridEntity> gridEntityList = baseMapper.spatialAnalysis(point); |
| | | if (gridEntityList.size()>0) { |
| | | GridEntity gridEntity = gridEntityList.get(0); |
| | | QueryWrapper<GridRangeEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("grid_id",gridEntity.getId()).eq("house_code",doorplateAddressEntity.getAddressCode()); |
| | | GridRangeEntity one = gridRangeService.getOne(queryWrapper); |
| | |
| | | gridRangeEntity.setDistrictName(doorplateAddressEntity.getAoiName()); |
| | | // 保存 |
| | | gridRangeService.save(gridRangeEntity); |
| | | }else { |
| | | one.setGridId(gridEntity.getId()); |
| | | // 更新 |
| | | gridRangeService.updateById(one); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 空间分析 |
| | | */ |
| | | @Override |
| | | public List<GridEntity> spatialAnalysis(String point) { |
| | | return baseMapper.spatialAnalysis(point); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean saveOrUpdateGrid(GridEntity grid) { |
| | | boolean flag = false; |
| | | // 先查询当前网格社区对应的机构id |
| | | QueryWrapper<Region> regionWrapper = new QueryWrapper<>(); |
| | | regionWrapper.eq("code",grid.getCommunityCode()); |
| | | Region region = regionService.getOne(regionWrapper); |
| | | // 查询父机构 |
| | | QueryWrapper<Dept> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("dept_name",region.getName()) |
| | | .eq("is_deleted",0); |
| | | Dept dept = deptService.getOne(wrapper); |
| | | // 查询当前网格在机构中是否存在,存在不做操作,否则则新增 |
| | | QueryWrapper<Dept> wrapperChild = new QueryWrapper<>(); |
| | | wrapperChild.eq("dept_name",grid.getGridName()) |
| | | .eq("is_deleted",0) |
| | | .eq("id",dept.getId()); |
| | | Dept deptChild = deptService.getOne(wrapperChild); |
| | | if (null==deptChild){ |
| | | Dept deptInfo = new Dept(); |
| | | deptInfo.setParentId(dept.getId()); |
| | | deptInfo.setFullName(grid.getGridName()); |
| | | deptInfo.setDeptName(grid.getGridName()); |
| | | deptInfo.setDeptCategory(1); |
| | | deptInfo.setTenantId("000000"); |
| | | // 新增 |
| | | deptService.save(deptInfo); |
| | | // 查询网格是否已存在(社区编号-网格名称),已存在更新,不存在插入新的 |
| | | QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("grid_name",grid.getGridName()) |
| | | .eq("is_deleted",0) |
| | | .eq("community_code",grid.getCommunityCode()); |
| | | GridEntity one = getOne(queryWrapper); |
| | | if (null!=one){ |
| | | grid.setId(one.getId()); |
| | | grid.setDeptId(deptInfo.getId()); |
| | | if (null!= grid.getGeom() && grid.getGeom().equals("")){ |
| | | if (null!=grid.getId()) { |
| | | // 更新 |
| | | flag = updateById(grid); |
| | | }else { |
| | | // 先查询当前网格社区对应的机构id |
| | | QueryWrapper<Region> regionWrapper = new QueryWrapper<>(); |
| | | regionWrapper.eq("code", grid.getCommunityCode()); |
| | | Region region = regionService.getOne(regionWrapper); |
| | | // 查询父机构(社区机构) |
| | | System.out.println("社区名称 = " + region.getName()); |
| | | QueryWrapper<Dept> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("dept_name", region.getName()) |
| | | .eq("dept_nature", 2) |
| | | .eq("is_deleted", 0); |
| | | Dept dept = deptService.getOne(wrapper); |
| | | // 查询当前网格在机构中是否存在,存在不做操作,否则则新增 |
| | | QueryWrapper<Dept> wrapperChild = new QueryWrapper<>(); |
| | | wrapperChild.eq("dept_name", grid.getGridName()) |
| | | .eq("is_deleted", 0) |
| | | .eq("dept_nature", 2) |
| | | .eq("parent_id", dept.getId()); |
| | | List<Dept> deptChild = deptService.list(wrapperChild); |
| | | if (deptChild.size() == 0) { |
| | | Dept deptInfo = new Dept(); |
| | | deptInfo.setParentId(dept.getId()); |
| | | deptInfo.setFullName(grid.getGridName()); |
| | | deptInfo.setDeptName(grid.getGridName()); |
| | | deptInfo.setDeptCategory(1); |
| | | // 综治 |
| | | deptInfo.setDeptNature(2); |
| | | deptInfo.setTenantId("000000"); |
| | | deptInfo.setRegionCode(grid.getGridCode()); |
| | | deptInfo.setAncestors(dept.getAncestors() + "," + dept.getId()); |
| | | // 新增 |
| | | deptService.save(deptInfo); |
| | | // 查询网格是否已存在(社区编号-网格名称),已存在更新,不存在插入新的 |
| | | QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("grid_code", grid.getGridCode()) |
| | | .eq("is_deleted", 0); |
| | | System.out.println("网格编号 = " + grid.getGridCode()); |
| | | GridEntity one = getOne(queryWrapper); |
| | | if (null != one) { |
| | | grid.setId(one.getId()); |
| | | grid.setDeptId(deptInfo.getId()); |
| | | if (null != grid.getGeom() && grid.getGeom().equals("")) { |
| | | grid.setGeom(null); |
| | | } |
| | | // 更新 |
| | | flag = updateById(grid); |
| | | } else { |
| | | grid.setDeptId(deptInfo.getId()); |
| | | grid.setGeom(null); |
| | | // 插入 |
| | | flag = save(grid); |
| | | } |
| | | // 更新 |
| | | flag = updateById(grid); |
| | | }else { |
| | | grid.setDeptId(deptInfo.getId()); |
| | | grid.setGeom(null); |
| | | // 插入 |
| | | flag = save(grid); |
| | | } |
| | | } |
| | | return flag; |
| | |
| | | public Object gridInfoByHouseCode(String houseCode) { |
| | | Map<String, Object> objectObjectHashMap = new HashMap<>(); |
| | | List<GridmanEntity> gridmanEntities = baseMapper.gridInfo(houseCode); |
| | | Integer id = gridmanEntities.get(0).getId(); |
| | | objectObjectHashMap.put("grid", gridmanEntities); |
| | | List<DoorplateAddressEntity> result = baseMapper.gridAoiName(id); |
| | | objectObjectHashMap.put("doorplateAddress", result); |
| | | if (gridmanEntities.size()>0) { |
| | | Integer id = gridmanEntities.get(0).getId(); |
| | | objectObjectHashMap.put("grid", gridmanEntities); |
| | | List<DoorplateAddressEntity> result = baseMapper.gridAoiName(id); |
| | | objectObjectHashMap.put("doorplateAddress", result); |
| | | } |
| | | return objectObjectHashMap; |
| | | } |
| | | |
| | |
| | | public List<GridVO> getGridListByAoiCode(String aoiCode) { |
| | | return baseMapper.getGridListByAoiCode(aoiCode); |
| | | } |
| | | |
| | | /** |
| | | * 查询对应网格人对应的网格 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public GridEntity getGridByUserId(Long userId) { |
| | | return baseMapper.getGridByUserId(userId); |
| | | } |
| | | |
| | | /** |
| | | * 根据网格名称,社区名称查询对应的网格 |
| | | * @param gridName |
| | | * @param communityName |
| | | * @return |
| | | */ |
| | | @Override |
| | | public GridEntity getGridByNames(String gridName, String communityName) { |
| | | return baseMapper.getGridByNames(gridName,communityName); |
| | | } |
| | | |
| | | /** |
| | | * 查询用户对应的网格 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<String> getGridListByUserId(Long userId) { |
| | | return baseMapper.getGridListByUserId(userId.toString()); |
| | | } |
| | | |
| | | /** |
| | | * 查询对应的房屋地址code(更加网格编号集合) |
| | | * @param gridCodeList |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<String> getAddressCodeListByGridCodeList(String communityCode, List<String> gridCodeList) { |
| | | return baseMapper.getAddressCodeListByGridCodeList(communityCode,gridCodeList); |
| | | } |
| | | |
| | | /** |
| | | * 根据社区编号及网格编号集合查询对应的网格信息 |
| | | * @param communityCode |
| | | * @param gridCodeList |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<GridVO> getGridListByComAndList(String communityCode, List<String> gridCodeList) { |
| | | return baseMapper.getGridListByComAndList(communityCode,gridCodeList); |
| | | } |
| | | |
| | | /** |
| | | * 根据社区名称和网格名称查询对应的网格信息 |
| | | * @param communityName |
| | | * @param gridName |
| | | * @return |
| | | */ |
| | | @Override |
| | | public GridEntity getGridInfoByParam(String communityName, String gridName) { |
| | | return baseMapper.getGridInfoByParam(communityName,gridName); |
| | | } |
| | | } |