From cc057177b2fb17aee9a173a6adbabdc578fd74c7 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 06 Dec 2021 10:30:44 +0800
Subject: [PATCH] 1.许可
---
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 97 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 86 insertions(+), 11 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 291ab11..4d94e81 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
@@ -19,20 +19,31 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
import org.springblade.common.cache.SysCache;
+import org.springblade.common.vo.DeptVo;
import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
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.Func;
import org.springblade.core.tool.utils.StringPool;
+import org.springblade.modules.information.entity.Information;
+import org.springblade.modules.information.service.IInformationService;
+import org.springblade.modules.jurisdiction.entity.Jurisdiction;
+import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.mapper.DeptMapper;
+import org.springblade.modules.system.node.TreeNode;
+import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.vo.DeptVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -43,9 +54,14 @@
* @author Chill
*/
@Service
+@AllArgsConstructor
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
private static final String TENANT_ID = "tenantId";
private static final String PARENT_ID = "parentId";
+
+ private final IInformationService iInformationService;
+
+ private final JurisdictionService jurisdictionService;
@Override
public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -188,17 +204,10 @@
* 懒加载获取部门树形结构,不包含顶级管理员公安局
*/
@Override
- public List<DeptVO> securityLazyTree(String tenantId, Long parentId) {
- if (AuthUtil.isAdministrator()) {
- tenantId = StringPool.EMPTY;
- }
- return ForestNodeMerger.merge(baseMapper.securityLazyTree(tenantId, parentId));
+ public List<DeptVO> securityLazyTree(String jurisdiction, Long parentId) {
+ return ForestNodeMerger.merge(baseMapper.securityLazyTree(jurisdiction, parentId));
}
- @Override
- public List<String> selectIn() {
- return baseMapper.selectIn();
- }
/**
* 懒加载获取部门树形结构(包含用户数据)
@@ -228,10 +237,76 @@
/**
* 懒加载获取部门树形结构(包含用户数据)app
* @param type 1:保安对保安 2:保安向民警 3:民警向民警
+ * @param jurisdiction 辖区id
* @return
*/
@Override
- public List<DeptVO> lazyTreeUserApp(Integer type) {
- return ForestNodeMerger.merge(baseMapper.lazyTreeUserApp(type));
+ public List<DeptVO> lazyTreeUserApp(Integer type,String jurisdiction) {
+ return ForestNodeMerger.merge(baseMapper.lazyTreeUserApp(type,jurisdiction));
+ }
+
+ /**
+ * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
+ * @return
+ */
+ @Override
+ public List<TreeNodes> lazyTreeUsers(Integer type,Long deptId) {
+ Map<Long,TreeNodes> map = new HashMap<>();
+ //保安向保安汇报
+ if(type==1){
+ map = baseMapper.lazyTreeUsers(type,deptId,null);
+ }
+ //查当前公司人员
+ if(type==4){
+ map = baseMapper.lazyTreeUsers(null,deptId,null);
+ }
+ //保安向民警汇报
+ if(type==2){
+ //查询当前保安所在的辖区
+ Information information = new Information();
+ information.setDepartmentid(deptId.toString());
+
+ Information one = iInformationService.getOne(Condition.getQueryWrapper(information));
+ if (null!=one) {
+ //找辖区对应的组织机构id
+ Jurisdiction jurisdiction = jurisdictionService.getById(one.getJurisdiction());
+ if (null != jurisdiction) {
+ Dept dept = new Dept();
+ dept.setDeptName(jurisdiction.getDeptName());
+ Dept dept1 = this.getOne(Condition.getQueryWrapper(dept));
+ map = baseMapper.lazyTreeUsersPublicSecurity(type, dept1.getId(), one.getJurisdiction());
+ }
+ }
+ }
+ //民警向民警汇报,需要南昌市及当前民警所在辖区的部门数据
+ if(type==3){
+ //当前取所有的民警数据
+ map = baseMapper.lazyTreeUsersPublicSecuritys(type,null,null);
+ }
+ List<TreeNodes> tree = new ArrayList<>();
+ Map<Long, TreeNodes> finalMap = map;
+ map.forEach((id, treeNodes) ->{
+ if (finalMap.containsKey(treeNodes.getParentId())){
+ finalMap.get(treeNodes.getParentId()).getChildren().add(treeNodes);
+ }else {
+ tree.add(treeNodes);
+ }
+ });
+ return tree;
+ }
+
+ @Override
+ public List<DeptVO> selectInfo() {
+ return ForestNodeMerger.merge(baseMapper.selectInfo());
+ }
+
+ @Override
+ public List<DeptVo> selDeptList() {
+ return baseMapper.selDeptList();
+ }
+
+ @Override
+ public List<String> selectIn() {
+ return baseMapper.selectIn();
}
}
--
Gitblit v1.9.3