From 157b568be6abe0b759ab5cd3dd91ea829841cfa3 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 24 Jan 2024 14:38:01 +0800
Subject: [PATCH] 查询机构子机构及其本身
---
src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml | 2
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java | 2
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml | 82 +++++++++++++++++++++++-----------------
src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java | 25 ++++--------
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 3 -
5 files changed, 58 insertions(+), 56 deletions(-)
diff --git a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
index baeeace..244a2c4 100644
--- a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
+++ b/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}
diff --git a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java b/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
index aa068a7..0e9fa04 100644
--- a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
+++ b/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
*/
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
index 7844f1b..44d4327 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
+++ b/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);
/**
* 懒加载获取树形节点
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
index fd241a2..daa5053 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/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>
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index d409db3..8862eeb 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/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
--
Gitblit v1.9.3