From 79dd20bae9e8af17d5d66b67da4ca6ebc56cd9dd Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 26 六月 2024 11:15:43 +0800
Subject: [PATCH] 用户管理:部门接口修改上传

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
index f2a737f..7a92d79 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
@@ -1,5 +1,6 @@
 package com.vci.frameworkcore.compatibility.impl;
 
+import com.vci.corba.common.PLException;
 import com.vci.corba.omd.data.BusinessObject;
 import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
 import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
@@ -20,10 +21,13 @@
 import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.web.service.WebBoServiceI;
+import com.vci.web.util.Func;
+import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
@@ -43,6 +47,12 @@
 	 */
 	@Autowired
 	private WebBoServiceI boService;
+
+	/**
+	 * 骞冲彴璋冪敤瀹㈡埛绔�
+	 */
+	@Autowired
+	private PlatformClientUtil platformClientUtil;
 
 	/**
 	 * 瀵硅薄鎿嶄綔宸ュ叿绫�
@@ -179,7 +189,7 @@
 		if(queryMap == null){
 			queryMap = new HashMap<>();
 		}
-		List<OrgDeptForPlatform1> roles = new ArrayList<>();
+		List<OrgDeptForPlatform1> deptForPlatform1s = new ArrayList<>();
 		if(userOid.contains(",")){
 			Map<String, String> finalQueryMap = queryMap;
 			WebUtil.switchCollectionForOracleIn(WebUtil.str2List(userOid)).stream().forEach(userOids->{
@@ -191,7 +201,7 @@
 				VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(conditionMap,OrgDeptForPlatform1.class);
 				List<OrgDeptForPlatform1> roleForPlatform1s = boService.selectByQueryWrapper(queryWrapper, OrgDeptForPlatform1.class);
 				if(!CollectionUtils.isEmpty(roleForPlatform1s)){
-					roles.addAll(roleForPlatform1s);
+					deptForPlatform1s.addAll(roleForPlatform1s);
 				}
 			});
 		}else {
@@ -200,9 +210,9 @@
 		VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(queryMap,OrgDeptForPlatform1.class);
 		List<OrgDeptForPlatform1> roleForPlatform1s = boService.selectByQueryWrapper(queryWrapper, OrgDeptForPlatform1.class);
 		if(!CollectionUtils.isEmpty(roleForPlatform1s)){
-			roles.addAll(roleForPlatform1s);
+			deptForPlatform1s.addAll(roleForPlatform1s);
 		}
-		return deptDO2VOs(roles);
+		return deptDO2VOs(deptForPlatform1s);
 	}
 
 	/**
@@ -212,13 +222,13 @@
      * @return 閮ㄩ棬鐨勬樉绀哄璞�
      */
 	@Override
-	public OrgDepartmentVO listDeptByUserOid(String userOid,
+	public List<OrgDepartmentVO> listDeptByUserOid(String userOid,
 			Map<String, String> queryMap) {
 		List<OrgDepartmentVO> departmentVOS = listDeptByUserOid(userOid, queryMap, false);
 		if(CollectionUtils.isEmpty(departmentVOS)){
-			return null;
+			return new ArrayList<>();
 		}
-		return departmentVOS.get(0);
+		return departmentVOS;
 	}
 
 	/**
@@ -412,4 +422,39 @@
 		return dataGrid;
 	}
 
+	/**
+	 * 淇濆瓨閮ㄩ棬瑙掕壊鍏宠仈淇℃伅锛屽甫鏌ラ噸鍔熻兘
+	 * @param userId 鐢ㄦ埛id
+	 * @param deptIds 閮ㄩ棬id
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean saveUserDepts(String userId, List<String> deptIds) throws PLException {
+		if(Func.isBlank(userId) || Func.isEmpty(deptIds)){
+			return false;
+		}
+		List<String> repeatDeptOidList = new ArrayList<>();
+		//寰幆杩涜鏌ラ噸锛岄伩鍏峣n澶т簬1000
+		WebUtil.switchCollectionForOracleIn(deptIds).stream().forEach(deptoids->{
+			String sql = "select pluseruid,pldeptuid from pluserdept where pluseruid = " + userId
+					+ " and " + "pldeptuid in ("+WebUtil.toInSql(deptoids.toArray(new String[0]))+")";
+			List<BusinessObject> cbos = boService.queryBySql(sql, null);
+			if(!CollectionUtils.isEmpty(cbos)){
+				cbos.stream().forEach(cbo->{
+					repeatDeptOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"pldeptuid"));
+				});
+			}
+
+		});
+		//浠庡嵆灏嗚鎵ц淇濆瓨鐨勯儴闂╫id涓Щ闄ゅ綋鍓嶇敤鎴峰凡缁忓瓨鍦ㄥ叧鑱斿叧绯荤殑鐨勯儴闂╫id
+		deptIds.removeAll(repeatDeptOidList);
+		if(Func.isNotEmpty(deptIds)){
+			for (String deptId : deptIds){
+				platformClientUtil.getFrameworkService().saveUserDept(new String[]{userId}, deptId,null);
+			}
+		}
+		return true;
+	}
+
 }

--
Gitblit v1.9.3