| 
					
				 | 
			
			
				@@ -1,19 +1,22 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.scheduling.annotation.Async; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.Employee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.Teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.OaUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.oa.OaFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.oa.entity.OAUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.oa.entity.PostDept; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.scheduling.annotation.Async; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,62 +26,121 @@ public class OaServiceImpl implements OaUserService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Async 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object addOaUser(Employee employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object addOaUser(SysUser user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OAUser oaUser = new OAUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(employee.getGender() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (oaUser.getPostDeptIds() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (user instanceof Employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Employee employee = (Employee) user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (employee.getGender() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (oaUser.getPostDeptIds() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}else if(user instanceof Teacher){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Teacher employee = (Teacher) user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setMecUserId(employee.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (employee.getGender() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (oaUser.getPostDeptIds() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return oaFeignService.register(oaUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object updateOaUser(Employee employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object updateOaUser(SysUser user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OAUser oaUser = new OAUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(Objects.nonNull(employee.getDeptId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(Objects.nonNull(employee.getDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(Objects.nonNull(employee.getPostDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user instanceof Employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	Employee employee = (Employee) user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (employee.getGender() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(Objects.nonNull(employee.getDeptId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(user instanceof Teacher){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	Teacher employee = (Teacher) user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setMecUserId(employee.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setUserName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setNickName(employee.getRealName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setPhone(employee.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (employee.getGender() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				oaUser.setSex(employee.getGender().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            oaUser.setAvatar(employee.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(Objects.nonNull(employee.getDeptId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setDeptId(employee.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oaUser.setPostIds(postIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return oaFeignService.updateUser(oaUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Async 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object delOaUser(Employee employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object delOaUser(Integer userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OAUser oaUser = new OAUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        oaUser.setMecUserId(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return oaFeignService.delUser(oaUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Async 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object reInsertOaUser(Employee employee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object reInsertOaUser(Integer userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OAUser oaUser = new OAUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        oaUser.setMecUserId(employee.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        oaUser.setMecUserId(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return oaFeignService.reInsertUser(oaUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |