zhongrj
2024-04-12 a3dd50443d28d587f49a041b3b1286fbaa5c2ef4
网格员查询调整
10 files modified
235 ■■■■ changed files
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 14 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 109 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/mapper/GridMapper.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml 44 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/service/IGridService.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -41,6 +41,7 @@
import org.springblade.modules.house.vo.HouseParam;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import sun.rmi.runtime.Log;
import java.util.List;
@@ -177,9 +178,9 @@
     */
    @GetMapping("/getHouseRentInfo")
    @ApiLog("查询房屋及出租详情信息")
    public R getHouseRentInfo(String code) {
    public R getHouseRentInfo(String code, Long houseId) {
        bladeLogger.info("获取楼盘相关集合数据", JsonUtil.toJson(code));
        return R.data(doorplateAddressService.getHouseRentInfo(code));
        return R.data(doorplateAddressService.getHouseRentInfo(code,houseId));
    }
    /**
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -256,4 +256,11 @@
     */
    List<DoorplateAddressEntity> getNotBindGridRangeDoorList(@Param("townName") String townName,
                                                             @Param("communityName") String communityName);
    /**
     * 根据房屋id 查询对应的地址信息
     * @param houseId
     * @return
     */
    DoorplateAddressVO getDoorplateAddressDetailByHouseId(@Param("houseId") Long houseId);
}
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -5,7 +5,7 @@
    <!--过滤网格数据-->
    <sql id="filterHouseGrid">
        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
            <if test="houseParam.roleName=='网格员' and houseParam.userId!='1726859808689696770'">
            <if test="houseParam.roleName=='wgy' and houseParam.userId!='1726859808689696770'">
                <choose>
                    <when test="list != null and list.size()>0">
                        and address_code in
@@ -26,7 +26,7 @@
    <!--过滤社区数据-->
    <sql id="filterCommunity">
        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
            <if test="houseParam.roleName=='民警' and houseParam.userId!='1726859808689696770'">
            <if test="houseParam.roleName=='mj' and houseParam.userId!='1726859808689696770'">
                <choose>
                    <when test="communityList != null and communityList.size()>0">
                        and nei_code in
@@ -780,4 +780,14 @@
        </if>
        limit 0,1000
    </select>
    <!--查询所有未匹配的网格范围地址数据-->
    <select id="getDoorplateAddressDetailByHouseId" resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO">
        select
        jda.*
        from jczz_doorplate_address jda
        left join jczz_household jh on jh.house_code = jda.address_code and jh.is_deleted = 0
        where 1=1
        and jh.id = #{houseId}
    </select>
