FrameExclusiveUserService.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. package com.idea.oa.searchuser;
  2. import com.rockstar.biz.model.BizMain;
  3. import com.rockstar.biz.model.BizUser;
  4. import com.rockstar.biz.service.BizMainService;
  5. import com.rockstar.biz.service.BizUserService;
  6. import com.rockstar.frame.model.FramePost;
  7. import com.rockstar.frame.model.FrameUser;
  8. import com.rockstar.frame.model.FrameUserExample;
  9. import com.rockstar.frame.service.FramePostService;
  10. import com.rockstar.frame.service.FrameUserService;
  11. import com.rockstar.shiro.util.ShiroUtils;
  12. import com.rockstar.system.model.SysDept;
  13. import com.rockstar.system.service.SysDeptService;
  14. import com.rockstar.util.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.*;
  18. @Service
  19. public class FrameExclusiveUserService {
  20. //文件mapper
  21. @Autowired
  22. private SysDeptService sysDeptService;
  23. @Autowired
  24. private FrameUserService frameUserService;
  25. @Autowired
  26. private FramePostService framePostService;
  27. @Autowired
  28. private BizMainService bizMainService;
  29. @Autowired
  30. private BizUserService bizUserService;
  31. //按组织
  32. public List<Map<String, Object>> deptRecursion(String parentid,String groupId){
  33. List<Map<String, Object>> result = new ArrayList<>();
  34. SysDept reqData = new SysDept();
  35. reqData.setGroupId(groupId);
  36. reqData.setParentId(parentid);
  37. List<SysDept> deptList = sysDeptService.listAll(reqData);
  38. FrameUser fuser = null;
  39. if(deptList.size() > 0){
  40. for (SysDept sysDept : deptList) {
  41. //部门
  42. Map<String, Object> dept = new HashMap<>();
  43. dept.put("id", sysDept.getId());
  44. dept.put("label", sysDept.getDeptName());
  45. dept.put("selectType", false);
  46. dept.put("children", deptRecursion(sysDept.getId(),groupId));
  47. result.add(dept);
  48. }
  49. //人员
  50. fuser = new FrameUser();
  51. fuser.setDelFlag("0");
  52. fuser.setStatus("1");
  53. fuser.setDepartment(parentid);
  54. List<FrameUser> userList = frameUserService.listAll(fuser, null);
  55. if (userList.size() > 0) {
  56. for (FrameUser frameUser : userList) {
  57. Map<String, Object> user = new HashMap<>();
  58. user.put("id", frameUser.getId());
  59. user.put("label", frameUser.getTruename());
  60. user.put("selectType", true);
  61. result.add(user);
  62. }
  63. }
  64. } else {
  65. //人员
  66. fuser = new FrameUser();
  67. fuser.setDelFlag("0");
  68. fuser.setStatus("1");
  69. fuser.setGroupId(groupId);
  70. fuser.setDepartment(parentid);
  71. List<FrameUser> userList = frameUserService.listAll(fuser, null);
  72. if (userList.size() > 0) {
  73. for (FrameUser frameUser : userList) {
  74. Map<String, Object> user = new HashMap<>();
  75. user.put("id", frameUser.getId());
  76. user.put("label", frameUser.getTruename());
  77. user.put("selectType", true);
  78. result.add(user);
  79. }
  80. }
  81. }
  82. return result;
  83. }
  84. //按岗位
  85. public List<Map<String, Object>> postRecursion(String groupId){
  86. List<Map<String, Object>> result = new ArrayList<>();
  87. FramePost reqDate = new FramePost();
  88. reqDate.setStatus("0");
  89. reqDate.setGroupId(groupId);
  90. List<FramePost> postList = framePostService.listAll(reqDate, null);
  91. for (FramePost framePost : postList) {
  92. Map<String, Object> post = new HashMap<>();
  93. post.put("id", framePost.getId());
  94. post.put("label", framePost.getPostName());
  95. post.put("selectType", false);
  96. //组织人员
  97. FrameUser postFrameUser = new FrameUser();
  98. postFrameUser.setDelFlag("0");
  99. postFrameUser.setStatus("1");
  100. postFrameUser.setGroupId(groupId);
  101. postFrameUser.setPosts(framePost.getId());
  102. List<FrameUser> userList = frameUserService.listAll(postFrameUser, framePost.getId());
  103. if(userList.size()>0){
  104. List<Map<String, Object>> children = new ArrayList<>();
  105. for (FrameUser frameUser : userList) {
  106. Map<String, Object> user = new HashMap<>();
  107. user.put("id", frameUser.getId());
  108. user.put("label", frameUser.getTruename());
  109. user.put("selectType", true);
  110. children.add(user);
  111. }
  112. post.put("children", children);
  113. }
  114. result.add(post);
  115. }
  116. return result;
  117. }
  118. //我的下属
  119. public List<Map<String, Object>> userRecursion(FrameUser user){
  120. List<Map<String, Object>> result = new ArrayList<>();
  121. FrameUserExample reqDate = new FrameUserExample();
  122. FrameUserExample.Criteria criteria = reqDate.createCriteria();
  123. List<String> strings = frameUserService.genStaffUserIds(user.getId());
  124. Iterator<String> iter = strings.iterator();
  125. while (iter.hasNext()) {
  126. String item = iter.next();
  127. if (item.equals(user.getId())) {
  128. iter.remove();
  129. }
  130. }
  131. criteria.andStatusEqualTo("1");
  132. criteria.andIdIn(strings);
  133. List<FrameUser> userList = frameUserService.selectByExample(reqDate);
  134. if(userList.size() > 0){
  135. for (FrameUser frameUser : userList) {
  136. Map<String, Object> userMap = new HashMap<>();
  137. userMap.put("id", frameUser.getId());
  138. userMap.put("label", frameUser.getTruename());
  139. userMap.put("selectType", true);
  140. result.add(userMap);
  141. }
  142. return result;
  143. }else{
  144. return null;
  145. }
  146. }
  147. public List<Map<String, Object>> getUserListGroupType(String groupType,String groupId) {
  148. List<Map<String, Object>> result = new ArrayList<>();
  149. List<Map<String, Object>> all = new ArrayList<>();
  150. Map<String,Object> allMap = new HashMap<>();
  151. allMap.put("id", "0");
  152. allMap.put("label", "全部");
  153. allMap.put("selectType", false);
  154. if("1".equals(groupType)){ //按组织
  155. all = deptRecursion("0",groupId);
  156. allMap.put("children", all);
  157. result.add(allMap);
  158. }else if("2".equals(groupType)){
  159. //按岗位
  160. all = postRecursion(groupId);
  161. allMap.put("children", all);
  162. result.add(allMap);
  163. }else if("3".equals(groupType)){
  164. //我的下属
  165. FrameUser nowUser = frameUserService.selectByPrimaryKey(ShiroUtils.getUserId());
  166. if(null != nowUser){
  167. all = userRecursion(nowUser);
  168. allMap.put("children", all);
  169. result.add(allMap);
  170. }
  171. }else if("4".equals(groupType)){
  172. //我的部门
  173. FrameUser nowUser = frameUserService.selectByPrimaryKey(ShiroUtils.getUserId());
  174. if(null != nowUser){
  175. if(StringUtils.isNotBlank(nowUser.getDepartment())){
  176. all = deptRecursion(nowUser.getDepartment(),groupId);
  177. allMap.put("children", all);
  178. result.add(allMap);
  179. }
  180. }
  181. }
  182. return result;
  183. }
  184. public List<Map<String, Object>> getBizUserList(){
  185. List<Map<String, Object>> result = new ArrayList<>();
  186. List<BizMain> bizMains = bizMainService.listAll(new BizMain());
  187. List<BizUser> bizUsers = bizUserService.listAll(new BizUser());
  188. List<Map<String, Object>> all = new ArrayList<>();
  189. for(BizMain bizMain:bizMains){
  190. Map<String, Object> userMap = new HashMap<>();
  191. userMap.put("id", bizMain.getId());
  192. userMap.put("label", bizMain.getBusinessName());
  193. userMap.put("selectType", false);
  194. userMap.put("children", bizUserList(bizUsers,bizMain.getId()));
  195. all.add(userMap);
  196. }
  197. Map<String,Object> allMap = new HashMap<>();
  198. allMap.put("id", "0");
  199. allMap.put("label", "全部");
  200. allMap.put("selectType", false);
  201. allMap.put("children", all);
  202. result.add(allMap);
  203. return result;
  204. }
  205. public List<Map<String, Object>> bizUserList(List<BizUser> bizUsers,String bizMainId){
  206. List<Map<String, Object>> result = new ArrayList<>();
  207. for(BizUser bizUser:bizUsers){
  208. if(bizUser.getMainId().equals(bizMainId)){
  209. Map<String,Object> user = new HashMap<>();
  210. user.put("id", bizUser.getId());
  211. user.put("label", bizUser.getDispName());
  212. user.put("selectType", true);
  213. result.add(user);
  214. }
  215. }
  216. return result;
  217. }
  218. // 获取我及我的下属id
  219. public List<String> getMyBelow(List<String> users, String userId){
  220. users.add(userId);
  221. FrameUserExample example = new FrameUserExample();
  222. example.createCriteria().andLeaderEqualTo(userId).andDelFlagEqualTo("0").andStatusEqualTo("1");
  223. List<FrameUser> userList = frameUserService.selectByExample(example);
  224. if(null == userList || null == userList)
  225. return users;
  226. for (FrameUser user : userList) {
  227. getMyBelow(users, user.getId());
  228. }
  229. return users;
  230. }
  231. // 获取我的直系下属
  232. public List<FrameUser> getUserBranch(String userId){
  233. FrameUserExample example = new FrameUserExample();
  234. example.createCriteria().andLeaderEqualTo(userId).andStatusEqualTo("1");
  235. List<FrameUser> userList = frameUserService.selectByExample(example);
  236. return userList;
  237. }
  238. // 获取我的所有下属
  239. public void getUserBranchAll(String userId, List<String> userList){
  240. FrameUserExample example = new FrameUserExample();
  241. example.createCriteria().andLeaderEqualTo(userId).andStatusEqualTo("1");
  242. List<FrameUser> users = frameUserService.selectByExample(example);
  243. for (FrameUser user : users) {
  244. userList.add(user.getId());
  245. getUserBranchAll(user.getId(), userList);
  246. }
  247. }
  248. }