DepartmentServiceImpl.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.goafanti.admin.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import com.goafanti.admin.bo.DepartmentComboBox;
  6. import com.goafanti.common.constant.AFTConstants;
  7. import com.goafanti.common.dao.DepartmentMapper;
  8. import com.goafanti.common.model.Department;
  9. import com.goafanti.core.shiro.token.TokenManager;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import com.goafanti.admin.service.DepartmentService;
  14. import com.goafanti.common.dao.WorkingHoursMapper;
  15. import com.goafanti.common.model.WorkingHours;
  16. import com.goafanti.core.mybatis.BaseMybatisDao;
  17. @Service
  18. public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> implements DepartmentService {
  19. @Autowired
  20. private WorkingHoursMapper workingHoursMapper;
  21. @Autowired
  22. private DepartmentMapper departmentMapper;
  23. @Override
  24. public int addWorkingHours(WorkingHours in) {
  25. return workingHoursMapper.insertSelective(in);
  26. }
  27. @Override
  28. public int deleteWorkingHours(Integer id) {
  29. return workingHoursMapper.deleteByPrimaryKey(id);
  30. }
  31. @Override
  32. public List<WorkingHours> selectWorkingHours() {
  33. return workingHoursMapper.selectList();
  34. }
  35. @Override
  36. public WorkingHours getWorkingHours(String depId) {
  37. return workingHoursMapper.selectBydepId(depId);
  38. }
  39. @Override
  40. public boolean checkWorkingHoursType(Integer type) {
  41. int i=workingHoursMapper.getTypeCount(type);
  42. if(i>0) {
  43. return true;
  44. }
  45. return false;
  46. }
  47. @Override
  48. public boolean checkDepWorkingHouresType(Integer id) {
  49. int i=workingHoursMapper.getDepTypeCount(id);
  50. if(i>0) {
  51. return true;
  52. }
  53. return false;
  54. }
  55. @Override
  56. public List<Department> selectMyDeps() {
  57. if(TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
  58. return departmentMapper.selectAllDeps();
  59. else
  60. return selectCurrentDep(TokenManager.getAdminId());
  61. }
  62. public List<Department> selectSubDeps(String subId) {
  63. return selectSubDeps(subId,0);
  64. }
  65. @Override
  66. public List<Department> selectSubDeps(String subId,Integer type) {
  67. return selectSubDeps(subId,type,0);
  68. }
  69. @Override
  70. public List<Department> selectSubDeps(String subId,Integer type,Integer myShiro) {
  71. List<Department> list =departmentMapper.selectSubDeps(subId);
  72. List<Department> all=new ArrayList<>();
  73. if (type==0)all.add(departmentMapper.selectByPrimaryKey(subId));
  74. if (!list.isEmpty()){
  75. all.addAll(list);
  76. for (Department dep : list) {
  77. List<Department> l2=selectSubDeps(dep.getId(),1);
  78. if(!l2.isEmpty()){
  79. all.addAll(l2);
  80. }
  81. }
  82. }
  83. if (myShiro==1){
  84. List<Department>myAll=new ArrayList<>();
  85. List<Department> my=selectMyDeps();
  86. for (Department dep : all) {
  87. for (Department department : my) {
  88. if (dep.getId().equals(department.getId()))myAll.add(dep);
  89. }
  90. }
  91. all=myAll;
  92. }
  93. return all;
  94. }
  95. @Override
  96. public List<Department> getLowerDep(String depIds) {
  97. String[] ss=depIds.split(",");
  98. List<Department> ls=new ArrayList<>();
  99. Arrays.stream(ss).forEach(e ->{
  100. ls.addAll(selectSubDeps(e));
  101. });
  102. return ls;
  103. }
  104. private List<Department> selectCurrentDep(String managerId){
  105. List<Department> allData = new ArrayList<Department>();
  106. List<Department> superData = departmentMapper.selectCurrentDeps(managerId);
  107. if(superData != null && superData.size()>0){
  108. allData.addAll(superData);
  109. }
  110. selectSubDeps(allData,superData);
  111. return allData;
  112. }
  113. private List<Department> selectSubDeps(List<Department> allData,List<Department> superData){
  114. List<Department> subData = new ArrayList<>();
  115. String superIds = "";
  116. for(Department om : superData){
  117. if(!om.getId().equals(om.getSuperId())){
  118. superIds += om.getId() + ",";
  119. }
  120. }
  121. if(StringUtils.isNotBlank(superIds)) subData = departmentMapper.selectSubDeps(superIds.substring(0, superIds.length()-1));
  122. if(subData != null && subData.size()>0) {
  123. allData.addAll(subData);
  124. selectSubDeps(allData,subData);
  125. }
  126. return allData;
  127. }
  128. }