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.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.config.enuminterface.YgEnumInterface.jobStatus; 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; import cn.timer.api.utils.ResultUtil; @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(); 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("你已在离职中"); // } YgglMainLzb ygglMainLzb = YgglMainLzb.builder().empNum(lzygQueryDto.getEmpNum()).build(); // 移动员工表数据到离职表 BeanUtil.copyProperties(ygglMainEmp, ygglMainLzb, "before_leaving_sts"); ygglMainLzb.insert(); 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)); } @Override public void applicationRegularization(YgzzDto ygzzDto) { // TODO Auto-generated method stub YgglMainEmp.builder() .jobStatus(1) .zzTime(ygzzDto.getZzTime()) .sjzzTime(new Date()) .zzRemark(ygzzDto.getZzRemark()) .build().update(new UpdateWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum()) .eq(YgglMainEmp::getOrgCode, ygzzDto.getOrgCode()) ); } @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) .eq(YgglMainEmp::getOrgCode, orgCode)); 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; Integer bmgwLeaderId; for (int i = 0,n = leave + 1; i < n; i++) { ZzglBmgwM bmgwM = getLeaderEmp(listBM, baseBmgwId); bmgwLeaderId = bmgwM != null ? bmgwM.getLeader() : null; if (i == n-1) { // listbM.add(bmgwM); leaderId = bmgwLeaderId; } } return leaderId; } public 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; } }