diff --git a/box-test/src/main/java/com/ruoyi/test/conrtroller/GetEcologyInfoTestController.java b/box-test/src/main/java/com/ruoyi/test/conrtroller/GetEcologyInfoTestController.java index faf741d0d..0d52737dc 100644 --- a/box-test/src/main/java/com/ruoyi/test/conrtroller/GetEcologyInfoTestController.java +++ b/box-test/src/main/java/com/ruoyi/test/conrtroller/GetEcologyInfoTestController.java @@ -2,6 +2,7 @@ package com.ruoyi.test.conrtroller; import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,27 +17,20 @@ public class GetEcologyInfoTestController extends BaseController { private ISysUserService userService; @RequestMapping("/anon/getEcologyDept") - public String getEcologyDept() throws Exception { + public AjaxResult getEcologyDept() throws Exception { String url="http://192.168.2.85:90/api/hrm/resful/getHrmdepartmentWithPage"; String params="{\"params\":{\"pagesize\":999999}}"; //return sendPost(url,params); - int result = deptService.syncEcologyDept(url,params); - if(result==200){ - return "同步成功"; - } - return "同步失败"; + return deptService.syncEcologyDept(url,params); + } @RequestMapping("/anon/getEcologyUser") - public String getEcologyUser(){ + public AjaxResult getEcologyUser(){ String url="http://192.168.2.85:90/api/hrm/resful/getHrmUserInfoWithPage"; String params="{\"params\":{\"pagesize\":999999}}"; - int result = userService.syncEcologyUser(url,params); - if(result==200){ - return "同步成功"; - } - return "同步失败"; + return userService.syncEcologyUser(url,params); } /* *//*public Map sendPostWithRest(String url,String params){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index e123bee99..f751e33b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,6 +1,8 @@ package com.ruoyi.web.controller.system; import java.util.List; + +import com.ruoyi.system.service.ISysConfigService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -37,6 +39,9 @@ public class SysDeptController extends BaseController @Autowired private ISysDeptService deptService; + @Autowired + ISysConfigService configService; + @RequiresPermissions("system:dept:view") @GetMapping() public String dept() @@ -157,7 +162,7 @@ public class SysDeptController extends BaseController /** * 选择部门树 - * + * * @param deptId 部门ID * @param excludeId 排除ID */ @@ -212,14 +217,9 @@ public class SysDeptController extends BaseController @RequiresPermissions("system:dept:sync") @PostMapping("/syncDept") @ResponseBody - public AjaxResult syncDept() - { - String url="http://192.168.2.85:90/api/hrm/resful/getHrmdepartmentWithPage"; - String params="{\"params\":{\"pagesize\":999999}}"; - int result = deptService.syncEcologyDept(url,params); - if(result==200){ - return AjaxResult.success("同步Ecology部门成功,返回状态码:"+result); - } - return AjaxResult.error("同步Ecology部门失败,返回状态码:"+result); + public AjaxResult syncDept() { + String url = "http://192.168.2.85:90/api/hrm/resful/getHrmdepartmentWithPage"; + String params = "{\"params\":{\"pagesize\":999999}}"; + return deptService.syncEcologyDept(url, params); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 1a6a487fc..cd51e33ff 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -2,6 +2,8 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.stream.Collectors; + +import com.ruoyi.system.service.ISysConfigService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -52,6 +54,9 @@ public class SysUserController extends BaseController @Autowired private SysPasswordService passwordService; + @Autowired + private ISysConfigService configService; + @RequiresPermissions("system:user:view") @GetMapping() public String user() @@ -293,14 +298,10 @@ public class SysUserController extends BaseController @RequiresPermissions("system:user:sync") @PostMapping("/syncUser") @ResponseBody - public AjaxResult syncDept() - { - String url="http://192.168.2.85:90/api/hrm/resful/getHrmUserInfoWithPage"; - String params="{\"params\":{\"pagesize\":999999}}"; - int result = userService.syncEcologyUser(url,params); - if(result==200){ - return AjaxResult.success("Ecology人员同步成功,返回状态码:"+result); - } - return AjaxResult.error("Ecology人员同步失败,返回状态码:"+result); + public AjaxResult syncUser() { + String url = "http://192.168.2.85:90/api/hrm/resful/getHrmUserInfoWithPage"; + String params = "{\"params\":{\"pagesize\":999999}}"; + return userService.syncEcologyUser(url, params); } + } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/main.html b/ruoyi-admin/src/main/resources/templates/main.html index 6ec038b68..3b5096ee6 100644 --- a/ruoyi-admin/src/main/resources/templates/main.html +++ b/ruoyi-admin/src/main/resources/templates/main.html @@ -33,7 +33,7 @@ -
+

[[${wordsContent}]]

--  《[[${wordsOrigin}]]》 · [[${wordsAuthor}]]
diff --git a/ruoyi-admin/src/main/resources/templates/system/dept/dept.html b/ruoyi-admin/src/main/resources/templates/system/dept/dept.html index 566ba20a8..4cc4b0948 100644 --- a/ruoyi-admin/src/main/resources/templates/system/dept/dept.html +++ b/ruoyi-admin/src/main/resources/templates/system/dept/dept.html @@ -35,7 +35,7 @@ 新增 - + 修改 @@ -96,6 +96,7 @@ { title: '操作', align: 'left', + visible: showAction(), formatter: function(value, row, index) { if (row.parentId != 0) { var actions = []; @@ -112,30 +113,44 @@ $.treeTable.init(options); }); + function showAction(){ + if(deptSyncType == "1"){ + return false; + } + return true; + } + + function editDept(){ + if(deptSyncType =="0") { + $.operate.edit(); + }else { + alert("已启用同步Ecology部门信息,禁止手动修改部门!") + } + } function addDept(){ if(deptSyncType =="0") { $.operate.add(999999); }else { - alert("系统参数已启用同步Ecology部门信息,禁止手动新增部门!") + alert("已启用同步Ecology部门信息,禁止手动新增部门!") } } function syncDept() { - if(deptSyncType =="1") { + /*if(deptSyncType =="1") {*/ $.ajax({ type: 'POST', url: ctx + "system/dept/syncDept", - data: JSON.stringify(""), //beauty是字符串 + data: JSON.stringify(""), contentType: "application/json", dataType: "json", success: function (message) { alert(JSON.stringify(message)); //将JSON对象转换为字符串 } }); - }else { - alert("系统参数未启用同步Ecology部门!") - } + /*}else { + alert("系统未启用同步Ecology部门!"); + }*/ }; diff --git a/ruoyi-admin/src/main/resources/templates/system/user/edit.html b/ruoyi-admin/src/main/resources/templates/system/user/edit.html index 3d598dbd4..afd2919ad 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/edit.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/edit.html @@ -15,7 +15,7 @@
- +
@@ -37,7 +37,7 @@
- +
@@ -48,7 +48,7 @@
- +
@@ -91,8 +91,8 @@
- +
@@ -133,6 +133,7 @@ diff --git a/ruoyi-admin/src/main/resources/templates/system/user/user.html b/ruoyi-admin/src/main/resources/templates/system/user/user.html index f7a58d70d..10ae93007 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/user.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/user.html @@ -96,6 +96,7 @@ var editFlag = [[${@permission.hasPermi('system:user:edit')}]]; var removeFlag = [[${@permission.hasPermi('system:user:remove')}]]; var resetPwdFlag = [[${@permission.hasPermi('system:user:resetPwd')}]]; + var userSyncType = [[${#strings.defaultString(@config.getKey('sys.user.sync'), 0)}]]; var prefix = ctx + "system/user"; $(function() { @@ -191,7 +192,7 @@ }; $.table.init(options); } - + function queryDeptTree() { var url = ctx + "system/dept/treeData"; @@ -267,6 +268,7 @@ } function syncUser() { + /*if(userSyncType=="1") {*/ $.ajax({ type: 'POST', url: ctx + "system/user/syncUser", @@ -277,6 +279,9 @@ alert(JSON.stringify(message)); //将JSON对象转换为字符串 } }); + /*}else { + alert("系统未启用同步Ecology部门!"); + }*/ }; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 7deaf4055..258f75511 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service; import java.util.List; + +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.Ztree; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; @@ -111,5 +113,5 @@ public interface ISysDeptService /** * Ecology部门信息同步 */ - public int syncEcologyDept(String url,String params); + public AjaxResult syncEcologyDept(String url, String params); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 0492ec362..e4c214331 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service; import java.util.List; + +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.domain.SysUserRole; @@ -208,7 +210,7 @@ public interface ISysUserService /** * Ecology人员信息同步 */ - public int syncEcologyUser(String url,String params); + public AjaxResult syncEcologyUser(String url, String params); /** * 查询用户列表 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 3a6bc28ba..1bcd2f9ff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -4,16 +4,22 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.Ztree; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.system.domain.EcologyDept; import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.IWechatApiService; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,6 +41,15 @@ public class SysDeptServiceImpl implements ISysDeptService @Autowired private SysDeptMapper deptMapper; + @Autowired + private ISysConfigService sysconfig; + + @Autowired + private IWechatApiService wechatApiService; + + @Autowired + ISysUserService userService; + /** * 查询部门管理数据 * @@ -66,7 +81,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门管理树(排除下级) * - * @param deptId 部门ID + * @param dept 部门 * @return 所有部门信息 */ @Override @@ -320,9 +335,24 @@ public class SysDeptServiceImpl implements ISysDeptService * Ecology部门信息同步 */ @Override - public int syncEcologyDept(String url,String params) { - int result= deptSync(HttpUtils.sendPostWithRest(url,params)); - return result; + public AjaxResult syncEcologyDept(String url, String params) { + String msg="同步OA部门失败!"; + List userList=new ArrayList<>(); + userList.add(ShiroUtils.getLoginName().equals("admin")?"359":String.valueOf(ShiroUtils.getUserId())); + if( ! sysconfig.selectConfigByKey("sys.dept.sync").equals("1")){ + msg="OA部门同步失败!系统未开启OA部门同步!"; + wechatApiService.SendTextMessageToWechatUser(userList,msg); + return AjaxResult.success(msg,"false"); + } + int result =deptSync(HttpUtils.sendPostWithRest(url,params)); + if( result==200) + { + return AjaxResult.success("OA部门同步成功!",result); + } + + wechatApiService.SendTextMessageToWechatUser(userList,msg+"result:"+result); + return AjaxResult.error(msg,result); + } @SuppressWarnings("unchecked") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index eaf08e3ab..5045313b8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -6,10 +6,12 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.common.utils.security.Md5Utils; @@ -17,6 +19,7 @@ import com.ruoyi.system.domain.*; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.IWechatApiService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -56,6 +59,9 @@ public class SysUserServiceImpl implements ISysUserService @Autowired private ISysConfigService configService; + @Autowired + private IWechatApiService wechatApiService; + /** * 根据条件分页查询用户列表 * @@ -535,9 +541,24 @@ public class SysUserServiceImpl implements ISysUserService * @param params */ @Override - public int syncEcologyUser(String url, String params) { + public AjaxResult syncEcologyUser(String url, String params) { + String msg="OA人员同步失败!"; + List userList=new ArrayList<>(); + userList.add(ShiroUtils.getLoginName().equals("admin")?"359":String.valueOf(ShiroUtils.getUserId())); + if( ! configService.selectConfigByKey("sys.user.sync").equals("1")){ + msg="OA人员同步失败!系统未开启OA人员同步!"; + wechatApiService.SendTextMessageToWechatUser(userList,msg); + return AjaxResult.success(msg,"false"); + } int result= userSync(HttpUtils.sendPostWithRest(url,params)); - return result; + if( result==200) + { + return AjaxResult.success("OA人员同步成功!",result); + } + + wechatApiService.SendTextMessageToWechatUser(userList,msg+"result:"+result); + return AjaxResult.error(msg,result); + } /** @@ -569,10 +590,15 @@ public class SysUserServiceImpl implements ISysUserService List ecologyUserList= new Gson().fromJson(dataMap.get("dataList").toString(), new TypeToken>(){}.getType()); */ + //获取原同步的用户 + SysUser oldSysUser=new SysUser(); + oldSysUser.setUserType("02"); + List oldSysUserList=userMapper.selectUserLists(oldSysUser); + //删除从Ecology同步过来(用户类型为02)的用户 userMapper.deleteEcologySyncUser(); - //同步Ecology部门信息 + //同步Ecology人员信息 SysUser user = new SysUser(); for(EcologyUser ecologyUser:ecologyUserList){ if(ecologyUser.getSubcompanyid1().equals("1") && StringUtils.isNotEmpty(ecologyUser.getLoginid())) { //只取分部ID为“1”的员工 @@ -593,6 +619,17 @@ public class SysUserServiceImpl implements ISysUserService user.setPhonenumber(ecologyUser.getMobile()); user.setStatus(ecologyUser.getStatus().equals("5")?"1":"0"); //Ecology为离职状态5,则无效 user.setDelFlag("0"); + for(SysUser oldUser:oldSysUserList){ + if(String.valueOf(oldUser.getUserId()).equals(ecologyUser.getId())){ + user.setAvatar(oldUser.getAvatar()); + user.setPassword(oldUser.getPassword()); + user.setSalt(oldUser.getSalt()); + user.setLoginDate(oldUser.getLoginDate()); + user.setLoginIp(oldUser.getLoginIp()); + user.setPwdUpdateDate(oldUser.getPwdUpdateDate()); + user.setRemark(oldUser.getRemark()); + } + } userMapper.insertUser(user); } }