YgglServiceImpl.java 3.95 KB
Newer Older
1 2 3
package cn.timer.api.controller.yggl.service;

import java.util.Date;
4 5
import java.util.List;
import java.util.stream.Collectors;
6

7
import org.springframework.beans.factory.annotation.Autowired;
8 9 10 11 12 13
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;

import cn.hutool.core.bean.BeanUtil;
14 15 16
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
17 18
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.yggl.YgglMainLzb;
19
import cn.timer.api.bean.zzgl.ZzglBmgwM;
20
import cn.timer.api.config.enuminterface.YgEnumInterface;
21 22
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
23 24 25 26 27 28
import cn.timer.api.dto.yggl.LzygQueryDto;
import cn.timer.api.dto.yggl.YgzzDto;

@Service
public class YgglServiceImpl implements YgglService {

29 30 31 32 33 34
	@Autowired
	private YgglMainEmpMapper ygglMainEmpMapper;
	
	@Autowired
	private ZzglBmgwMMapper zzglBmgwMMapper;
	
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
	@Override
	public void applicationResignation(LzygQueryDto lzygQueryDto) {
		// TODO Auto-generated method stub
		Integer empNum = lzygQueryDto.getEmpNum();
		
		QueryWrapper<YgglMainEmp> queryWrapper = new QueryWrapper<YgglMainEmp>();
		queryWrapper.eq("emp_num", empNum).eq("org_code", lzygQueryDto.getOrgCode());
		YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(queryWrapper);
		YgglMainLzb ygglMainLzb = YgglMainLzb.builder().empNum(lzygQueryDto.getEmpNum()).build();
		// 移动员工表数据到离职表
		BeanUtil.copyProperties(ygglMainEmp, ygglMainLzb);
		ygglMainLzb.insert();

		UpdateWrapper<YgglMainEmp> updateWrapper = new UpdateWrapper<YgglMainEmp>();
		updateWrapper.eq("emp_num", empNum);
		UpdateWrapper<YgglMainLzb> updateWrapper1 = new UpdateWrapper<YgglMainLzb>();
		updateWrapper1.eq("emp_num", empNum);
		YgglMainEmp.builder().empNum(lzygQueryDto.getEmpNum()).jobStatus(YgEnumInterface.jobStatus.YILIZHI.getType()).build().update(updateWrapper);
		YgglMainLzb.builder().jobStatus(YgEnumInterface.jobStatus.LIZHIZHONG.getType()).lzTime(lzygQueryDto.getLzTime())
				.lzyy(lzygQueryDto.getLzyy()).lzbz(lzygQueryDto.getLzbz()).build().update(updateWrapper1);
	}

	@Override
	public void applicationRegularization(YgzzDto ygzzDto) {
		// TODO Auto-generated method stub
		YgglMainEmp.builder()
		.jobStatus(2)
		.zzTime(ygzzDto.getZzTime())
		.sjzzTime(new Date())
		.zzRemark(ygzzDto.getZzRemark())
		.build().update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum()));
	}

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
	@Override
	public Integer selectLeaderEmpNumById(Integer orgCode, Integer id, Integer leave) {
		// TODO Auto-generated method stub
		YgglMainEmp mainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
				.select(YgglMainEmp::getBmgwId)
				.eq(YgglMainEmp::getEmpNum, id));
		Integer gWId = mainEmp != null ? mainEmp.getBmgwId() : null;
		
		// 企业所有部门岗位
		List<ZzglBmgwM> listBM = zzglBmgwMMapper.selectList(new QueryWrapper<ZzglBmgwM>().lambda()
				.eq(ZzglBmgwM::getOrgCode, orgCode));
		
		// 岗位
		ZzglBmgwM gW = CollUtil.getFirst(listBM.stream().filter(bM -> bM.getId().equals(gWId)).collect(Collectors.toList()));
		
		// 岗位id
		Integer baseBmgwId = gW != null ? gW.getUpId() : null;
		
		// 部门列表
//		List<ZzglBmgwM> listbM = ListUtil.toList();
		// 指定 主管id
		Integer leaderId = null;
		
		for (int i = 0,n = leave; i < n; i++) {
			ZzglBmgwM bmgwM = getLeaderEmp(listBM, baseBmgwId);
			baseBmgwId = bmgwM != null ? bmgwM.getId() : null;
			if (i == n-1) {
//				listbM.add(bmgwM);
				leaderId = baseBmgwId;
			}
		}
		
		return leaderId;
	}
	
	private ZzglBmgwM getLeaderEmp(List<ZzglBmgwM> listBM, Integer baseBmgwId) {
		ZzglBmgwM zzglBmgwM =  baseBmgwId != null ? 
				CollUtil.getFirst(listBM.stream()
						.filter(bM -> bM.getId().equals(baseBmgwId)).collect(Collectors.toList()))
				: null;
		
		return zzglBmgwM;
		
	}
	

114
}