linwei
2024-01-24 157b568be6abe0b759ab5cd3dd91ea829841cfa3
查询机构子机构及其本身
5 files modified
114 ■■■■ changed files
src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 82 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 3 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
@@ -71,7 +71,7 @@
        aoi_code aoiCode
        from jczz_district
        where is_deleted = 0
        <if test="district.districtIdList!=null and district.districtIdList!=''">
        <if test="district.districtIdList!=null and district.districtIdList.size() > 0">
            and id in
            <foreach collection="district.districtIdList" item="item" separator ="," open="("  close=")">
                #{item}
src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
@@ -16,26 +16,20 @@
 */
package org.springblade.modules.district.service.impl;
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.node.TreeIntegerNode;
import org.springblade.common.node.TreeStringNode;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.district.entity.DistrictEntity;
import org.springblade.modules.district.vo.DistrictVO;
import org.springblade.modules.district.mapper.DistrictMapper;
import org.springblade.modules.district.service.IDistrictService;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.district.vo.DistrictVO;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.grid.vo.GridVO;
import org.springblade.modules.property.service.IPropertyDistrictUserService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.service.IDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
@@ -55,13 +49,13 @@
    @Override
    public IPage<DistrictVO> selectDistrictPage(IPage<DistrictVO> page, DistrictVO district) {
        List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
        Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
        List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district,regionChildCodesList,isAdministrator);
        Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
        List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district, regionChildCodesList, isAdministrator);
        // 遍历
        for (DistrictVO districtVO : districtVOS) {
            // 设置对应的网格名称
            List<GridVO> gridVO = gridService.getGridListByAoiCode(districtVO.getAoiCode());
            if (gridVO.size()>0) {
            if (gridVO.size() > 0) {
                StringBuilder builder = new StringBuilder();
                for (GridVO vo : gridVO) {
                    builder.append(vo.getGridName()).append(",");
@@ -77,17 +71,12 @@
    /**
     * 获取小区树
     *
     * @param district
     * @return
     */
    @Override
    public Object getDistrictTree(DistrictVO district) {
         String userRole = AuthUtil.getUserRole();
         if (userRole.equals("wygly")||userRole.equals("wyxmjl")) {
             // 查询管理的小区  不好过滤小区
            // todo
            // district.setDistrictIdList(strings);
         }
        Map<String, TreeStringNode> districtTree = baseMapper.getDistrictTree(district);
        List<TreeStringNode> stringNodeTree = NodeTreeUtil.getStringNodeTree(districtTree);
        stringNodeTree.forEach(node -> recursion(node));
@@ -97,6 +86,7 @@
    /**
     * 去除空的数据组
     *
     * @param node
     */
    private void recursion(TreeStringNode node) {
@@ -109,6 +99,7 @@
    /**
     * 小区表 自定义获取详情
     *
     * @param district
     * @return
     */
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -47,7 +47,7 @@
     * @param tenantId
     * @return
     */
    List<DeptVO> tree(String tenantId, Long parentId, Long id);
    List<DeptVO> tree(String tenantId, Long id);
    /**
     * 懒加载获取树形节点
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -39,17 +39,17 @@
    <select id="lazyList" resultMap="deptVOResultMap">
        SELECT
            dept.* ,
            (
                SELECT
                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
                FROM
                    blade_dept
                WHERE
                    parent_id = dept.id and is_deleted = 0
            ) AS "has_children"
        dept.* ,
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
            blade_dept dept
        blade_dept
        WHERE
        parent_id = dept.id and is_deleted = 0
        ) AS "has_children"
        FROM
        blade_dept dept
        WHERE dept.is_deleted = 0
        <if test="param1!=null and param1!=''">
            and dept.tenant_id = #{param1}
@@ -67,40 +67,52 @@
    </select>
    <select id="tree" resultMap="treeNodeResultMap">
        select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
        <if test="param1!=null and param1!=''">
            and tenant_id = #{param1}
        <if test="param2!=null">
            SELECT
            id,
            dept_name AS title,
            id AS "value",
            id AS "key",
            parent_id
            FROM
            ( SELECT * FROM blade_dept WHERE is_deleted = 0 AND tenant_id = #{param1} ORDER BY parent_id, id )
            org_query,
            ( SELECT @id := #{param2} ) initialisation
            WHERE
            (FIND_IN_SET( parent_id, @id ) > 0 or FIND_IN_SET( id, @id ) > 0)
            AND @id := CONCAT(@id,',',id) ORDER BY sort
        </if>
        <if test="param2!=null and param2!=''">
            and parent_id = #{param2}
        <if test="param2==null">
            select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
            <if test="param1!=null and param1!=''">
                and tenant_id = #{param1}
            </if>
            ORDER BY sort
        </if>
        <if test="param3!=null and param3!=''">
            and id = #{param3}
        </if>
        ORDER BY sort
    </select>
    <select id="lazyTree" resultMap="treeNodeResultMap" >
    <select id="lazyTree" resultMap="treeNodeResultMap">
        SELECT
            dept.id,
            dept.parent_id,
            dept.dept_name AS title,
            dept.id AS "value",
            dept.id AS "key",
            (
                SELECT
                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
                FROM
                    blade_dept
                WHERE
                    parent_id = dept.id and is_deleted = 0
            ) AS "has_children"
        dept.id,
        dept.parent_id,
        dept.dept_name AS title,
        dept.id AS "value",
        dept.id AS "key",
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
            blade_dept dept
        blade_dept
        WHERE
            dept.parent_id = #{param2} AND dept.is_deleted = 0
        parent_id = dept.id and is_deleted = 0
        ) AS "has_children"
        FROM
        blade_dept dept
        WHERE
        dept.parent_id = #{param2} AND dept.is_deleted = 0
        <if test="param1!=null and param1!=''">
            and dept.tenant_id = #{param1}
        </if>
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -99,7 +99,6 @@
    @Override
    public List<DeptVO> tree(String tenantId) {
        Long parentId = null;
        Long id = null;
        // 判断数据权限控制,非超管角色只可看到本级及以下数据
//        if (!AuthUtil.isAdministrator()) {
@@ -120,7 +119,7 @@
            id = Func.firstLong(AuthUtil.getDeptId());
        }
        return ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId, id));
        return ForestNodeMerger.merge(baseMapper.tree(tenantId, id));
    }
    @Override