SysUserServiceImpl.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. package com.ruoyi.system.service.impl;
  2. import java.sql.SQLException;
  3. import java.sql.SQLIntegrityConstraintViolationException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.stream.Collectors;
  7. import javax.validation.Validator;
  8. import com.ruoyi.common.core.domain.entity.SysDept;
  9. import com.ruoyi.common.enums.UserRolesType;
  10. import com.ruoyi.project.domain.ProjectStaff;
  11. import com.ruoyi.project.domain.ProjectTask;
  12. import com.ruoyi.project.mapper.ProjectStaffMapper;
  13. import com.ruoyi.project.mapper.ProjectStaffRecordMapper;
  14. import com.ruoyi.project.mapper.ProjectTaskMapper;
  15. import com.ruoyi.system.mapper.*;
  16. import com.ruoyi.system.service.ISysDeptService;
  17. import com.ruoyi.weChat.service.WeChatService;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import org.springframework.util.CollectionUtils;
  24. import com.ruoyi.common.annotation.DataScope;
  25. import com.ruoyi.common.constant.UserConstants;
  26. import com.ruoyi.common.core.domain.entity.SysRole;
  27. import com.ruoyi.common.core.domain.entity.SysUser;
  28. import com.ruoyi.common.exception.ServiceException;
  29. import com.ruoyi.common.utils.SecurityUtils;
  30. import com.ruoyi.common.utils.StringUtils;
  31. import com.ruoyi.common.utils.bean.BeanValidators;
  32. import com.ruoyi.common.utils.spring.SpringUtils;
  33. import com.ruoyi.system.domain.SysPost;
  34. import com.ruoyi.system.domain.SysUserPost;
  35. import com.ruoyi.system.domain.SysUserRole;
  36. import com.ruoyi.system.service.ISysConfigService;
  37. import com.ruoyi.system.service.ISysUserService;
  38. /**
  39. * 用户 业务层处理
  40. *
  41. * @author ruoyi
  42. */
  43. @Service
  44. public class SysUserServiceImpl implements ISysUserService
  45. {
  46. private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
  47. @Autowired
  48. private SysUserMapper userMapper;
  49. @Autowired
  50. private SysRoleMapper roleMapper;
  51. @Autowired
  52. private SysPostMapper postMapper;
  53. @Autowired
  54. private SysUserRoleMapper userRoleMapper;
  55. @Autowired
  56. private SysUserPostMapper userPostMapper;
  57. @Autowired
  58. private ISysConfigService configService;
  59. @Autowired
  60. private ISysDeptService deptService;
  61. @Autowired
  62. private WeChatService weChatService;
  63. @Autowired
  64. protected Validator validator;
  65. @Autowired
  66. private ProjectStaffMapper projectStaffMapper;
  67. @Autowired
  68. private ProjectStaffRecordMapper projectStaffRecordMapper;
  69. @Autowired
  70. private ProjectTaskMapper projectTaskMapper;
  71. /**
  72. * 根据条件分页查询用户列表
  73. *
  74. * @param user 用户信息
  75. * @return 用户信息集合信息
  76. */
  77. @Override
  78. @DataScope(deptAlias = "d", userAlias = "u")
  79. public List<SysUser> selectUserList(SysUser user)
  80. {
  81. Long companyId = deptService.selectCompanyByDeptId();
  82. if (companyId!=null)user.setCompanyId(companyId);
  83. return userMapper.selectUserList(user);
  84. }
  85. /**
  86. * 根据条件分页查询已分配用户角色列表
  87. *
  88. * @param user 用户信息
  89. * @return 用户信息集合信息
  90. */
  91. @Override
  92. @DataScope(deptAlias = "d", userAlias = "u")
  93. public List<SysUser> selectAllocatedList(SysUser user)
  94. {
  95. return userMapper.selectAllocatedList(user);
  96. }
  97. /**
  98. * 根据条件分页查询未分配用户角色列表
  99. *
  100. * @param user 用户信息
  101. * @return 用户信息集合信息
  102. */
  103. @Override
  104. @DataScope(deptAlias = "d", userAlias = "u")
  105. public List<SysUser> selectUnallocatedList(SysUser user)
  106. {
  107. return userMapper.selectUnallocatedList(user);
  108. }
  109. /**
  110. * 通过用户名查询用户
  111. *
  112. * @param userName 用户名
  113. * @return 用户对象信息
  114. */
  115. @Override
  116. public SysUser selectUserByUserName(String userName)
  117. {
  118. return userMapper.selectUserByUserName(userName);
  119. }
  120. /**
  121. * 通过用户ID查询用户
  122. *
  123. * @param userId 用户ID
  124. * @return 用户对象信息
  125. */
  126. @Override
  127. public SysUser selectUserById(Long userId)
  128. {
  129. return userMapper.selectUserById(userId);
  130. }
  131. /**
  132. * 查询用户所属角色组
  133. *
  134. * @param userName 用户名
  135. * @return 结果
  136. */
  137. @Override
  138. public String selectUserRoleGroup(String userName)
  139. {
  140. List<SysRole> list = roleMapper.selectRolesByUserName(userName);
  141. if (CollectionUtils.isEmpty(list))
  142. {
  143. return StringUtils.EMPTY;
  144. }
  145. return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
  146. }
  147. /**
  148. * 查询用户所属岗位组
  149. *
  150. * @param userName 用户名
  151. * @return 结果
  152. */
  153. @Override
  154. public String selectUserPostGroup(String userName)
  155. {
  156. List<SysPost> list = postMapper.selectPostsByUserName(userName);
  157. if (CollectionUtils.isEmpty(list))
  158. {
  159. return StringUtils.EMPTY;
  160. }
  161. return list.stream().map(SysPost::getPostName).collect(Collectors.joining(","));
  162. }
  163. /**
  164. * 校验用户名称是否唯一
  165. *
  166. * @param user 用户信息
  167. * @return 结果
  168. */
  169. @Override
  170. public boolean checkUserNameUnique(SysUser user)
  171. {
  172. Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
  173. SysUser info = userMapper.checkUserNameUnique(user.getUserName());
  174. if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
  175. {
  176. return UserConstants.NOT_UNIQUE;
  177. }
  178. return UserConstants.UNIQUE;
  179. }
  180. /**
  181. * 校验手机号码是否唯一
  182. *
  183. * @param user 用户信息
  184. * @return
  185. */
  186. @Override
  187. public boolean checkPhoneUnique(SysUser user)
  188. {
  189. Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
  190. SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
  191. if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
  192. {
  193. return UserConstants.NOT_UNIQUE;
  194. }
  195. return UserConstants.UNIQUE;
  196. }
  197. /**
  198. * 校验email是否唯一
  199. *
  200. * @param user 用户信息
  201. * @return
  202. */
  203. @Override
  204. public boolean checkEmailUnique(SysUser user)
  205. {
  206. Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
  207. SysUser info = userMapper.checkEmailUnique(user.getEmail());
  208. if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
  209. {
  210. return UserConstants.NOT_UNIQUE;
  211. }
  212. return UserConstants.UNIQUE;
  213. }
  214. /**
  215. * 校验用户是否允许操作
  216. *
  217. * @param user 用户信息
  218. */
  219. @Override
  220. public void checkUserAllowed(SysUser user)
  221. {
  222. if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
  223. {
  224. throw new ServiceException("不允许操作超级管理员用户");
  225. }
  226. }
  227. /**
  228. * 校验用户是否有数据权限
  229. *
  230. * @param userId 用户id
  231. */
  232. @Override
  233. public void checkUserDataScope(Long userId)
  234. {
  235. if (!SysUser.isAdmin(SecurityUtils.getUserId()))
  236. {
  237. SysUser user = new SysUser();
  238. user.setUserId(userId);
  239. List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
  240. if (StringUtils.isEmpty(users))
  241. {
  242. throw new ServiceException("没有权限访问用户数据!");
  243. }
  244. }
  245. }
  246. /**
  247. * 新增保存用户信息
  248. *
  249. * @param user 用户信息
  250. * @return 结果
  251. */
  252. @Override
  253. @Transactional
  254. public int insertUser(SysUser user)
  255. {
  256. // 新增用户信息
  257. int rows = userMapper.insertUser(user);
  258. // 新增用户岗位关联
  259. insertUserPost(user);
  260. // 新增用户与角色管理
  261. insertUserRole(user);
  262. return rows;
  263. }
  264. /**
  265. * 注册用户信息
  266. *
  267. * @param user 用户信息
  268. * @return 结果
  269. */
  270. @Override
  271. public boolean registerUser(SysUser user)
  272. {
  273. return userMapper.insertUser(user) > 0;
  274. }
  275. /**
  276. * 修改保存用户信息
  277. *
  278. * @param user 用户信息
  279. * @return 结果
  280. */
  281. @Override
  282. @Transactional
  283. public int updateUser(SysUser user)
  284. {
  285. Long userId = user.getUserId();
  286. // 删除用户与角色关联
  287. userRoleMapper.deleteUserRoleByUserId(userId);
  288. // 新增用户与角色管理
  289. insertUserRole(user);
  290. // 删除用户与岗位关联
  291. userPostMapper.deleteUserPostByUserId(userId);
  292. // 新增用户与岗位管理
  293. insertUserPost(user);
  294. //修改关联名称
  295. updateUserName(user);
  296. return userMapper.updateUser(user);
  297. }
  298. private void updateUserName(SysUser user) {
  299. SysUser sysUser = userMapper.selectUserById(user.getUserId());
  300. if (!sysUser.getNickName().equals(user.getNickName())){
  301. //修改所有名字
  302. projectStaffMapper.updateNameByAid(user);
  303. projectStaffRecordMapper.updateNameByAid(user);
  304. projectTaskMapper.updateAdminNameByAid(user);
  305. List<ProjectStaff> projectStaffs = projectStaffMapper.selectByAid(user.getUserId());
  306. for (ProjectStaff projectStaff : projectStaffs) {
  307. projectTaskMapper.updateStaffName(projectStaff.getPid());
  308. }
  309. }
  310. }
  311. /**
  312. * 用户授权角色
  313. *
  314. * @param userId 用户ID
  315. * @param roleIds 角色组
  316. */
  317. @Override
  318. @Transactional
  319. public void insertUserAuth(Long userId, Long[] roleIds)
  320. {
  321. userRoleMapper.deleteUserRoleByUserId(userId);
  322. insertUserRole(userId, roleIds);
  323. }
  324. /**
  325. * 修改用户状态
  326. *
  327. * @param user 用户信息
  328. * @return 结果
  329. */
  330. @Override
  331. public int updateUserStatus(SysUser user)
  332. {
  333. return userMapper.updateUser(user);
  334. }
  335. /**
  336. * 修改用户基本信息
  337. *
  338. * @param user 用户信息
  339. * @return 结果
  340. */
  341. @Override
  342. public int updateUserProfile(SysUser user)
  343. {
  344. return userMapper.updateUser(user);
  345. }
  346. /**
  347. * 修改用户头像
  348. *
  349. * @param userName 用户名
  350. * @param avatar 头像地址
  351. * @return 结果
  352. */
  353. @Override
  354. public boolean updateUserAvatar(String userName, String avatar)
  355. {
  356. return userMapper.updateUserAvatar(userName, avatar) > 0;
  357. }
  358. /**
  359. * 重置用户密码
  360. *
  361. * @param user 用户信息
  362. * @return 结果
  363. */
  364. @Override
  365. public int resetPwd(SysUser user)
  366. {
  367. return userMapper.updateUser(user);
  368. }
  369. /**
  370. * 重置用户密码
  371. *
  372. * @param userName 用户名
  373. * @param password 密码
  374. * @return 结果
  375. */
  376. @Override
  377. public int resetUserPwd(String userName, String password)
  378. {
  379. return userMapper.resetUserPwd(userName, password);
  380. }
  381. /**
  382. * 新增用户角色信息
  383. *
  384. * @param user 用户对象
  385. */
  386. public void insertUserRole(SysUser user)
  387. {
  388. this.insertUserRole(user.getUserId(), user.getRoleIds());
  389. }
  390. /**
  391. * 新增用户岗位信息
  392. *
  393. * @param user 用户对象
  394. */
  395. public void insertUserPost(SysUser user)
  396. {
  397. Long[] posts = user.getPostIds();
  398. if (StringUtils.isNotEmpty(posts))
  399. {
  400. // 新增用户与岗位管理
  401. List<SysUserPost> list = new ArrayList<SysUserPost>(posts.length);
  402. for (Long postId : posts)
  403. {
  404. SysUserPost up = new SysUserPost();
  405. up.setUserId(user.getUserId());
  406. up.setPostId(postId);
  407. list.add(up);
  408. }
  409. userPostMapper.batchUserPost(list);
  410. }
  411. }
  412. /**
  413. * 新增用户角色信息
  414. *
  415. * @param userId 用户ID
  416. * @param roleIds 角色组
  417. */
  418. public void insertUserRole(Long userId, Long[] roleIds)
  419. {
  420. if (StringUtils.isNotEmpty(roleIds))
  421. {
  422. // 新增用户与角色管理
  423. List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
  424. for (Long roleId : roleIds)
  425. {
  426. SysUserRole ur = new SysUserRole();
  427. ur.setUserId(userId);
  428. ur.setRoleId(roleId);
  429. list.add(ur);
  430. }
  431. userRoleMapper.batchUserRole(list);
  432. }
  433. }
  434. /**
  435. * 通过用户ID删除用户
  436. *
  437. * @param userId 用户ID
  438. * @return 结果
  439. */
  440. @Override
  441. @Transactional
  442. public int deleteUserById(Long userId)
  443. {
  444. // 删除用户与角色关联
  445. userRoleMapper.deleteUserRoleByUserId(userId);
  446. // 删除用户与岗位表
  447. userPostMapper.deleteUserPostByUserId(userId);
  448. return userMapper.deleteUserById(userId);
  449. }
  450. /**
  451. * 批量删除用户信息
  452. *
  453. * @param userIds 需要删除的用户ID
  454. * @return 结果
  455. */
  456. @Override
  457. @Transactional
  458. public int deleteUserByIds(Long[] userIds)
  459. {
  460. for (Long userId : userIds)
  461. {
  462. checkUserAllowed(new SysUser(userId));
  463. checkUserDataScope(userId);
  464. }
  465. // 删除用户与角色关联
  466. userRoleMapper.deleteUserRole(userIds);
  467. // 删除用户与岗位关联
  468. userPostMapper.deleteUserPost(userIds);
  469. return userMapper.deleteUserByIds(userIds);
  470. }
  471. /**
  472. * 导入用户数据
  473. *
  474. * @param userList 用户数据列表
  475. * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
  476. * @param operName 操作用户
  477. * @return 结果
  478. */
  479. @Override
  480. public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
  481. {
  482. if (StringUtils.isNull(userList) || userList.size() == 0)
  483. {
  484. throw new ServiceException("导入用户数据不能为空!");
  485. }
  486. int successNum = 0;
  487. int failureNum = 0;
  488. StringBuilder successMsg = new StringBuilder();
  489. StringBuilder failureMsg = new StringBuilder();
  490. String password = configService.selectConfigByKey("sys.user.initPassword");
  491. Long company = deptService.selectCompanyByDeptId();
  492. for (SysUser user : userList)
  493. {
  494. try
  495. {
  496. if (StringUtils.isEmpty(user.getDeptName())){
  497. throw new ServiceException("部门数据异常");
  498. }
  499. if (StringUtils.isEmpty(user.getFullJob())){
  500. throw new ServiceException("全职/兼职数据异常");
  501. }
  502. SysUser sysUser1 = userMapper.selectUserByUserName(user.getUserName());
  503. if (sysUser1 != null){
  504. throw new ServiceException("用户名(账号)已存在");
  505. }
  506. // 验证是否存在这个用户
  507. SysUser u = userMapper.checkJobNumber(user.getJobNumber(),company);
  508. if (StringUtils.isNull(u)){
  509. user.setPassword(SecurityUtils.encryptPassword(password));
  510. user.setCreateBy(operName);
  511. user.setUserId(null);
  512. if (user.getSuperiorName()!=null){
  513. SysUser sysUser = userMapper.selectByNikeName(user.getSuperiorName(),company);
  514. if (sysUser != null){
  515. user.setSuperiorId(sysUser.getUserId());
  516. }
  517. }
  518. if (user.getDeptName()!=null){
  519. SysDept sysDept = deptService.selectByDepName(user.getDeptName(), company);
  520. if (sysDept ==null){
  521. throw new ServiceException("部门数据异常,找不到部门");
  522. }else {
  523. user.setDeptId(sysDept.getDeptId());
  524. }
  525. }
  526. userMapper.insertUser(user);
  527. if (user.getRoleName()!=null){
  528. SysRole sysRole = roleMapper.selectByRoleName(user.getRoleName());
  529. if (sysRole !=null){
  530. List<SysUserRole> list=new ArrayList<>();
  531. SysUserRole sur = new SysUserRole();
  532. sur.setUserId(user.getUserId());
  533. sur.setRoleId(sysRole.getRoleId());
  534. list.add(sur);
  535. userRoleMapper.batchUserRole(list);
  536. }
  537. }
  538. successNum++;
  539. successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
  540. } else if (isUpdateSupport) {
  541. // BeanValidators.validateWithException(validator, user);
  542. checkUserAllowed(u);
  543. checkUserDataScope(u.getUserId());
  544. user.setUserId(u.getUserId());
  545. user.setUpdateBy(operName);
  546. if (user.getSuperiorName()!=null&&!user.getSuperiorName().equals(u.getSuperiorName())){
  547. SysUser sysUser = userMapper.selectByNikeName(user.getSuperiorName(),company);
  548. if (sysUser != null){
  549. user.setSuperiorId(sysUser.getUserId());
  550. }
  551. }
  552. if (user.getDeptName()!=null&&!user.getDeptName().equals(u.getDeptName())){
  553. SysDept sysDept = deptService.selectByDepName(user.getDeptName(), company);
  554. if (sysDept ==null){
  555. throw new ServiceException("部门数据异常,找不到部门");
  556. }else {
  557. user.setDeptId(sysDept.getDeptId());
  558. }
  559. }
  560. if (user.getRoleName()!=null&&!user.getRoleName().equals(u.getRoleName())){
  561. SysRole sysRole = roleMapper.selectByRoleName(user.getRoleName());
  562. if (sysRole !=null){
  563. userRoleMapper.deleteUserRoleByUserId(user.getUserId());
  564. List<SysUserRole> list=new ArrayList<>();
  565. SysUserRole sur = new SysUserRole();
  566. sur.setUserId(user.getUserId());
  567. sur.setRoleId(sysRole.getRoleId());
  568. list.add(sur);
  569. userRoleMapper.batchUserRole(list);
  570. }
  571. }
  572. userMapper.updateUser(user);
  573. successNum++;
  574. successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
  575. }
  576. else
  577. {
  578. failureNum++;
  579. failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
  580. }
  581. }
  582. catch (Exception e)
  583. {
  584. failureNum++;
  585. String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
  586. if (e instanceof ServiceException){
  587. failureMsg.append(msg + e.getMessage());
  588. }else if (e instanceof SQLException){
  589. failureMsg.append("数据异常");
  590. }
  591. log.error(msg, e);
  592. }
  593. }
  594. if (failureNum > 0)
  595. {
  596. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  597. throw new ServiceException(failureMsg.toString());
  598. }
  599. else
  600. {
  601. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
  602. }
  603. return successMsg.toString();
  604. }
  605. @Override
  606. public Object selectName(String name,Integer type){
  607. if (name==null||name.length()<2)return new ArrayList<>();
  608. Long roleId=null;
  609. if (type==null)type=0;
  610. if (type==0)roleId= UserRolesType.COMMON.getCode();
  611. else if (type==1)roleId=UserRolesType.MANAGE.getCode();
  612. if (SecurityUtils.isSuperAdmin()){
  613. roleId=UserRolesType.ADMIN.getCode();;
  614. }
  615. Long companyId = deptService.selectCompanyByDeptId();
  616. return userMapper.selectName(name,roleId,companyId);
  617. }
  618. @Override
  619. public String setOpenId(String code) {
  620. System.out.println(code);
  621. String openId = weChatService.getOpenId(code);
  622. SysUser user = new SysUser();
  623. user.setUserId(SecurityUtils.getUserId());
  624. user.setOpenId(openId);
  625. userMapper.updateUser(user);
  626. return openId;
  627. }
  628. @Override
  629. public boolean checkJobNumber(SysUser user) {
  630. Long companyId = getCompany(user.getDeptId());
  631. log.debug("company="+companyId);
  632. SysUser sysUser = userMapper.checkJobNumber(user.getJobNumber(),companyId);
  633. if (sysUser==null){
  634. return false;
  635. }else if (StringUtils.isNotNull(user.getUserId())&&user.getUserId().equals(sysUser.getUserId())){
  636. return false;
  637. }
  638. return true;
  639. }
  640. @Override
  641. public boolean checkProject(Long[] userIds) {
  642. for (Long userId : userIds) {
  643. int i = userMapper.selectParticipateProjectSum(userId);
  644. if (i>0){
  645. return true;
  646. }
  647. }
  648. return false;
  649. }
  650. private Long getCompany(Long deptId) {
  651. log.debug("depID="+deptId);
  652. SysDept sysDept = deptService.selectDeptById(deptId);
  653. String ancestors = sysDept.getAncestors();
  654. log.debug("anc="+ancestors);
  655. String[] split = ancestors.split(",");
  656. if (split.length>2)return Long.valueOf(split[2]);
  657. else return deptId;
  658. }
  659. }