ZzglBmgwMServiceImpl.java 4.37 KB
Newer Older
1 2
package cn.timer.api.controller.zzgl.service;

3
import java.util.ArrayList;
4 5 6
import java.util.HashSet;
import java.util.List;
import java.util.Set;
7
import java.util.stream.Collectors;
8 9 10 11

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

12 13
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
14
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
15 16 17 18 19
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;

import cn.hutool.core.collection.ListUtil;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
20
import cn.timer.api.bean.zzgl.ZzglMenu;
21 22
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
23
import cn.timer.api.dao.zzgl.ZzglLogDgjlMapper;
24
import cn.timer.api.dao.zzgl.ZzglMenuMapper;
25
import cn.timer.api.dto.zzgl.UpEmpDeptDto;
26 27 28 29 30 31 32 33 34 35 36 37 38

/**
 * 部门岗位 服务逻辑层
 * 
 * @author Tang
 */
@Service
public class ZzglBmgwMServiceImpl implements ZzglBmgwMService {

	@Autowired
	private ZzglBmgwMMapper zzglBmgwMMapper;
	
	@Autowired
39 40 41
	private ZzglMenuMapper zzglMenuMapper;
	
	@Autowired
42 43
	private YgglMainEmpMapper ygglMainEmpMapper;
	
44 45 46
	@Autowired
	private ZzglLogDgjlMapper zzglLogDgjlMapper;
	
tangzhaoqian committed
47 48 49
	/**
	 * 根据 员工 的 岗位,以及上面所有的部门id,返回integer数组
	 */
50 51 52 53 54 55 56 57 58
	@Override
	public List<Integer> empNumupGetDepts(Integer orgCode,Integer empNum) {
		Set<Integer> lanzi = new HashSet<Integer>();
		//所有部门岗位
		List<ZzglBmgwM> bmgws = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper).eq(ZzglBmgwM::getOrgCode, orgCode).list();
		//个人岗位
		YgglMainEmp one = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
				.select(YgglMainEmp::getBmgwId)
		.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum).one();
59
		Integer getId = one != null ? one.getBmgwId() : null;
ilal committed
60
//		System.out.println(getId);
61
		Set<Integer> all = one != null ? empNumupdept2(lanzi, bmgws, getId) : new HashSet<Integer>();
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
		all.add(getId);
		return ListUtil.toList(all);
	}
	
	//遍历
	public Set<Integer> empNumupdept2(Set<Integer> lanzi,List<ZzglBmgwM> bmgws,Integer getId) {
		for (ZzglBmgwM z : bmgws) {
			if (getId.equals(z.getId())) {
				lanzi.add(getId);
				if (z.getUpId()==null || z.getUpId() == 0) {
					return lanzi;
				}
				getId = z.getUpId();
				empNumupdept2(lanzi, bmgws, getId);
			}
		}
		return lanzi;
	}
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

	/**
	 * 调岗
	 */
	@Override
	public void applicationTransferPosition(Integer empNum,Integer orgCode,UpEmpDeptDto upEmpDeptDto) {
		// TODO Auto-generated method stub
		Integer dpetId = upEmpDeptDto.getDpetId();
		List<Integer> empNums = new ArrayList<Integer>();
		empNums.add(empNum);
		YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build();
		
		UpdateWrapper<YgglMainEmp> updateWrapper = new UpdateWrapper<YgglMainEmp>();
		updateWrapper.set("bmgw_id", dpetId).eq("org_code", orgCode).in("emp_num", empNum);
		zzglLogDgjlMapper.insertbyaddemp(empNums, empNum, dpetId, orgCode,
				dpetId == null || dpetId == 0 ? "岗位删除员工" : upEmpDeptDto.getIsdg() == null ? "岗位添加员工" : "员工调岗");
		ygglMainEmp.update(updateWrapper);
	}
98 99 100 101 102 103 104 105 106

	@Override
	public List<Integer> selectMenuByPostId(Integer id) {
		
		List<ZzglMenu> list = zzglMenuMapper.selectMenuByPostId(id);
		
		List<Integer> menuList = list.stream().map(ZzglMenu::getMenuId).collect(Collectors.toList());
		return menuList;
	}
107
	
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
	@Override
	public List<YgglMainEmp> selectOtherlistent(Integer orgCode, Integer id){
		ArrayList<Integer> list = new ArrayList<Integer>();
		List<ZzglBmgwM> zzglBmgwMs = ZzglBmgwM.builder().build().selectList(new QueryWrapper<ZzglBmgwM>().lambda()
				.eq(ZzglBmgwM::getOrgCode, orgCode));
		list.add(id);
		ZzglBmgwM.getDepts(list, id, zzglBmgwMs);

		if (list == null || list.size() == 0) {
			return null;
		} else {
			LambdaQueryWrapper<YgglMainEmp> ygglMainEmpsLambdaQueryWrapper = new LambdaQueryWrapper<>();
			ygglMainEmpsLambdaQueryWrapper
					.select(YgglMainEmp::getId, YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getPhone,
							YgglMainEmp::getBmgwId)
					.eq(YgglMainEmp::getOrgCode, orgCode).and(i -> i.in(YgglMainEmp::getBmgwId, list.toArray()));
			List<YgglMainEmp> ygglMainEmps = YgglMainEmp.builder().build().selectList(ygglMainEmpsLambdaQueryWrapper);
			return ygglMainEmps;
		}

	}
	
130
}