From a5fac95408a43ad43de9d88c30d06c0918c7bc8f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 29 May 2024 11:14:44 +0800
Subject: [PATCH] 配置调整
---
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 197 +++++++++++++++++++++++++------------------------
1 files changed, 101 insertions(+), 96 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 d409db3..9e81272 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
@@ -1,19 +1,3 @@
-/*
- * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * Neither the name of the dreamlu.net developer nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * Author: Chill 庄骞 (smallchill@163.com)
- */
package org.springblade.modules.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -21,8 +5,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.common.utils.AuthUtils;
+import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
@@ -30,15 +14,12 @@
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.entity.Region;
import org.springblade.modules.system.mapper.DeptMapper;
+import org.springblade.modules.system.node.DeptUserTreeNode;
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;
@@ -60,9 +41,6 @@
private static final String PARENT_ID = "parentId";
@Autowired
- private IPropertyCompanyService propertyCompanyService;
-
- @Autowired
private IRegionService regionService;
@Override
@@ -80,10 +58,10 @@
parentId = 0L;
}
// 判断数据权限控制,非超管角色只可看到本级及以下数据
- if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
+ if (Func.toLong(parentId) == 0L && !AuthUtils.isAdministratorOrAdmin(AuthUtil.getUserRole())) {
Long deptId = Func.firstLong(AuthUtil.getDeptId());
Dept dept = SysCache.getDept(deptId);
- if (dept.getParentId() != 0) {
+ if (dept != null && dept.getParentId() != 0) {
parentId = dept.getParentId();
}
List<DeptVO> deptVOS = baseMapper.lazyList(tenantId, parentId, param);
@@ -99,28 +77,13 @@
@Override
public List<DeptVO> tree(String tenantId) {
- Long parentId = null;
Long id = 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;
-// }
- String userRole = AuthUtil.getUserRole();
- // 判断物业公司
- if (userRole.contains("wygly") || userRole.contains("wyxmjl")) {
- // 获取当前用户的机构
+ if (!AuthUtil.isAdmin()) {
id = Func.firstLong(AuthUtil.getDeptId());
}
-
- return ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId, id));
+ List<DeptVO> tree = baseMapper.tree(tenantId, id);
+ return ForestNodeMerger.merge(tree);
}
@Override
@@ -136,10 +99,10 @@
// parentId = dept.getParentId();
// }
// }
- if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
+ if (Func.toLong(parentId) == 0L && !AuthUtil.isAdmin()) {
Long deptId = Func.firstLong(AuthUtil.getDeptId());
Dept dept = SysCache.getDept(deptId);
- if (dept.getParentId() != 0) {
+ if (dept != null && dept.getParentId() != 0) {
parentId = dept.getParentId();
}
List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
@@ -191,16 +154,6 @@
throw new ServiceException("请先删除子节点!");
}
List<Long> longs = Func.toLongList(ids);
- // 遍历
- for (Long id : longs) {
- // 查询当前机构信息
- DeptVO dept = baseMapper.getDeptById(id);
- // 如果父机构为物业公司
- if (dept.getParentName().equals("物业公司")) {
- // 删除
- propertyCompanyService.remove(Wrappers.<PropertyCompanyEntity>update().lambda().eq(PropertyCompanyEntity::getDeptId, id));
- }
- }
return removeByIds(longs);
}
@@ -260,7 +213,7 @@
dept.setId(one.getId());
flag = updateById(dept);
} else {
- if (dept.getId() > 0) {
+ if (dept.getId() != null && dept.getId() > 0) {
flag = updateById(dept);
} else {
flag = save(dept);
@@ -282,26 +235,6 @@
*/
@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());
- PropertyCompanyEntity propertyCompanyEntity = propertyCompanyService.getOne(wrapper);
- if (null != propertyCompanyEntity) {
- // 修改
- propertyCompanyEntity.setDeptId(dept.getId());
- propertyCompanyEntity.setName(dept.getDeptName());
- // 往物业公司表中插入一条数据
- propertyCompanyService.updateById(propertyCompanyEntity);
- } else {
- // 新增
- PropertyCompanyEntity companyEntity = new PropertyCompanyEntity();
- companyEntity.setDeptId(dept.getId());
- companyEntity.setName(dept.getDeptName());
- // 往物业公司表中插入一条数据
- propertyCompanyService.save(companyEntity);
- }
}
@Override
@@ -327,26 +260,47 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Object dataHandle() {
- // 查询未绑定的网格
- List<TreeStringNode> list = regionService.getTree(null);
+ // 查询所有的社区
+ QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("district_code", "361102").eq("region_level", 5);
+ List<Region> list = regionService.list(queryWrapper);
// 遍历
- for (TreeStringNode treeStringNode : list) {
+ for (Region region : list) {
// 查询是否已创建
QueryWrapper<Dept> wrapper = new QueryWrapper<>();
- wrapper.eq("is_deleted", 0).eq("dept_name", treeStringNode.getName());
+ wrapper.eq("is_deleted", 0).eq("dept_name", region.getName());
Dept one = getOne(wrapper);
if (null == one) {
// 新增
Dept dept = new Dept();
- dept.setParentId(1733066387113734145L);
- dept.setFullName(treeStringNode.getName());
- dept.setDeptName(treeStringNode.getName());
+ dept.setFullName(region.getName());
+ dept.setDeptName(region.getName());
dept.setDeptCategory(1);
dept.setTenantId("000000");
+ // 查询上级id
+ QueryWrapper<Dept> deptQueryWrapper = new QueryWrapper<>();
+ deptQueryWrapper.eq("is_deleted", 0).eq("dept_name", region.getTownName());
+ Dept parentDept = getOne(deptQueryWrapper);
+ if (null != parentDept) {
+ dept.setParentId(parentDept.getId());
+ dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
+ }
+ dept.setRegionCode(region.getCode());
// 新增
- save(dept);
+ saveOrUpdate(dept);
+ // 插入社区表数据
}
}
+ return null;
+ }
+
+
+ /**
+ * 数据处理(社区绑定)--处理机构
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Object dataHandleCommunity() {
return null;
}
@@ -356,17 +310,68 @@
@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;
+ }
+
+ @Override
+ public List<DeptUserTreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
+ // 查询数据
+// Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
+
+ Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMapAndChildren(treeNode);
+ Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
+ deptMap.putAll(userMap);
+ List<DeptUserTreeNode> deptAndUserNodeTree = NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
+ return deptAndUserNodeTree;
+ }
+
+ @Override
+ public Object getDeptAndUserTreeLazyTree(DeptUserTreeNode treeNode) {
+
+ //传一个部门id,查询出该部门的下一级部门
+ Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMapAndChild(treeNode);
+
+ String deptIds = "";
+ int count = 0;
+ for (String key : deptMap.keySet()) {
+ count++;
+ deptIds += key;
+ if (count < deptMap.size()) {
+ deptIds += ",";
}
+ }
+
+ Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMapByDeptIds(deptIds);
+ deptMap.putAll(userMap);
+ List<DeptUserTreeNode> deptAndUserNodeTree = NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
+ return deptAndUserNodeTree;
+ }
+
+ /**
+ * 数据处理(社区绑定)-- 处理社区(派出所下)
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Object dataHandleCommunityByPolice() {
+ // 查询所有的派出所
+ QueryWrapper<Dept> wrapper = new QueryWrapper<>();
+ wrapper.eq("is_deleted", 0).like("dept_name", "派出所");
+ List<Dept> list = list(wrapper);
+ // 遍历
+ for (Dept dept : list) {
}
return null;
}
+
+ /**
+ * 查询对应的派出所
+ *
+ * @param deptId
+ * @return
+ */
+ @Override
+ public Dept getDeptByDeptIds(String deptId) {
+ return baseMapper.getDeptByDeptIds(deptId);
+ }
+
}
--
Gitblit v1.9.3