From 62eb499b0c969f246d3245d1429a97da4de1ce28 Mon Sep 17 00:00:00 2001
From: 钟日健 <arsn163@163.com>
Date: Mon, 01 Jun 2026 20:46:13 +0800
Subject: [PATCH] feat: 成绩查询增加年龄查询返回

---
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java |  168 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 152 insertions(+), 16 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 469250c..556ceba 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,23 +19,35 @@
 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.entity.User;
 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.service.IUserService;
 import org.springblade.modules.system.vo.DeptVO;
+import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.system.wrapper.DeptWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
 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;
@@ -49,6 +61,12 @@
 public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
 	private static final String TENANT_ID = "tenantId";
 	private static final String PARENT_ID = "parentId";
+
+	@Autowired
+	private IInformationService iInformationService;
+
+	@Autowired
+	private JurisdictionService jurisdictionService;
 
 	@Override
 	public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -85,13 +103,38 @@
 	}
 
 	@Override
-	public List<DeptVO> lazyTree(String tenantId, Long parentId) {
-		if (AuthUtil.isAdministrator()) {
-			tenantId = StringPool.EMPTY;
+	public List<DeptVO> lazyTree(String tenantId, Long parentId,String userId) {
+//		if (AuthUtil.isAdministrator()) {
+//			tenantId = StringPool.EMPTY;
+//		}
+		//获取用户信息,保安,民警
+		if (null!=userId && !userId.equals("")) {
+			UserVO user = baseMapper.getUserInfoById(userId);
+			if (user.getRoleAlias().equals("公安管理员") || user.getRoleAlias().equals("民警")){
+				//公安管理员又分,如果是派出所,只返回当前值
+				if (user.getDeptName().contains("派出所")){
+					return ForestNodeMerger.merge(baseMapper.lazyTreeCityOne(tenantId, parentId));
+				}else {
+					//市局,区级
+					Dept dept = this.getById(parentId);
+					if (null != dept) {
+						if (dept.getParentId().equals(1123598813738675201L)) {
+							return ForestNodeMerger.merge(baseMapper.lazyTreeCity(tenantId, parentId));
+						}
+						if (dept.getParentId().equals(0L)){
+							//南昌市公安局
+							return ForestNodeMerger.merge(baseMapper.lazyTreeByJurisdiction());
+						}
+					}
+				}
+			}else {
+				//保安公司
+				return ForestNodeMerger.merge(baseMapper.securityLazyTree(null, parentId));
+			}
 		}
-		return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+		//admin
+		return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId,null));
 	}
-
 	@Override
 	public List<DeptVO> lazyTrees() {
 		return  ForestNodeMerger.merge(baseMapper.lazyTrees());
@@ -174,7 +217,7 @@
 
 	@Override
 	public List<Map<Object,String>> selectCount(String name) {
-		return baseMapper.selectCount(name);
+		return baseMapper.getCount(name);
 	}
 
 	@Override
@@ -191,14 +234,41 @@
 	 * 懒加载获取部门树形结构,不包含顶级管理员公安局
 	 */
 	@Override
-	public List<DeptVO> securityLazyTree(String jurisdiction, Long parentId) {
+	public List<DeptVO> securityLazyTree(String jurisdiction, Long parentId,Long deptId) {
+		//如果传了deptId
+		if (null!=deptId){
+			//递归查询
+//			recursionDeptInfo(deptVOS, list);
+			//tree 组装并返回
+			return ForestNodeMerger.merge(baseMapper.securityDeptUnitList(null,deptId));
+		}
 		return ForestNodeMerger.merge(baseMapper.securityLazyTree(jurisdiction, parentId));
 	}
 
-	@Override
-	public List<String> selectIn() {
-		return baseMapper.selectIn();
+	/**
+	 * 递归查询子级菜单
+	 * @param deptVOS
+	 * @param list
+	 * @return
+	 */
+	private List<DeptVO> recursionDeptInfo(List<DeptVO> deptVOS,List<DeptVO> list) {
+		//如果有子级
+		if (list.size()>0){
+			deptVOS.addAll(list);
+			//遍历子级
+			for (int i = 0; i < list.size(); i++) {
+				//查看是否有子级
+				List<DeptVO> childList = baseMapper.securityDeptUnitList(list.get(i).getId(), null);
+				//如果有
+				if (childList.size()>0){
+					//递归
+					recursionDeptInfo(deptVOS,childList);
+				}
+			}
+		}
+		return deptVOS;
 	}
+
 
 	/**
 	 * 懒加载获取部门树形结构(包含用户数据)
@@ -241,17 +311,83 @@
 	 * @return
 	 */
 	@Override
-	public List<TreeNodes> lazyTreeUsers(String tenantId, Long parentId) {
-		Map<Long,TreeNodes> map = baseMapper.lazyTreeUsers(parentId);
-		System.out.println("map = " + map.size());
+	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==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(null, dept1.getId(), one.getJurisdiction());
+				}
+			}
+		}
+		//民警向民警汇报,需要南昌市及当前民警所在辖区的部门数据
+		if(type==3){
+			//当前取所有的民警数据
+			map = baseMapper.lazyTreeUsersPublicSecuritys(null,deptId,null);
+		}
 		List<TreeNodes> tree = new ArrayList<>();
-		map.forEach((id,treeNodes) ->{
-			if (map.containsKey(treeNodes.getParentId())){
-				map.get(treeNodes.getParentId()).getChildren().add(treeNodes);
+		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> selectInfos() {
+		return baseMapper.selectInfos();
+	}
+
+	@Override
+	public List<DeptVo> selDeptList() {
+		return baseMapper.selDeptList();
+	}
+
+
+	/**
+	 * 懒加载获取部门树形结构,根据辖区查询
+	 */
+	@Override
+	public List<DeptVO> lazyTreeJurisdiction(String jurisdiction, Long parentId) {
+		return ForestNodeMerger.merge(baseMapper.lazyTreeJurisdiction(jurisdiction,parentId));
+	}
+
+	/**
+	 * 懒加载获取单位树,电子围栏用
+	 * @param type 1:本单位  2:分公司  3:服务单位
+	 * @param deptId
+	 * @return
+	 */
+	@Override
+	public List<DeptVO> lazyTreeRail(Integer type, Long deptId) {
+		//查询本单位
+		if(type==1 || type==2){
+			return ForestNodeMerger.merge(baseMapper.securityDeptUnitList(null,deptId));
+		}
+		return ForestNodeMerger.merge(baseMapper.getDispatchUnitList(deptId));
+	}
 }

--
Gitblit v1.9.3