package cn.timer.api.controller.yggl.service; import java.util.Date; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; 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; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainLzb; import cn.timer.api.bean.zzgl.ZzglBmgwM; import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.zzgl.ZzglBmgwMMapper; import cn.timer.api.dto.yggl.LzygQueryDto; import cn.timer.api.dto.yggl.YgzzDto; @Service public class YgglServiceImpl implements YgglService { @Autowired private YgglMainEmpMapper ygglMainEmpMapper; @Autowired private ZzglBmgwMMapper zzglBmgwMMapper; @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())); } @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; } }