From 70a29ae28b85643e00a4b7fbf111a95646a24dc2 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Wed, 20 Mar 2024 17:20:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 6 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 90bdf3c..8da01be 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
@@ -36,6 +36,8 @@
 import org.springblade.modules.community.service.ICommunityService;
 import org.springblade.modules.grid.entity.GridEntity;
 import org.springblade.modules.grid.service.IGridService;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.property.entity.PropertyCompanyEntity;
 import org.springblade.modules.property.service.IPropertyCompanyService;
 import org.springblade.modules.system.entity.Dept;
@@ -52,6 +54,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -252,7 +255,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);
@@ -321,7 +324,7 @@
 	public Object dataHandle() {
 		// 查询所有的社区
 		QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("district_code","361102").eq("region_level",5);
+		queryWrapper.eq("district_code", "361102").eq("region_level", 5);
 		List<Region> list = regionService.list(queryWrapper);
 		// 遍历
 		for (Region region : list) {
@@ -340,7 +343,7 @@
 				QueryWrapper<Dept> deptQueryWrapper = new QueryWrapper<>();
 				deptQueryWrapper.eq("is_deleted", 0).eq("dept_name", region.getTownName());
 				Dept parentDept = getOne(deptQueryWrapper);
-				if (null!=parentDept){
+				if (null != parentDept) {
 					dept.setParentId(parentDept.getId());
 					dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
 				}
@@ -362,7 +365,7 @@
 	public Object dataHandleCommunity() {
 		// 查询所有的社区
 		QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("district_code","361102").eq("region_level",5);
+		queryWrapper.eq("district_code", "361102").eq("region_level", 5);
 		List<Region> list = regionService.list(queryWrapper);
 		// 遍历
 		for (Region region : list) {
@@ -406,11 +409,81 @@
 	@Override
 	public List<DeptUserTreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
 		// 查询数据
-		Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(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) {
+			// 通过派出所名称查询对应的警务网格信息
+			QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted", 0).eq("pcs_name", dept.getDeptName());
+			List<PoliceAffairsGridEntity> policeAffairsGridEntityList
+				= SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
+			// 遍历
+			for (PoliceAffairsGridEntity policeAffairsGridEntity : policeAffairsGridEntityList) {
+				Dept deptInfo = new Dept();
+				deptInfo.setTenantId("000000");
+				deptInfo.setDeptName(policeAffairsGridEntity.getCommunityName());
+				deptInfo.setFullName(policeAffairsGridEntity.getCommunityName());
+				deptInfo.setDeptCategory(1);
+				deptInfo.setDeptNature(1);
+				deptInfo.setParentId(dept.getId());
+				deptInfo.setAncestors(dept.getAncestors() + "," + dept.getId());
+				deptInfo.setRegionCode(policeAffairsGridEntity.getJwGridCode());
+				// 保存
+				save(deptInfo);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * 查询对应的派出所
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	@Override
+	public Dept getDeptByDeptIds(String deptId) {
+		return baseMapper.getDeptByDeptIds(deptId);
+	}
+
 }

--
Gitblit v1.9.3