zhongrj
2024-03-22 fd418c726d11b80a2e684aca27b3524c51d8f0db
门牌详情查询修改,网格范围绑定处理接口新增
10 files modified
158 ■■■■■ changed files
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 36 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 75 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/mapper/GridMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/service/IGridService.java 3 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -245,6 +245,16 @@
    /**
     * 网格范围数据处理
     * @return
     */
    @GetMapping("/gridRangeDataHandle")
    public R gridRangeDataHandle(String townName,String communityName){
        return R.data(doorplateAddressService.gridRangeDataHandle(townName,communityName));
    }
    /**
     * 查询场所标准地址数据
     * @param doorplateAddressVO
     * 查询场所标准地址数据
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -239,4 +239,21 @@
     * @return
     */
    Integer getNotHouseListCount(@Param("townName") String townName);
    /**
     * 查询网格范围表未绑定的地址表信息数量
     * @param townName
     * @return
     */
    Integer getNotBindGridRangeDoorListCount(@Param("townName") String townName,
                                             @Param("communityName") String communityName);
    /**
     * 查询所有未匹配的网格范围地址数据
     * @param townName
     * @param communityName
     * @return
     */
    List<DoorplateAddressEntity> getNotBindGridRangeDoorList(@Param("townName") String townName,
                                                             @Param("communityName") String communityName);
}
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -700,4 +700,40 @@
        </if>
        limit 0,1000
    </select>
    <!--查询网格范围表未绑定的地址表信息数量-->
    <select id="getNotBindGridRangeDoorListCount" resultType="java.lang.Integer">
        select count(*) from jczz_doorplate_address jda
        left join jczz_grid_range jgr on jgr.house_code = jda.address_code
        where 1=1
        and jgr.house_code is null
        <if test="townName!=null and townName!=''">
            and jda.town_street_name like concat('%',#{townName},'%')
        </if>
        <if test="communityName!=null and communityName!=''">
            and jda.nei_name like concat('%',#{communityName},'%')
        </if>
        limit 0,1000
    </select>
    <!--查询所有未匹配的网格范围地址数据-->
    <select id="getNotBindGridRangeDoorList" resultType="org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity">
        select
        jda.address_code,
        jda.aoi_code,
        jda.building_code,
        jda.x,
        jda.y
        from jczz_doorplate_address jda
        left join jczz_grid_range jgr on jgr.house_code = jda.address_code
        where 1=1
        and jgr.house_code is null
        <if test="townName!=null and townName!=''">
            and jda.town_street_name like concat('%',#{townName},'%')
        </if>
        <if test="communityName!=null and communityName!=''">
            and jda.nei_name like concat('%',#{communityName},'%')
        </if>
        limit 0,1000
    </select>
</mapper>
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -137,4 +137,10 @@
     * @return
     */
    List<DoorplateAddressVO> getHouseBuildingCode(String districtId);
    /**
     * 网格范围数据处理
     * @return
     */
    boolean gridRangeDataHandle(String townName,String communityName);
}
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -29,6 +29,7 @@
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.backblast.entity.BackblastPubRecordEntity;
import org.springblade.modules.category.dto.CategoryDTO;
import org.springblade.modules.category.service.ICategoryService;
import org.springblade.modules.community.entity.CommunityEntity;
@@ -42,7 +43,9 @@
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
import org.springblade.modules.doorplateAddress.vo.FuncNode;
import org.springblade.modules.grid.entity.GridEntity;
import org.springblade.modules.grid.entity.GridRangeEntity;
import org.springblade.modules.grid.entity.GridmanEntity;
import org.springblade.modules.grid.service.IGridRangeService;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.grid.service.IGridmanService;
import org.springblade.modules.house.entity.HouseEntity;
@@ -59,6 +62,7 @@
import org.springblade.modules.place.service.IPlaceExtService;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.place.vo.PlaceVO;
import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.service.IRegionService;
@@ -718,7 +722,7 @@
        if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
            if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
            }
        }
        return stringList;
@@ -942,9 +946,8 @@
            if (!Strings.isBlank(doorplateAddress.getRoleName())) {
                // 判断是否有权限
                if (doorplateAddress.getRoleName().equals("网格员")) {
                    list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
                    boolean contains = list.contains(doorplateAddress.getAddressCode());
                    if (list.size() == 0 || !contains) {
                    list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
                    if (list.size() == 0) {
                        // 无权限
                        doorplateAddressVO.setIsJur(2);
                    } else {
@@ -1037,4 +1040,68 @@
    public List<DoorplateAddressVO> getHouseBuildingCode(String districtId) {
        return baseMapper.getHouseBuildingCode(districtId);
    }
    /**
     * 网格范围数据处理
     * @return
     */
    @Override
    public boolean gridRangeDataHandle(String townName,String communityName) {
        // 查询未匹配的网格范围地址信息
        // 查询总数
        Integer count = baseMapper.getNotBindGridRangeDoorListCount(townName,communityName);
        if (count > 0) {
            IGridRangeService gridRangeService = SpringUtils.getBean(IGridRangeService.class);
            int num = count / 1000;
            for (int i = 0; i <= num + 1; i++) {
                // 查询所有未匹配的网格范围地址数据
                List<DoorplateAddressEntity> list = baseMapper.getNotBindGridRangeDoorList(townName,communityName);
                // 需要新增的网格范围 list
                List<GridRangeEntity> gridRangeEntityList = new ArrayList<>();
                // 处理户室数据
                for (DoorplateAddressEntity doorplateAddressEntity : list) {
                    // 查询是否已存在,存在就插入,不存在则插入
                    QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
                    wrapper.eq("house_code", doorplateAddressEntity.getAddressCode());
                    GridRangeEntity one = gridRangeService.getOne(wrapper);
                    if (null == one) {
                        GridRangeEntity gridRangeEntity = new GridRangeEntity();
                        gridRangeEntity.setHouseCode(doorplateAddressEntity.getAddressCode());
                        gridRangeEntity.setDistrictCode(doorplateAddressEntity.getAoiCode());
                        gridRangeEntity.setBuilding(doorplateAddressEntity.getBuildingCode());
                        // 设置网格
                        setGridInfo(doorplateAddressEntity,gridRangeEntity);
                        // 加入集合
                        gridRangeEntityList.add(gridRangeEntity);
                    }
                }
                // 批量插入
                gridRangeService.saveBatch(gridRangeEntityList);
            }
        }
        return false;
    }
    /**
     * 设置警格网格信息
     * @param doorplateAddressEntity
     */
    public void setGridInfo(DoorplateAddressEntity doorplateAddressEntity,GridRangeEntity gridRangeEntity) {
        // 根据位置设置网格,警格编号
//        IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
        String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() + ")'";
        //点坐标解析网格
        List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
        if (gridEntityList.size()>0){
            GridEntity gridEntity = gridEntityList.get(0);
            gridRangeEntity.setGridId(gridEntity.getId());
            gridRangeEntity.setGridCode(gridEntity.getGridCode());
        }
//        //点坐标解析警格
//        List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
//        if (policeAffairsGridEntityList.size()>0){
//            PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
//            backblastPubRecord.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
//        }
    }
}
src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -62,7 +62,7 @@
     * @param userId
     * @return
     */
    List<String> getAddressCodeListByUserId(@Param("userId") Long userId);
    List<String> getAddressCodeListByUserId(@Param("userId") Long userId,@Param("addressCode") String addressCode);
    /**
     * 空间分析 mysql 5.7  点落面
src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -74,6 +74,9 @@
        left join jczz_gridman jgm on jgm.grid_id = jg.id and jgm.is_deleted = 0
        where 1=1
        and jgm.user_id = #{userId}
        <if test="addressCode!=null and addressCode!=''">
            and jgr.house_code = #{addressCode}
        </if>
    </select>
    <!--判断该小区点在哪个派出所-->
src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -62,9 +62,10 @@
    /**
     * 根据用户id(网格员)查询对应的房屋地址code
     * @param userId
     * @param addressCode 地址编码
     * @return
     */
    List<String> getAddressCodeListByUserId(Long userId);
    List<String> getAddressCodeListByUserId(Long userId,String addressCode);
    /**
     * 空间分析
src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -142,8 +142,8 @@
     * @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);
    }
    /**
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -214,7 +214,7 @@
        if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
            if (houseParam.getRoleName().equals("网格员")) {
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
            }
        }
        return stringList;