DepartmentServiceImpl.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.goafanti.admin.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.goafanti.admin.service.DepartmentService;
  4. import com.goafanti.common.dao.DepartmentMapper;
  5. import com.goafanti.common.dao.WorkingHoursMapper;
  6. import com.goafanti.common.model.Department;
  7. import com.goafanti.common.model.WorkingHours;
  8. import com.goafanti.core.mybatis.BaseMybatisDao;
  9. import com.goafanti.core.shiro.token.TokenManager;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. @Service
  15. public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> implements DepartmentService {
  16. @Autowired
  17. private WorkingHoursMapper workingHoursMapper;
  18. @Autowired
  19. private DepartmentMapper departmentMapper;
  20. @Override
  21. public int addWorkingHours(WorkingHours in) {
  22. return workingHoursMapper.insertSelective(in);
  23. }
  24. @Override
  25. public int updateWorkingHours(WorkingHours in) {
  26. return workingHoursMapper.updateByPrimaryKeySelective(in);
  27. }
  28. @Override
  29. public int deleteWorkingHours(Integer id) {
  30. return workingHoursMapper.deleteByPrimaryKey(id);
  31. }
  32. @Override
  33. public List<WorkingHours> selectWorkingHours() {
  34. return workingHoursMapper.selectList();
  35. }
  36. @Override
  37. public WorkingHours getWorkingHours(String depId) {
  38. return workingHoursMapper.selectBydepId(depId);
  39. }
  40. @Override
  41. public boolean checkWorkingHoursType(WorkingHours in) {
  42. if (in.getType()!=null){
  43. List<WorkingHours> typeCount = workingHoursMapper.getTypeCount(in.getType());
  44. if(typeCount.size()>1) {
  45. return true;
  46. }else {
  47. if (in.getId()!=null){
  48. for (WorkingHours e : typeCount) {
  49. if (!e.getId().equals(in.getId())){
  50. return true;
  51. }
  52. }
  53. }
  54. }
  55. }
  56. return false;
  57. }
  58. @Override
  59. public boolean checkDepWorkingHouresType(Integer id) {
  60. int i=workingHoursMapper.getDepTypeCount(id);
  61. if(i>0) {
  62. return true;
  63. }
  64. return false;
  65. }
  66. @Override
  67. public List<String> selectMyDeps() {
  68. return selectCurrentDep(TokenManager.getAdminId());
  69. }
  70. private List<String> selectCurrentDep(String managerId){
  71. List<String> alldep = new ArrayList<>();
  72. List<String> superData = departmentMapper.selectCurrentDeps(managerId);
  73. if (!superData.isEmpty()){
  74. iterationDep(alldep,superData);
  75. }
  76. return alldep;
  77. }
  78. private void iterationDep(List<String> alldep, List<String> superData) {
  79. for (String dep : superData) {
  80. if (!alldep.contains(dep)){
  81. alldep.add(dep);
  82. List<String> deps2 = departmentMapper.selectSubDeps(dep);
  83. if (!deps2.isEmpty())iterationDep(alldep,deps2);
  84. }
  85. }
  86. }
  87. @Override
  88. public List<String> selectSubDeps(String deps) {
  89. List<String>ls= JSON.parseArray(deps,String.class);
  90. List<String> myAll=new ArrayList<>();
  91. List<String> my=selectMyDeps();
  92. if (ls!=null&&!my.isEmpty()){
  93. for (String dep : ls) {
  94. for (String dep2 : my) {
  95. if (dep.equals(dep2))myAll.add(dep);
  96. }
  97. }
  98. }
  99. return myAll;
  100. }
  101. public List<String> selectSubDeps(List<String> deps) {
  102. return comparePermissions(selectMyDeps(),deps);
  103. }
  104. @Override
  105. public List<String> comparePermissions(List<String> aDep, String deps) {
  106. List<String> myAll=new ArrayList<>();
  107. List<String> input=parseArray(deps);
  108. for (String s : aDep) {
  109. for (String in : input) {
  110. if (s.equals(in))myAll.add(s);
  111. }
  112. }
  113. return myAll;
  114. }
  115. public List<String> comparePermissions(List<String> aDep, List<String> input) {
  116. List<String> myAll=new ArrayList<>();
  117. for (String s : aDep) {
  118. for (String in : input) {
  119. if (s.equals(in))myAll.add(s);
  120. }
  121. }
  122. return myAll;
  123. }
  124. @Override
  125. public List<Department> selectSubordinateDeps(String depId){
  126. return departmentMapper.selectSubDepsList(depId);
  127. }
  128. @Override
  129. public List<String> parseArray(String deps) {
  130. return JSON.parseArray(deps,String.class);
  131. }
  132. }