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); zzglLogDgjlMapper.insertbyaddemp(empNums, empNum, dpetId, orgCode, dpetId == null || dpetId == 0 ? "岗位删除员工" : upEmpDeptDto.getIsdg() == null ? "岗位添加员工" : "员工调岗"); 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; } } }