YgglServiceImpl.java 4.28 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
import cn.hutool.core.collection.CollUtil;
15 16
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.yggl.YgglMainLzb;
17
import cn.timer.api.bean.zzgl.ZzglBmgwM;
18
import cn.timer.api.config.enuminterface.YgEnumInterface;
tangzhaoqian committed
19
import cn.timer.api.config.enuminterface.YgEnumInterface.jobStatus;
20 21
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
22 23
import cn.timer.api.dto.yggl.LzygQueryDto;
import cn.timer.api.dto.yggl.YgzzDto;
tangzhaoqian committed
24
import cn.timer.api.utils.ResultUtil;
25 26 27 28

@Service
public class YgglServiceImpl implements YgglService {

29 30 31 32 33 34
	@Autowired
	private YgglMainEmpMapper ygglMainEmpMapper;
	
	@Autowired
	private ZzglBmgwMMapper zzglBmgwMMapper;
	
35 36 37
	@Override
	public void applicationResignation(LzygQueryDto lzygQueryDto) {
		// TODO Auto-generated method stub
tangzhaoqian committed
38
		
39
		Integer empNum = lzygQueryDto.getEmpNum();
tangzhaoqian committed
40 41 42 43 44 45 46 47 48
		Integer orgCode = lzygQueryDto.getOrgCode();

		YgglMainEmp ygglMainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
				.eq(YgglMainEmp::getEmpNum, empNum)
				.eq(YgglMainEmp::getOrgCode, orgCode));
		
//		if (ygglMainEmp.getJobStatus() == jobStatus.LIZHIZHONG.getType()) {
//			return ResultUtil.success("你已在离职中");
//		}
49 50 51
		
		YgglMainLzb ygglMainLzb = YgglMainLzb.builder().empNum(lzygQueryDto.getEmpNum()).build();
		// 移动员工表数据到离职表
tangzhaoqian committed
52
		BeanUtil.copyProperties(ygglMainEmp, ygglMainLzb, "before_leaving_sts");
53 54
		ygglMainLzb.insert();

tangzhaoqian committed
55 56 57 58 59 60 61 62 63 64 65 66 67
		YgglMainEmp.builder().empNum(lzygQueryDto.getEmpNum()).jobStatus(jobStatus.LIZHIZHONG.getType())
				.beforeLeavingSts(ygglMainEmp.getJobStatus()).build()
				.update(new UpdateWrapper<YgglMainEmp>().lambda()
						.eq(YgglMainEmp::getEmpNum, empNum)
						.eq(YgglMainEmp::getOrgCode, orgCode));
		
		YgglMainLzb.builder()
			.jobStatus(jobStatus.LIZHIZHONG.getType())
			.lzTime(lzygQueryDto.getLzTime())
			.lzyy(lzygQueryDto.getLzyy()).lzbz(lzygQueryDto.getLzbz()).build()
			.update(new UpdateWrapper<YgglMainLzb>().lambda()
					.eq(YgglMainLzb::getEmpNum, empNum)
					.eq(YgglMainLzb::getOrgCode, orgCode));
68 69 70 71 72 73
	}

	@Override
	public void applicationRegularization(YgzzDto ygzzDto) {
		// TODO Auto-generated method stub
		YgglMainEmp.builder()
tangzhaoqian committed
74
		.jobStatus(1)
75 76 77
		.zzTime(ygzzDto.getZzTime())
		.sjzzTime(new Date())
		.zzRemark(ygzzDto.getZzRemark())
tangzhaoqian committed
78 79 80 81
		.build().update(new UpdateWrapper<YgglMainEmp>().lambda()
				.eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum())
				.eq(YgglMainEmp::getOrgCode, ygzzDto.getOrgCode())
				);
82 83
	}

84 85 86 87 88
	@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)
tangzhaoqian committed
89 90
				.eq(YgglMainEmp::getEmpNum, id)
				.eq(YgglMainEmp::getOrgCode, orgCode));
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
		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;
tangzhaoqian committed
107 108
		Integer bmgwLeaderId;
		for (int i = 0,n = leave + 1; i < n; i++) {
109
			ZzglBmgwM bmgwM = getLeaderEmp(listBM, baseBmgwId);
tangzhaoqian committed
110
			bmgwLeaderId = bmgwM != null ? bmgwM.getLeader() : null;
111 112
			if (i == n-1) {
//				listbM.add(bmgwM);
tangzhaoqian committed
113
				leaderId = bmgwLeaderId;
114 115 116 117 118 119
			}
		}
		
		return leaderId;
	}
	
tangzhaoqian committed
120
	public ZzglBmgwM getLeaderEmp(List<ZzglBmgwM> listBM, Integer baseBmgwId) {
121 122 123 124 125 126 127 128 129 130
		ZzglBmgwM zzglBmgwM =  baseBmgwId != null ? 
				CollUtil.getFirst(listBM.stream()
						.filter(bM -> bM.getId().equals(baseBmgwId)).collect(Collectors.toList()))
				: null;
		
		return zzglBmgwM;
		
	}
	

131
}