| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package com.goafanti.admin.service.impl;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import com.goafanti.admin.bo.DepartmentComboBox;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.dao.DepartmentMapper;
- import com.goafanti.common.model.Department;
- import com.goafanti.core.shiro.token.TokenManager;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.goafanti.admin.service.DepartmentService;
- import com.goafanti.common.dao.WorkingHoursMapper;
- import com.goafanti.common.model.WorkingHours;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- @Service
- public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> implements DepartmentService {
- @Autowired
- private WorkingHoursMapper workingHoursMapper;
- @Autowired
- private DepartmentMapper departmentMapper;
- @Override
- public int addWorkingHours(WorkingHours in) {
- return workingHoursMapper.insertSelective(in);
- }
- @Override
- public int deleteWorkingHours(Integer id) {
- return workingHoursMapper.deleteByPrimaryKey(id);
- }
- @Override
- public List<WorkingHours> selectWorkingHours() {
- return workingHoursMapper.selectList();
- }
- @Override
- public WorkingHours getWorkingHours(String depId) {
- return workingHoursMapper.selectBydepId(depId);
- }
- @Override
- public boolean checkWorkingHoursType(Integer type) {
- int i=workingHoursMapper.getTypeCount(type);
- if(i>0) {
- return true;
- }
- return false;
- }
- @Override
- public boolean checkDepWorkingHouresType(Integer id) {
- int i=workingHoursMapper.getDepTypeCount(id);
- if(i>0) {
- return true;
- }
- return false;
- }
- @Override
- public List<Department> selectMyDeps() {
- if(TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
- return departmentMapper.selectAllDeps();
- else
- return selectCurrentDep(TokenManager.getAdminId());
- }
- public List<Department> selectSubDeps(String subId) {
- return selectSubDeps(subId,0);
- }
- @Override
- public List<Department> selectSubDeps(String subId,Integer type) {
- return selectSubDeps(subId,type,0);
- }
- @Override
- public List<Department> selectSubDeps(String subId,Integer type,Integer myShiro) {
- List<Department> list =departmentMapper.selectSubDeps(subId);
- List<Department> all=new ArrayList<>();
- if (type==0)all.add(departmentMapper.selectByPrimaryKey(subId));
- if (!list.isEmpty()){
- all.addAll(list);
- for (Department dep : list) {
- List<Department> l2=selectSubDeps(dep.getId(),1);
- if(!l2.isEmpty()){
- all.addAll(l2);
- }
- }
- }
- if (myShiro==1){
- List<Department>myAll=new ArrayList<>();
- List<Department> my=selectMyDeps();
- for (Department dep : all) {
- for (Department department : my) {
- if (dep.getId().equals(department.getId()))myAll.add(dep);
- }
- }
- all=myAll;
- }
- return all;
- }
- @Override
- public List<Department> getLowerDep(String depIds) {
- String[] ss=depIds.split(",");
- List<Department> ls=new ArrayList<>();
- Arrays.stream(ss).forEach(e ->{
- ls.addAll(selectSubDeps(e));
- });
- return ls;
- }
- private List<Department> selectCurrentDep(String managerId){
- List<Department> allData = new ArrayList<Department>();
- List<Department> superData = departmentMapper.selectCurrentDeps(managerId);
- if(superData != null && superData.size()>0){
- allData.addAll(superData);
- }
- selectSubDeps(allData,superData);
- return allData;
- }
- private List<Department> selectSubDeps(List<Department> allData,List<Department> superData){
- List<Department> subData = new ArrayList<>();
- String superIds = "";
- for(Department om : superData){
- if(!om.getId().equals(om.getSuperId())){
- superIds += om.getId() + ",";
- }
- }
- if(StringUtils.isNotBlank(superIds)) subData = departmentMapper.selectSubDeps(superIds.substring(0, superIds.length()-1));
- if(subData != null && subData.size()>0) {
- allData.addAll(subData);
- selectSubDeps(allData,subData);
- }
- return allData;
- }
- }
|