From da0e45a47b2b6e05734db2e62ed61987871323d3 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 05 Feb 2024 15:06:28 +0800
Subject: [PATCH] 用户机构调整绑定警格处理调整

---
 src/main/java/org/springblade/modules/system/mapper/DeptMapper.java            |    7 +++
 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml             |    8 ++++
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java |   52 +++++++++++++++++++-------
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java |   10 +++++
 src/main/java/org/springblade/modules/system/service/IDeptService.java         |    7 +++
 5 files changed, 70 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
index dde1c82..c52324e 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -98,4 +98,11 @@
 	 * @return
 	 */
 	List<DeptVO> getGridDeptAndParentList();
+
+	/**
+	 * 查询对应的派出所
+	 * @param deptId
+	 * @return
+	 */
+    Dept getDeptByDeptIds(@Param("deptId") String deptId);
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
index cc0951e..c22b69a 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -194,4 +194,12 @@
         where bd.dept_name like '%网格%'
     </select>
 
+    <!--查询对应的派出所-->
+    <select id="getDeptByDeptIds" resultType="org.springblade.modules.system.entity.Dept">
+        select * from blade_dept
+        where is_deleted = 0
+		and locate(id,#{deptId})>0
+		and dept_name like '%派出所%'
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java
index ec2f554..8a8aab9 100644
--- a/src/main/java/org/springblade/modules/system/service/IDeptService.java
+++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -146,4 +146,11 @@
 	 * 数据处理(社区绑定)-- 处理社区(派出所下)
 	 */
     Object dataHandleCommunityByPolice();
+
+	/**
+	 * 查询对应的派出所
+	 * @param deptId
+	 * @return
+	 */
+	Dept getDeptByDeptIds(String deptId);
 }
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 9e51e45..027413b 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
@@ -450,4 +450,14 @@
 		}
 		return null;
 	}
+
+	/**
+	 * 查询对应的派出所
+	 * @param deptId
+	 * @return
+	 */
+	@Override
+	public Dept getDeptByDeptIds(String deptId) {
+		return baseMapper.getDeptByDeptIds(deptId);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index fda9a49..59bb6f0 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -623,15 +623,15 @@
 				// 判断角色
 				if (!userInfo.getRoleId().contains("1727864411451359233")){
 					userInfo.setRoleId(userInfo.getRoleId() + ",1727864411451359233");
-					// 更新机构
-					setDeptId(userInfo,userExcel);
-					// 更新
-					updateById(userInfo);
-					// 更新用户机构绑定
-					submitUserDept(userInfo);
-					// 更新社区民警绑定信息
-					updateGridBind(userInfo);
 				}
+				// 更新机构
+				setDeptId(userInfo,userExcel);
+				// 更新
+				updateById(userInfo);
+				// 更新用户机构绑定
+				submitUserDept(userInfo);
+				// 更新社区民警绑定信息
+				updateGridBind(userInfo);
 			}else {
 				// 插入用户角色
 				User user = new User();
@@ -675,12 +675,7 @@
 			Dept dept = SpringUtil.getBean(IDeptService.class).getOne(wrapper);
 			if (null!=dept){
 				if (null!=user.getId()){
-					// 更新设置机构
-					if (!Strings.isBlank(user.getDeptId())){
-						if (!user.getDeptId().contains(dept.getId().toString())){
-							user.setDeptId(user.getDeptId() + "," + dept.getId());
-						}
-					}
+					DeptNotHandle(user, dept);
 				}else {
 					user.setDeptId(dept.getId().toString());
 				}
@@ -689,6 +684,35 @@
 	}
 
 	/**
+	 * 机构不为空时处理
+	 * @param user
+	 * @param dept
+	 */
+	public void DeptNotHandle(User user, Dept dept) {
+		// 更新设置机构
+		if (!Strings.isBlank(user.getDeptId())){
+			// 查询对应的派出所(去掉)
+			Dept deptPcs = SpringUtil.getBean(IDeptService.class).getDeptByDeptIds(user.getDeptId());
+			if (null!=deptPcs) {
+				// 如果存在需要去掉派出所的机构id
+				List<String> list = new ArrayList<>(Arrays.asList(user.getDeptId().split(",")));
+				// 先删除派出所对应的机构ID
+				if (list.contains(deptPcs.getId().toString())){
+					list.remove(deptPcs.getId().toString());
+					user.setDeptId(String.join(",",list));
+				}
+				if (!user.getDeptId().contains(dept.getId().toString())) {
+					user.setDeptId(user.getDeptId() + "," + dept.getId());
+				}
+			}else {
+				if (!user.getDeptId().contains(dept.getId().toString())) {
+					user.setDeptId(user.getDeptId() + "," + dept.getId());
+				}
+			}
+		}
+	}
+
+	/**
 	 * 更新社区民警绑定信息
 	 * @param userExcel
 	 * @param user

--
Gitblit v1.9.3