ZzglBmgwMServiceImpl.java 4.48 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
package cn.timer.api.controller.zzgl.service;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

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

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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;
import cn.timer.api.bean.zzgl.ZzglMenu;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
import cn.timer.api.dao.zzgl.ZzglLogDgjlMapper;
import cn.timer.api.dao.zzgl.ZzglMenuMapper;
import cn.timer.api.dto.zzgl.UpEmpDeptDto;

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

	@Autowired
	private ZzglBmgwMMapper zzglBmgwMMapper;

	@Autowired
	private ZzglMenuMapper zzglMenuMapper;

	@Autowired
	private YgglMainEmpMapper ygglMainEmpMapper;

	@Autowired
	private ZzglLogDgjlMapper zzglLogDgjlMapper;

	/**
	 * 根据 员工 的 岗位,以及上面所有的部门id,返回integer数组
	 */
	@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();
		Integer getId = one != null ? one.getBmgwId() : null;
//		System.out.println(getId);
		Set<Integer> all = one != null ? empNumupdept2(lanzi, bmgws, getId) : new HashSet<Integer>();
		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;
	}

	/**
	 * 调岗
	 */
	@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);
		String comm;
		Integer type;
		if(dpetId == null || dpetId == 0 ){
			comm="岗位删除员工";
			type=4;
		}else if(upEmpDeptDto.getIsdg() == null){
			comm="岗位添加员工";
			type=5;
		}else{
			comm="员工调岗";
			type=2;
		}
		zzglLogDgjlMapper.insertbyaddemp(empNums,empNum, dpetId,null, orgCode,comm,type);
		ygglMainEmp.update(updateWrapper);
	}

	@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;
	}

	@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;
		}

	}

}