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/service/impl/UserServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 14 deletions(-)

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