From 5745a87f3a139ea2bbdaf4704978e4c151ecc45a Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 23 Jan 2024 17:39:48 +0800
Subject: [PATCH] 物业管理管和项目经理数据过滤
---
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 92 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 80 insertions(+), 12 deletions(-)
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 dcd401c..c315513 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
@@ -22,18 +22,23 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.cache.SysCache;
import org.springblade.common.node.TreeStringNode;
+import org.springblade.common.utils.SpringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
+import org.springblade.modules.grid.entity.GridEntity;
+import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.property.entity.PropertyCompanyEntity;
import org.springblade.modules.property.service.IPropertyCompanyService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IRegionService;
+import org.springblade.modules.system.vo.DeptDetailVO;
import org.springblade.modules.system.vo.DeptVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -81,6 +86,9 @@
if (dept.getParentId() != 0) {
parentId = dept.getParentId();
}
+ List<DeptVO> deptVOS = baseMapper.lazyList(tenantId, parentId, param);
+ deptVOS = deptVOS.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList());
+ return deptVOS;
}
// 判断点击搜索带有查询条件的情况
if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) {
@@ -91,13 +99,46 @@
@Override
public List<DeptVO> tree(String tenantId) {
- return ForestNodeMerger.merge(baseMapper.tree(tenantId));
+ Long parentId = null;
+ // 判断数据权限控制,非超管角色只可看到本级及以下数据
+// if (!AuthUtil.isAdministrator()) {
+// Long deptId = Func.firstLong(AuthUtil.getDeptId());
+// Dept dept = SysCache.getDept(deptId);
+// if (dept.getParentId() != 0) {
+// parentId = dept.getParentId();
+// }
+// List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId));
+// List<DeptVO> copy = BeanUtil.copy(merge, DeptVO.class);
+// copy = copy.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList());
+// return copy;
+// }
+
+ return ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId));
}
@Override
public List<DeptVO> lazyTree(String tenantId, Long parentId) {
if (AuthUtil.isAdministrator()) {
tenantId = StringPool.EMPTY;
+ }
+ // 判断数据权限控制,非超管角色只可看到本级及以下数据
+// if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
+// Long deptId = Func.firstLong(AuthUtil.getDeptId());
+// Dept dept = SysCache.getDept(deptId);
+// if (dept.getParentId() != 0) {
+// parentId = dept.getParentId();
+// }
+// }
+ if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
+ Long deptId = Func.firstLong(AuthUtil.getDeptId());
+ Dept dept = SysCache.getDept(deptId);
+ if (dept.getParentId() != 0) {
+ parentId = dept.getParentId();
+ }
+ List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+ List<DeptVO> copy = BeanUtil.copy(merge, DeptVO.class);
+ copy = copy.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList());
+ return copy;
}
return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
}
@@ -148,7 +189,7 @@
// 查询当前机构信息
DeptVO dept = baseMapper.getDeptById(id);
// 如果父机构为物业公司
- if (dept.getParentName().equals("物业公司")){
+ if (dept.getParentName().equals("物业公司")) {
// 删除
propertyCompanyService.remove(Wrappers.<PropertyCompanyEntity>update().lambda().eq(PropertyCompanyEntity::getDeptId, id));
}
@@ -165,6 +206,7 @@
/**
* 机构信息处理
+ *
* @param dept
*/
private void deptHandle(Dept dept) {
@@ -187,6 +229,7 @@
/**
* 自定义新增或修改
+ *
* @param dept
* @return
*/
@@ -197,7 +240,7 @@
deptHandle(dept);
// 判断类型,如果为物业公司(上级机构名称为物业公司),名称不能重复
QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("is_deleted",0).eq("id", dept.getParentId());
+ queryWrapper.eq("is_deleted", 0).eq("id", dept.getParentId());
Dept parentDept = getOne(queryWrapper);
// 如果父机构为物业公司
if (parentDept != null && parentDept.getDeptName().equals("物业公司")) {
@@ -210,11 +253,15 @@
dept.setId(one.getId());
flag = updateById(dept);
} else {
- flag = save(dept);
+ if (dept.getId() > 0) {
+ flag = updateById(dept);
+ } else {
+ flag = save(dept);
+ }
}
//保存物业公司信息
savePropertyCompany(dept);
- }else {
+ } else {
flag = saveOrUpdate(dept);
}
// 保存并返回
@@ -223,23 +270,24 @@
/**
* 保存物业公司信息
+ *
* @param dept
*/
@Transactional(rollbackFor = Exception.class)
public void savePropertyCompany(Dept dept) {
// 查询物业公司是否存在
QueryWrapper<PropertyCompanyEntity> wrapper = new QueryWrapper<>();
- wrapper.eq("is_deleted",0)
- .eq("dept_id",dept.getId())
- .eq("name",dept.getDeptName());
+ wrapper.eq("is_deleted", 0)
+ .eq("dept_id", dept.getId())
+ .eq("name", dept.getDeptName());
PropertyCompanyEntity propertyCompanyEntity = propertyCompanyService.getOne(wrapper);
- if (null!=propertyCompanyEntity){
+ if (null != propertyCompanyEntity) {
// 修改
propertyCompanyEntity.setDeptId(dept.getId());
propertyCompanyEntity.setName(dept.getDeptName());
// 往物业公司表中插入一条数据
propertyCompanyService.updateById(propertyCompanyEntity);
- }else {
+ } else {
// 新增
PropertyCompanyEntity companyEntity = new PropertyCompanyEntity();
companyEntity.setDeptId(dept.getId());
@@ -278,9 +326,9 @@
for (TreeStringNode treeStringNode : list) {
// 查询是否已创建
QueryWrapper<Dept> wrapper = new QueryWrapper<>();
- wrapper.eq("is_deleted",0).eq("dept_name",treeStringNode.getName());
+ wrapper.eq("is_deleted", 0).eq("dept_name", treeStringNode.getName());
Dept one = getOne(wrapper);
- if (null==one){
+ if (null == one) {
// 新增
Dept dept = new Dept();
dept.setParentId(1733066387113734145L);
@@ -294,4 +342,24 @@
}
return null;
}
+
+ /**
+ * 数据处理(区域网格编号绑定)
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Object dataRegionGridCodeBindHandle() {
+ // 查询网格对应的机构信息(包含父级机构名称)
+ List<DeptVO> deptVOS = baseMapper.getGridDeptAndParentList();
+ //遍历处理
+ for (DeptVO deptVO : deptVOS) {
+ GridEntity gridEntity = SpringUtils.getBean(IGridService.class).getGridByNames(deptVO.getDeptName(),deptVO.getParentName());
+ if (null!=gridEntity){
+ deptVO.setRegionCode(gridEntity.getGridCode());
+ // 更新
+ updateById(deptVO);
+ }
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3