</mapper>
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -62,7 +62,7 @@
     * @param code 门牌地址编号
     * @return
     */
    Object getHouseRentInfo(String code);
    Object getHouseRentInfo(String code,Long houseId);
    List<DoorplateAddressVOTree> getDoorplateAddressList(String code, String type);
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -48,6 +48,7 @@
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.grid.vo.GridVO;
import org.springblade.modules.house.entity.HouseEntity;
import org.springblade.modules.house.entity.UserHouseLabelEntity;
import org.springblade.modules.house.service.IHouseRentalService;
@@ -247,7 +248,7 @@
        }
        if (placeNodeList.size() > 0) {
            TreeStringNode placeNode = new TreeStringNode();
            placeNode.setName("场所");
            placeNode.setName("经营场所");
            placeNode.setId("2");
            placeNode.setHasChildren(true);
            placeNode.setChildren(placeNodeList);
@@ -267,23 +268,27 @@
    public Object getHousesList(HouseParam houseParam) {
        List<TreeStringNode> list = new ArrayList<>();
        Map<String, Object> map = new HashMap<>(2);
        String roleName = SpringUtils.getRequestParam("roleName");
        if (!Strings.isBlank(roleName)){
            houseParam.setRoleName(roleName);
        }
        // 获取网格员对应的地址编号集合
        List<String> stringList = getHouseCodeList(houseParam);
        List<String> addressCodeList = getHouseCodeList(houseParam);
        List<String> communityCodeList = getCommunityCodeList(houseParam);
        // 获取网格员对应的网格信息
        getGridInfoByGridman(houseParam);
        // 查小区,场所
        if (houseParam.getType() == 1) {
            // 根据社区名称查询小区集合
            list = baseMapper.getDistrictList(houseParam, stringList, communityCodeList);
            list = baseMapper.getDistrictList(houseParam, addressCodeList, communityCodeList);
        }
        // 查楼栋,街路巷
        if (houseParam.getType() == 2) {
            return getBuildLevelData(houseParam, map);
            return getBuildLevelData(houseParam,addressCodeList, map);
        }
        // 查户室
        if (houseParam.getType() == 3) {
            return getHouseLevelData(houseParam, map);
            return getHouseLevelData(houseParam,addressCodeList, map);
        }
        return list;
    }
@@ -294,22 +299,19 @@
     * @param houseParam
     */
    private void getGridInfoByGridman(HouseParam houseParam) {
        if (houseParam.getRoleName().equals("网格员")) {
            QueryWrapper<GridmanEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("is_deleted", 0)
                .eq("user_id", AuthUtil.getUserId());
            List<GridmanEntity> list = gridmanService.list(wrapper);
            if (list.size() > 0) {
                GridmanEntity gridmanEntity = list.get(0);
                GridEntity gridEntity = gridService.getById(gridmanEntity.getGridId());
                // 查询居委会
                Region region = regionService.getById(gridEntity.getCommunityCode());
                if (null != region) {
                    houseParam.setCommunityName(region.getName());
                }
                if (!Strings.isBlank(gridEntity.getGridName())) {
                    houseParam.setGridName(gridEntity.getGridName());
                }
        if (houseParam.getRoleName().equals("wgy")) {
            if (Strings.isBlank(houseParam.getRoleName())){
                houseParam.setRoleName(SpringUtils.getRequestParam("roleName"));
            }
            // 查询网格员的网格编号集合
            List<String> gridCodeList
                = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
            String communityCode = SpringUtils.getRequestParam("communityCode");
            List<GridVO> list = gridService.getGridListByComAndList(communityCode,gridCodeList);
            if (list.size()>0){
                GridVO grid = list.get(0);
                houseParam.setCommunityName(grid.getCommunityName());
                houseParam.setGridName(grid.getGridName());
            }
        }
    }
@@ -321,8 +323,7 @@
     * @param map
     * @return
     */
    private Map<String, Object> getHouseLevelData(HouseParam houseParam, Map<String, Object> map) {
        List<String> stringList = getHouseCodeList(houseParam);
    private Map<String, Object> getHouseLevelData(HouseParam houseParam, List<String> stringList,Map<String, Object> map) {
        // 判断地址类型
        if (houseParam.getAddressType() == 1) {
            List<FuncNode> aoiList = new ArrayList<>();
@@ -395,7 +396,7 @@
     * @param map
     * @return
     */
    private Object getBuildLevelData(HouseParam houseParam, Map<String, Object> map) {
    private Object getBuildLevelData(HouseParam houseParam,List<String> stringList, Map<String, Object> map) {
        if (houseParam.getAddressType() == 4) {
            // 获取网格员对应的网格信息
            getGridInfoByGridman(houseParam);
@@ -406,7 +407,6 @@
            // 返回
            return map;
        } else {
            List<String> stringList = getHouseCodeList(houseParam);
            // 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
            if (houseParam.getCode().length() > 12) {
                List<TreeStringNode> aoiList = new ArrayList<>();
@@ -625,9 +625,15 @@
     * @return
     */
    @Override
    public Object getHouseRentInfo(String code) {
        // 先查询门牌信息
        DoorplateAddressVO doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
    public Object getHouseRentInfo(String code,Long houseId) {
        DoorplateAddressVO doorplateAddressDetailVO = new DoorplateAddressVO();
        if (Strings.isBlank(code) && null!=houseId) {
            // 先查询门牌信息
            doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByHouseId(houseId);
        }else {
            // 先查询门牌信息
            doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
        }
        if (null != doorplateAddressDetailVO) {
            // 查询房屋出租情况
            List<HouseRentalVO> houseRentalVOS = houseRentalService.getHouseRentalListByCode(code);
@@ -708,6 +714,10 @@
     */
    @Override
    public List<DoorplateAddressVOTree> getHouseTree(HouseParam houseParam) {
        String roleName = SpringUtils.getRequestParam("roleName");
        if (!Strings.isBlank(roleName)){
            houseParam.setRoleName(roleName);
        }
        List<String> stringList = getHouseCodeList(houseParam);
        // 根据社区居委会编号获取对应的小区/楼栋/单元/户室
        return NodeTreeUtil.getAddressNodeTree(baseMapper.getHouseTree(houseParam, stringList));
@@ -720,16 +730,22 @@
     * @return
     */
    private List<String> getHouseCodeList(HouseParam houseParam) {
        List<String> stringList = new ArrayList<>();
        List<String> addressCodeList = new ArrayList<>();
        String userId = AuthUtil.getUserId().toString();
        houseParam.setUserId(userId);
        if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
            if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
            if ((houseParam.getRoleName().equals("wgy") || houseParam.getRoleName().equals("wzcj"))
                && !userId.equals("1726859808689696770")) {
                // 先取对应网格员对应的网格编号集合
                List<String> gridCodeList
                    = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
//                addressCodeList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
                addressCodeList =
                    gridService.getAddressCodeListByGridCodeList(SpringUtils.getRequestParam("communityCode"),gridCodeList);
            }
        }
        return stringList;
        return addressCodeList;
    }
    /**
@@ -743,7 +759,7 @@
        String userId = AuthUtil.getUserId().toString();
        houseParam.setUserId(userId);
        if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
            if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
            if (houseParam.getRoleName().equals("mj") && !userId.equals("1726859808689696770")) {
                // 查询对应社区编号集合
                stringList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
            }
@@ -980,15 +996,26 @@
            String roleName = SpringUtils.getRequestParam("roleName");
            if (!Strings.isBlank(roleName)) {
                // 判断是否有权限
                if (roleName.equals("wgy")) {
                    list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
                    if (list.size() == 0) {
                        // 无权限
                        doorplateAddressVO.setIsJur(2);
                    } else {
                        doorplateAddressVO.setIsJur(1);
                if (roleName.equals("wgy") || roleName.equals("wzcj")) {
                    // 无权限
                    doorplateAddressVO.setIsJur(2);
//                    list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
                    list = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
                    if (null != list && list.size() > 0) {
                        List<String> arrayList = new ArrayList<>();
                        for (String gridCode : list) {
                            if (gridCode.length()>12) {
                                arrayList.add(gridCode.substring(0, gridCode.length() - 2));
                            }else {
                                arrayList.add(gridCode);
                            }
                        }
                        boolean contains = arrayList.contains(doorplateAddressVO.getNeiCode());
                        if (contains) {
                            doorplateAddressVO.setIsJur(1);
                        }
                    }
                } else if (roleName.equals("mj")) {
                }else if (roleName.equals("mj")) {
                    // 无权限
                    doorplateAddressVO.setIsJur(2);
                    // 查询对应的社区code
src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -136,4 +136,20 @@
     * @return
     */
    List<String> getGridListByUserId(@Param("userId") String userId);
    /**
     * 查询对应的房屋地址code(更加网格编号集合)
     * @param gridCodeList
     * @return
     */
    List<String> getAddressCodeListByGridCodeList(@Param("communityCode")String communityCode,@Param("gridCodeList")List<String> gridCodeList);
    /**
     * 根据社区编号及网格编号集合查询对应的网格信息
     * @param communityCode
     * @param gridCodeList
     * @return
     */
    List<GridVO> getGridListByComAndList(@Param("communityCode")String communityCode,
                                         @Param("gridCodeList") List<String> gridCodeList);
}
src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -213,4 +213,48 @@
        and jgm.user_id = #{userId}
    </select>
    <!--查询对应的房屋地址code(更加网格编号集合)-->
    <select id="getAddressCodeListByGridCodeList" resultType="java.lang.String">
        select jgr.house_code from jczz_grid_range jgr
        left join jczz_grid jg on jg.grid_code = jgr.grid_code and jg.is_deleted = 0
        where 1=1
        <if test="communityCode!=null and communityCode!=''">
            and jg.community_code = #{communityCode}
        </if>
        <choose>
            <when test="gridCodeList!=null and gridCodeList.size()>0">
                and jg.grid_code in
                <foreach collection="gridCodeList" item="gridCode" separator="," open="(" close=")">
                     #{gridCode}
                </foreach>
            </when>
            <otherwise>
                and jg.grid_code in ('')
            </otherwise>
        </choose>
    </select>
    <!--根据社区编号及网格编号集合查询对应的网格信息-->
    <select id="getGridListByComAndList" resultType="org.springblade.modules.grid.vo.GridVO">
        select
        jg.*,br.name as communityName
        from jczz_grid jg
        left join blade_region br on jg.community_code = br.code
        where jg.is_deleted = 0
        <if test="communityCode!=null and communityCode!=''">
            and jg.community_code = #{communityCode}
        </if>
        <choose>
            <when test="gridCodeList!=null and gridCodeList.size()>0">
                and jg.grid_code in
                <foreach collection="gridCodeList" item="gridCode" separator="," open="(" close=")">
                     #{gridCode}
                </foreach>
            </when>
            <otherwise>
                and jgr.house_code in ('')
            </otherwise>
        </choose>
    </select>
</mapper>
src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -145,4 +145,19 @@
     * @return
     */
    List<String> getGridListByUserId(Long userId);
    /**
     * 查询对应的房屋地址code(更加网格编号集合)
     * @param gridCodeList
     * @return
     */
    List<String> getAddressCodeListByGridCodeList(String communityCode, List<String> gridCodeList);
    /**
     * 根据社区编号及网格编号集合查询对应的网格信息
     * @param communityCode
     * @param gridCodeList
     * @return
     */
    List<GridVO> getGridListByComAndList(String communityCode, List<String> gridCodeList);
}
src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -366,4 +366,25 @@
    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);
    }
}
src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -244,7 +244,7 @@
        jg.sort
        FROM blade_region br
        right join jczz_grid jg on jg.community_code = br.village_code and jg.is_deleted = 0
        where (br.ancestors like concat('%',#{regionCode},'%') or br.code = #{regionCode} or jg.grid_code = '36110200302701')
        where (br.ancestors like concat('%',#{regionCode},'%') or br.code = #{regionCode} or jg.grid_code = #{regionCode})
        )
    </select>