/** * @date 2019年11月15日 * @author 翁东州 * @方法中文名称: */ package cn.timer.api.controller.yggl; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.transaction.Transactional; import cn.timer.api.utils.redis.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; 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.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.util.StringUtil; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.BetweenFormater.Level; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import cn.timer.api.bean.clazz.CommonArea; import cn.timer.api.bean.clazz.SysRegion; import cn.timer.api.bean.kqgl.UserEquiRelation; import cn.timer.api.bean.kqmk.KqglAssoKqj; import cn.timer.api.bean.kqmk.KqglAssoKqzdkfs; import cn.timer.api.bean.kqmk.KqglAssoLeaveEmployeeBalance; import cn.timer.api.bean.kqmk.KqglAssoLeaveRules; import cn.timer.api.bean.kqmk.KqglAssoYhkqz; import cn.timer.api.bean.kqmk.KqglAssoYhsb; import cn.timer.api.bean.qyzx.QyzxEmpEntAsso; import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.yggl.YgglAttaClfjb; import cn.timer.api.bean.yggl.YgglAttaCzjlb; import cn.timer.api.bean.yggl.YgglAttaGzjlb; import cn.timer.api.bean.yggl.YgglAttaGzk; import cn.timer.api.bean.yggl.YgglAttaHtxxb; import cn.timer.api.bean.yggl.YgglAttaJjlxr; import cn.timer.api.bean.yggl.YgglAttaJyjlb; import cn.timer.api.bean.yggl.YgglAttaLxxxb; import cn.timer.api.bean.yggl.YgglAttaPxjlxxb; import cn.timer.api.bean.yggl.YgglAttaSbgjj; import cn.timer.api.bean.yggl.YgglAttaZcxxb; import cn.timer.api.bean.yggl.YgglAttaZszjb; 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.annotation.CurrentUser; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.config.enuminterface.YgEnumInterface.jobStatus; import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enums.SysRoleType; import cn.timer.api.config.exception.Regular; import cn.timer.api.config.validation.ValidList; import cn.timer.api.controller.kqgl.ClockInTool; import cn.timer.api.controller.kqgl.atttimer.RealTimeUpdate; import cn.timer.api.controller.zzgl.service.ZzglBmgwMService; import cn.timer.api.dao.clazz.CommonAreaMapper; import cn.timer.api.dao.kqgl.UserEquiRelationMapper; import cn.timer.api.dao.kqmk.KqglAssoKqzdkfsMapper; import cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper; import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.yggl.YgMzDtoMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.yggl.YgglMainLzbMapper; import cn.timer.api.dao.zzgl.ZzglBmgwMMapper; import cn.timer.api.dto.kqmk.AdditionalDto; import cn.timer.api.dto.yggl.AddygdaDto; import cn.timer.api.dto.yggl.EmpQuery; import cn.timer.api.dto.yggl.ImportEmpDto; import cn.timer.api.dto.yggl.LoginInfoDto; import cn.timer.api.dto.yggl.LoginerChargeDto; import cn.timer.api.dto.yggl.LzbQueryDto; import cn.timer.api.dto.yggl.LzygQueryDto; import cn.timer.api.dto.yggl.ModifyAvatarDto; import cn.timer.api.dto.yggl.UserInfo; import cn.timer.api.dto.yggl.YgCartogramDto; import cn.timer.api.dto.yggl.YgKVDto; import cn.timer.api.dto.yggl.YgQueryDto; import cn.timer.api.dto.yggl.YgbintuDto; import cn.timer.api.dto.yggl.YgglCartogramDto; import cn.timer.api.dto.yggl.YgmzDto; import cn.timer.api.dto.yggl.YgzzDto; import cn.timer.api.utils.DateFormatUtils; import cn.timer.api.utils.Md5; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * @date 2019年11月15日 * @author 翁东州 * @方法中文名称: */ @Api(tags = "3.员工管理") @RestController @Transactional(rollbackOn = Exception.class) @RequestMapping(value = "/yggl", produces = { "application/json" }) public class YgglController { @Value(value = "${config-8timer.init-password}") private String pwd; @Autowired private YgglMainEmpMapper ygglMainEmpMapper; @Autowired private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper; @Autowired private QyzxEmpLoginMapper qyzxEmpLoginMapper; @Autowired private YgglMainLzbMapper ygglMainLzbMapper; @Autowired private ZzglBmgwMMapper zzglBmgwMMapper; // weng(民族) @Autowired private YgMzDtoMapper ygMzDtoMapper; @Resource private RedisUtil redisUtil; @Value("${server.servlet.session.timeout}") public Integer session_timeout; /** * 获取员工档案 * * @param * @return */ @GetMapping(value = "/ygda") @ApiOperation(value = "1.获取员工档案", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 1) public Result<YgglMainEmp> selectygda(@CurrentUser UserBean userBean) { Integer empNum = userBean.getEmpNum(); Integer orgCode = userBean.getOrgCode(); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum)); Date rz = ygglMainEmp.getRzTime(); if (rz != null) { ygglMainEmp.setWorkTime(DateUtil.formatBetween(rz, new Date(), Level.DAY)); } return ResultUtil.data(ygglMainEmp); } // 获取员工档案 @GetMapping(value = "/ygda/{empNum}") @ApiOperation(value = "2.获取员工档案(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 2) public Result<YgglMainEmp> selectygda(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { Integer orgCode = userBean.getOrgCode(); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum)); Date rz = ygglMainEmp.getRzTime(); QyzxEmpLogin login = QyzxEmpLogin.builder().build().selectOne(new QueryWrapper<QyzxEmpLogin>().select("phone").eq("id", empNum)); if (rz != null) { ygglMainEmp.setWorkTime(DateUtil.formatBetween(ygglMainEmp.getRzTime(), new Date(), Level.DAY)); } if (!StringUtils.isEmpty(login) && !StringUtils.isEmpty(login.getPhone())) { ygglMainEmp.setEmpLoginPhone(login.getPhone()); } return ResultUtil.data(ygglMainEmp); } /** * 根据岗位id获取员工档案部门岗位名称 * * @param * @return */ @GetMapping(value = "/ygdabm/{gwid}") @ApiOperation(value = "3.获取员工档案部门岗位名称", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 3) public Result<String> selectbmgw(@CurrentUser UserBean userBean, @PathVariable Integer gwid) { if (gwid == null || gwid == 0) { return ResultUtil.data("岗位不存在"); } Integer orgCode = userBean.getOrgCode(); ZzglBmgwM zzglBmgwM = ZzglBmgwM.builder().build().selectOne( new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, gwid)); String gw = null; Integer bmid = null; if (zzglBmgwM != null) { gw = zzglBmgwM.getName(); bmid = zzglBmgwM.getUpId(); } ZzglBmgwM z = ZzglBmgwM.builder().build().selectOne( new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, bmid)); String bm = null; if (z != null) { bm = z.getName(); } String bmgw = bm + "/" + gw; return ResultUtil.data(bmgw); } @Autowired private RealTimeUpdate realtimeupdate; @Autowired private KqglAssoKqzdkfsMapper kqglassokqzdkfsmapper; @Value("${config-8timer.machine8timerUrl}") public String mac_command; // 回调地址 @Autowired private UserEquiRelationMapper userequirelationmapper; /** * 添加员工档案 * * @param userBean * @param addygdaDto * @return */ @PostMapping(value = "/addygda") @ApiOperation(value = "4.添加员工档案", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 4) public Result<Object> addygda(@CurrentUser UserBean userBean, @Validated @RequestBody AddygdaDto addygdaDto) throws Exception { Integer orgCode = userBean.getOrgCode(); String customNum = addygdaDto.getCustomNum();//自定义工号 String name = addygdaDto.getName(); String phone = addygdaDto.getPhone(); Integer zjType = addygdaDto.getZjType(); String zjNum = addygdaDto.getZjNum(); Integer attgroupid = addygdaDto.getAttgroupid();//考勤组id boolean isvalid = true; switch (zjType) { case 0: isvalid = IdcardUtil.isValidCard15(zjNum) || IdcardUtil.isValidCard18(zjNum); break; case 1: String[] strs = IdcardUtil.isValidCard10(zjNum); if (strs == null) { isvalid = false; break; } String str2 = strs != null && strs.length > 2 ? strs[2] : "false"; isvalid = "澳门/香港".contains(strs[0]) && "true".equals(str2); break; case 2: isvalid = IdcardUtil.isValidTWCard(zjNum); break; case 3: isvalid = ReUtil.isMatch(Regular.PASSPORT1, zjNum) || ReUtil.isMatch(Regular.PASSPORT2, zjNum); break; default: break; } // if (!isvalid) { // return ResultUtil.error("证件格式不对!"); // } Integer jobType = addygdaDto.getJobType(); Date rzTime = addygdaDto.getRzTime() == null ? new Date() : addygdaDto.getRzTime(); Integer syq = addygdaDto.getSyq(); Integer sex = addygdaDto.getSex(); Integer bmgwId = addygdaDto.getBmgwId(); QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper) .eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one(); if (login == null) { // 初始化密码 pwd login = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pwd)) .sts(CommonEnum.U_STS_ON.getType()).orgId(userBean.getOrgCode()).username(name).build(); if (!login.insert()) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return ResultUtil.error("添加员工登录表失败,请检查输入信息"); } } YgglMainEmp ygglMainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getPhone, phone).eq(YgglMainEmp::getOrgCode, orgCode)); if (ygglMainEmp == null) { QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(SysRoleType.U_TYPE_EMP.getType()) .status(CommonEnum.U_STS_ON.getType()).build().insert(); ygglMainEmp = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType) .jobStatus(jobStatus.SHIYONG.getType()).rzTime(rzTime).syq(syq).sex(sex) .empNum(login.getId()).orgCode(orgCode).bmgwId(bmgwId).customNum(customNum).build(); if(addygdaDto.getAttgroupid() != null) { KqglAssoYhkqz.builder().kqzid(attgroupid).userid(login.getId()).qyid(userBean.getOrgCode()).build().insert(); List<KqglAssoKqzdkfs> kqjs = kqglassokqzdkfsmapper.selectList(new QueryWrapper<KqglAssoKqzdkfs>().lambda().eq(KqglAssoKqzdkfs::getKqzId, addygdaDto.getAttgroupid()).eq(KqglAssoKqzdkfs::getType, 1)); for(KqglAssoKqzdkfs abp:kqjs) { KqglAssoKqj kqj = KqglAssoKqj.builder().id(abp.getDkfsid()).build().selectById(); KqglAssoYhsb kqjry = KqglAssoYhsb.builder().build().selectOne(new QueryWrapper<KqglAssoYhsb>().lambda().eq(KqglAssoYhsb::getUserId, login.getId()).eq(KqglAssoYhsb::getKqjid, kqj.getId())); if(kqjry == null) { // YgglMainEmp yggluser = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).eq(YgglMainEmp::getEmpNum, login.getId())); String url = mac_command+"/addUserName"; HttpHeaders headers = new HttpHeaders(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); params.add("devId", kqj.getCode()); params.add("userId", login.getId()); params.add("userName", ygglMainEmp.getName()); RestTemplate restTemplate = new RestTemplate(); HttpEntity httpEntity = new HttpEntity(params, headers); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); KqglAssoYhsb.builder().build().delete(new QueryWrapper<KqglAssoYhsb>().lambda().eq(KqglAssoYhsb::getUserId, login.getId()).eq(KqglAssoYhsb::getKqjid, kqj.getId())); KqglAssoYhsb uskqj = KqglAssoYhsb.builder().userId(login.getId()).kqjid(kqj.getId()).type(1).build(); UserEquiRelation isgly = userequirelationmapper.selectByuserId(login.getId()); if(isgly != null) { uskqj.setIsGly(isgly.getIsGly()); }else { uskqj.setIsGly(0); } if (!uskqj.insert()) return ResultUtil.error("操作失败--新增用户与设备关系"); } } } if(syq == 0) { ygglMainEmp.setZzTime(rzTime); }else { String sdf = new SimpleDateFormat("yyyy-MM-dd").format(rzTime); String zztime = ClockInTool.requires_extra_times(sdf, syq, 4, 1); ygglMainEmp.setZzTime(ClockInTool.strToDateLong(zztime)); } ygglMainEmp.insert(); //假期规则初始化 String current_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); List<KqglAssoLeaveRules> rul = KqglAssoLeaveRules.builder().build().selectList(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, orgCode)); for(KqglAssoLeaveRules r : rul) { if(r.getLeaveBalance() == 0) { KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(ygglMainEmp.getEmpNum()).balanceDays(-1).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert(); }else { KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(ygglMainEmp.getEmpNum()).balanceDays(0.0).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert(); } } try { realtimeupdate.AttendanceTask(userBean.getOrgCode(), ygglMainEmp.getEmpNum(), 2,null); } catch (ParseException e) { e.printStackTrace(); } return ResultUtil.data(ygglMainEmp, "添加员工成功!"); } else { return ResultUtil.error("该手机号已被使用,请输入正确手机号"); } } /** * 修改员工档案 * * @param * @return */ @PostMapping(value = "/updateygda") @ApiOperation(value = "5.修改员工档案", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 5) public Result<Object> updateygda(@CurrentUser UserBean userBean, @RequestBody YgglMainEmp ygglMainEmp) throws Exception { if (ObjectUtil.isAllNotEmpty(ygglMainEmp.getRzTime(), ygglMainEmp.getZzTime()) && !DateFormatUtils.getCompareDate(ygglMainEmp.getRzTime(), ygglMainEmp.getZzTime())) { return ResultUtil.error("入职日期 不可以大于 转正日期"); } //修改 员工登陆账号 检测账号是否重复 if(!StringUtils.isEmpty(ygglMainEmp.getEmpLoginPhone())){ QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper) .eq(!StrUtil.hasBlank(ygglMainEmp.getEmpLoginPhone()), QyzxEmpLogin::getPhone, ygglMainEmp.getEmpLoginPhone()).one(); YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getPhone, ygglMainEmp.getEmpLoginPhone()) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); if(StringUtils.isEmpty(login) && StringUtils.isEmpty(emp)){ QyzxEmpLogin.builder().phone(ygglMainEmp.getEmpLoginPhone()).build().update(new QueryWrapper<QyzxEmpLogin>().lambda().eq(QyzxEmpLogin::getId,ygglMainEmp.getEmpNum())); }else{ return ResultUtil.error("该号码已存在,请更换员工登陆账号"); } } if (ygglMainEmp.getEmpNum() != null) { ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()) .eq(YgglMainEmp::getEmpNum, ygglMainEmp.getEmpNum())); return ResultUtil.data(ygglMainEmp, "修改成功"); } return ResultUtil.data(ygglMainEmp, "修改成功"); } /** * 员工搜索 * * @param * @return */ @PostMapping(value = "/ygquery") @ApiOperation(value = "6.员工搜索/分页", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 6) public Result<Object> ygquery(@CurrentUser UserBean userBean, @RequestBody YgQueryDto ygQueryDto) { Integer orgCode = userBean.getOrgCode(); Integer b = ygQueryDto.getBmgwid(); ArrayList<Integer> bList = new ArrayList<Integer>(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); ZzglBmgwM.getDepts(bList, b, zzglBmgwMs); Integer j = ygQueryDto.getJobStatus(); Integer t = ygQueryDto.getJobType(); String q = ygQueryDto.getQuery(); Page<YgglMainEmp> page = new Page<YgglMainEmp>(ygQueryDto.getCurrentPage(), ygQueryDto.getTotalPage()); QueryWrapper<YgglMainEmp> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda() .select(YgglMainEmp::getName, YgglMainEmp::getEmpNum, YgglMainEmp::getBmgwId, YgglMainEmp::getRzTime, YgglMainEmp::getJobType, YgglMainEmp::getPhone, YgglMainEmp::getJobStatus) .ne(YgglMainEmp::getJobStatus, jobStatus.YILIZHI.getType()) .eq(YgglMainEmp::getOrgCode, orgCode).eq(t != null && t > -1, YgglMainEmp::getJobType, t) .eq(j != null && j > -1, YgglMainEmp::getJobStatus, j) .in(!bList.isEmpty(), YgglMainEmp::getBmgwId, bList) .and(!StrUtil.hasBlank(q), wq -> wq.like(YgglMainEmp::getName, q).or().like(YgglMainEmp::getPhone, q)); IPage<YgglMainEmp> ygglMainEmpPage = YgglMainEmp.builder().build().selectPage(page, queryWrapper); return ResultUtil.data(ygglMainEmpPage); } @Autowired private ZzglBmgwMService zzglBmgwMService; /** * 员工列表-分页 * * @param * @return */ @PostMapping(value = "/selects_emp") @ApiOperation(value = "6.员工列表-分页", httpMethod = "POST", notes = "员工列表-分页") @ApiOperationSupport(order = 6) public Result<Object> selectsEmp(@CurrentUser UserBean userBean, @RequestBody EmpQuery empQuery) { Integer orgCode = userBean.getOrgCode(); Integer bmgwId = empQuery.getBmgwid(); Page<YgglMainEmp> page = new Page<YgglMainEmp>(empQuery.getCurrentPage(), empQuery.getTotalPage()); List<Integer> empNums = CollUtil.toList(); if (bmgwId != null) { List<YgglMainEmp> usersQuery = zzglBmgwMService.selectOtherlistent(userBean.getOrgCode(), bmgwId); if (CollectionUtil.isNotEmpty(usersQuery)) { empNums = usersQuery.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList()); }else { return ResultUtil.data(null); } if (CollectionUtil.isEmpty(empNums)) { return ResultUtil.data(null); } } empQuery.setOrgCode(orgCode); empQuery.setEmpNums(empNums); IPage<YgglMainEmp> ygglMainEmpPage = ygglMainEmpMapper.selectME(page, empQuery); List<YgglMainEmp> ygglMainEmps = ygglMainEmpPage.getRecords(); return ResultUtil.data(page, ygglMainEmps); } /** * 导入员工档案 */ @PostMapping(value = "/import_emp_record") @ApiOperation(value = "7.导入员工档案", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 7) public Result<JSONObject> importEmpRecord(@CurrentUser UserBean userBean, @Validated @RequestBody ValidList<AddygdaDto> listAddygdaDto) throws Exception { Integer orgCode = userBean.getOrgCode(); // 查询所有员工手机号 // List<QyzxEmpLogin> listEl = qyzxEmpLoginMapper // .selectList(new QueryWrapper<QyzxEmpLogin>().lambda() // .select(QyzxEmpLogin::getPhone)); List<YgglMainEmp> listMe = ygglMainEmpMapper.selectList(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getOrgCode, orgCode).select(YgglMainEmp::getPhone, YgglMainEmp::getZjNum)); listMe = listMe != null ? listMe.stream().filter(o -> o != null && o.getPhone() != null).collect(Collectors.toList()) : null; // 抽取 登录表 的phone的集合 List<String> listPhone = listMe.stream().map(YgglMainEmp::getPhone).collect(Collectors.toList()); // 抽取 登录表 的zjNum的集合 List<String> listzjNum = listMe.stream().map(YgglMainEmp::getZjNum).collect(Collectors.toList()); List<YgglMainEmp> listYmp = new ArrayList<YgglMainEmp>(); // 过滤掉 导入数据中, listPhone已存在 的 phone 的对象集合和证件号码 // List<AddygdaDto> list = listAddygdaDto.stream() // .filter(o -> o != null && !listPhone.contains(o.getPhone()) && !listzjNum.contains(o.getZjNum())) // .collect(Collectors.toList()); // 过滤掉 导入数据中, listPhone已存在 的 phone 的对象集合 List<AddygdaDto> list = listAddygdaDto.stream() .filter(o -> o != null && !listPhone.contains(o.getPhone())).collect(Collectors.toList()); // 过滤出 导入数据中, listPhone已存在 的 phone 的对象集合 List<AddygdaDto> phoneRepetitions = listAddygdaDto.stream() .filter(o -> o != null && listPhone.contains(o.getPhone())).collect(Collectors.toList()); // 过滤出 导入数据中, listzjNum 已存在 的 ZjNum 的对象集合 List<AddygdaDto> idCardRepetitions = listAddygdaDto.stream() .filter(o -> o != null && listzjNum.contains(o.getZjNum())).collect(Collectors.toList()); List<YgglMainEmp> insertErrors = new ArrayList<YgglMainEmp>(); YgglMainEmp yme; for (AddygdaDto ad : list) { String name = ad.getName(); String phone = ad.getPhone(); Integer zjType = ad.getZjType(); String zjNum = ad.getZjNum(); boolean isvalid = true; switch (zjType) { case 0: isvalid = IdcardUtil.isValidCard15(zjNum) || IdcardUtil.isValidCard18(zjNum); break; case 1: String[] strs = IdcardUtil.isValidCard10(zjNum); if (strs == null) { isvalid = false; break; } String str2 = strs != null && strs.length > 2 ? strs[2] : "false"; isvalid = "澳门/香港".contains(strs[0]) && "true".equals(str2); break; case 2: isvalid = IdcardUtil.isValidTWCard(zjNum); break; case 3: isvalid = ReUtil.isMatch(Regular.PASSPORT1, zjNum) || ReUtil.isMatch(Regular.PASSPORT2, zjNum); break; default: break; } if (!isvalid) { return ResultUtil.error("证件格式不对!"); } Integer jobType = ad.getJobType(); Date rzTime = ad.getRzTime() == null ? new Date() : ad.getRzTime(); Integer syq = ad.getSyq(); Integer sex = ad.getSex(); Integer bmgwId = ad.getBmgwId(); QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper) .eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one(); if (login == null) { // 初始化密码 pwd login = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pwd)).sts(CommonEnum.U_STS_ON.getType()) .orgId(userBean.getOrgCode()).username(name).build(); if (!login.insert()) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return ResultUtil.error("添加员工登录表失败,请检查输入信息"); } } QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(SysRoleType.U_TYPE_EMP.getType()) .status(CommonEnum.U_STS_ON.getType()).build().insert();// usertype2普通员工 status1正常 yme = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType) .jobStatus(YgEnumInterface.jobStatus.SHIYONG.getType()).rzTime(rzTime).syq(syq).sex(sex) .empNum(login.getId()).orgCode(orgCode).bmgwId(bmgwId).build(); if (yme.insert()) { listYmp.add(yme); } else { // 存放 插入失败的 数据 insertErrors.add(yme); } //假期规则初始化 String current_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); List<KqglAssoLeaveRules> rul = KqglAssoLeaveRules.builder().build().selectList(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, orgCode)); for(KqglAssoLeaveRules r : rul) { if(r.getLeaveBalance() == 0) { KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(login.getId()).balanceDays(-1).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert(); }else { KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(login.getId()).balanceDays(0.0).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert(); } } } JSONObject obj = JSONUtil.createObj(); obj.set("empList", listYmp); obj.set("phoneRepetitions", phoneRepetitions); obj.set("idCardRepetitions", idCardRepetitions); obj.set("insertErrors", insertErrors); // listEl.stream().filter(i -> i != // null).collect(Collectors.<QyzxEmpLogin>toList()); return ResultUtil.data(obj, "导入员工档案成功!"); } /** * 获取导入模板 * * @param * @return * @throws IOException */ @GetMapping(value = "/impoet_template") @ApiOperation(value = "8.获取导入模板", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 8) public Result<Object> getImpoetTemplate(HttpServletResponse response) throws IOException { ImportEmpDto ied = ImportEmpDto.builder().name("张三").phone("15219671123") // 证件类型 0:身份证;1:港澳居民来往内地通行证;2:台湾居民来往大陆通行证;3:外国护照;4:其他 .zjType(0).zjNum("445381199611063586") // 工作性质 0全职、1实习生、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘 .jobType(0).rzTime("2010-10-10 10:10:10") // 试用期 0:无试用期;1:1个月;2:2个月;3:3个月;4:4个月;5:5个月;6:6个月(有试用期显示选项) .syq(1) // 性别 0:男;1:女 .sex(0).build(); List<ImportEmpDto> listAd = CollUtil.newArrayList(ied); // 通过工具类创建writer ExcelWriter writer = ExcelUtil.getWriter(true); // 自定义标题别名 writer.addHeaderAlias("name", "姓名"); writer.addHeaderAlias("phone", "手机号"); writer.addHeaderAlias("sex", "性别"); writer.addHeaderAlias("zjType", "证件类型 0:身份证;1:港澳居民来往内地通行证;2:台湾居民来往大陆通行证;3:外国护照;4:其他"); writer.addHeaderAlias("zjNum", "证件号"); writer.addHeaderAlias("jobType", "工作性质 0全职、1实习生、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘"); writer.addHeaderAlias("syq", "试用期 0:无试用期;1:1个月;2:2个月;3:3个月;4:4个月;5:5个月;6:6个月(有试用期显示选项)"); writer.addHeaderAlias("rzTime", "入职日期"); // 合并单元格后的标题行,使用默认标题样式 writer.merge(7, "员工导入模板"); writer.setFreezePane(2); writer.setColumnWidth(1, 15); writer.setColumnWidth(4, 22); writer.setColumnWidth(7, 20); // 一次性写出内容,使用默认样式,强制输出标题 writer.write(listAd, true); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=8timer_emp_import.xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); // 关闭writer,释放内存 writer.close(); // 此处记得关闭输出Servlet流 IoUtil.close(out); return ResultUtil.data(null, "获取模板成功"); } /** * 导出员工 * * @param * @return */ @GetMapping(value = "/ygdas") @ApiOperation(value = "9.导出员工", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 9) public Result<List<YgglMainEmp>> selectygdas(@CurrentUser UserBean userBean) { List<YgglMainEmp> list = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).in(YgglMainEmp::getJobStatus, jobStatus.SHIYONG.getType(), jobStatus.ZHENSHI.getType(), jobStatus.LIZHIZHONG.getType()).list(); return ResultUtil.data(list, "导出员工成功"); } /** * 获取员工教育经历表 * * @param * @return */ @GetMapping(value = "/jyjlb") @ApiOperation(value = "10.获取员工教育经历表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 10) public Result<List<YgglAttaJyjlb>> selectjyjlb(@CurrentUser UserBean userBean) { List<YgglAttaJyjlb> ygglAttaJyjlbss = YgglAttaJyjlb.builder().build().selectList( new QueryWrapper<YgglAttaJyjlb>().lambda().eq(YgglAttaJyjlb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaJyjlb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaJyjlbss); } // 获取员工教育经历表 @GetMapping(value = "/jyjlb/{empNum}") @ApiOperation(value = "11.获取员工教育经历表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 11) public Result<List<YgglAttaJyjlb>> selectjyjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaJyjlb> ygglAttaJyjlbs = YgglAttaJyjlb.builder().build() .selectList(new QueryWrapper<YgglAttaJyjlb>().lambda() .eq(YgglAttaJyjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaJyjlb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaJyjlbs); } /** * 添加/修改员工教育经历表 * * @param * @return */ @PostMapping(value = "/jyjlb") @ApiOperation(value = "12.添加/修改员工教育经历表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 12) public Result<YgglAttaJyjlb> addjyjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaJyjlb ygglAttaJyjlb) { ygglAttaJyjlb.setEmpNum(ygglAttaJyjlb.getEmpNum()); ygglAttaJyjlb.setOrgCode(userBean.getOrgCode()); ygglAttaJyjlb.insertOrUpdate(); return ResultUtil.data(ygglAttaJyjlb, "修改员工教育经历表成功"); } /** * 删除员工教育经历表 * * @param * @return */ @DeleteMapping(value = "/jyjlb/{id}") @ApiOperation(value = "13.删除员工教育经历表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 13) public Result<Boolean> deljyjlb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaJyjlb.builder().build().delete(new QueryWrapper<YgglAttaJyjlb>().lambda() .eq(YgglAttaJyjlb::getOrgCode, orgCode).eq(YgglAttaJyjlb::getId, id)), "删除员工教育经历表成功"); } /** * 获取员工培训经历信息表 * * @param * @return */ @GetMapping(value = "/pxjlxxb") @ApiOperation(value = "14.获取员工培训经历信息表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 14) public Result<List<YgglAttaPxjlxxb>> selectpxjlxxb(@CurrentUser UserBean userBean) { List<YgglAttaPxjlxxb> ygglAttaPxjlxxbs = YgglAttaPxjlxxb.builder().build() .selectList(new QueryWrapper<YgglAttaPxjlxxb>().lambda() .eq(YgglAttaPxjlxxb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaPxjlxxb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaPxjlxxbs); } // 获取员工培训经历信息表 @GetMapping(value = "/pxjlxxb/{empNum}") @ApiOperation(value = "15.获取员工培训经历信息表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 15) public Result<List<YgglAttaPxjlxxb>> selectpxjlxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaPxjlxxb> ygglAttaPxjlxxbs = YgglAttaPxjlxxb.builder().build() .selectList(new QueryWrapper<YgglAttaPxjlxxb>().lambda() .eq(YgglAttaPxjlxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaPxjlxxb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaPxjlxxbs); } /** * 添加/修改员工培训经历信息表 * * @param * @return */ @PostMapping(value = "/pxjlxxb") @ApiOperation(value = "16.添加/修改员工培训经历信息表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 16) public Result<YgglAttaPxjlxxb> addpxjlxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaPxjlxxb ygglAttaPxjlxxb) { ygglAttaPxjlxxb.setEmpNum(ygglAttaPxjlxxb.getEmpNum()); ygglAttaPxjlxxb.setOrgCode(userBean.getOrgCode()); ygglAttaPxjlxxb.insertOrUpdate(); return ResultUtil.data(ygglAttaPxjlxxb, "修改员工培训经历信息表成功"); } /** * 删除员工培训经历信息表 * * @param * @return */ @DeleteMapping(value = "/pxjlxxb/{id}") @ApiOperation(value = "17.删除员工培训经历信息表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 17) public Result<Boolean> delpxjlxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaPxjlxxb.builder().build().delete(new QueryWrapper<YgglAttaPxjlxxb>().lambda() .eq(YgglAttaPxjlxxb::getOrgCode, orgCode).eq(YgglAttaPxjlxxb::getId, id)), "删除员工培训经历信息表成功"); } /** * 获取员工工作经历表 * * @param * @return */ @GetMapping(value = "/gzjlb") @ApiOperation(value = "18.获取员工工作经历表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 18) public Result<List<YgglAttaGzjlb>> selectgzjlb(@CurrentUser UserBean userBean) { List<YgglAttaGzjlb> ygglAttaGzjlbs = YgglAttaGzjlb.builder().build().selectList( new QueryWrapper<YgglAttaGzjlb>().lambda().eq(YgglAttaGzjlb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaGzjlb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaGzjlbs); } // 获取员工工作经历表 @GetMapping(value = "/gzjlb/{empNum}") @ApiOperation(value = "19.获取员工工作经历表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 19) public Result<List<YgglAttaGzjlb>> selectgzjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaGzjlb> ygglAttaGzjlbs = YgglAttaGzjlb.builder().build() .selectList(new QueryWrapper<YgglAttaGzjlb>().lambda() .eq(YgglAttaGzjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaGzjlb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaGzjlbs); } /** * 添加/修改员工工作经历表 * * @param * @return */ @PostMapping(value = "/gzjlb") @ApiOperation(value = "20.添加/修改员工工作经历表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 20) public Result<YgglAttaGzjlb> addgzjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaGzjlb ygglAttaGzjlb) { ygglAttaGzjlb.setEmpNum(ygglAttaGzjlb.getEmpNum()); ygglAttaGzjlb.setOrgCode(userBean.getOrgCode()); ygglAttaGzjlb.insertOrUpdate(); return ResultUtil.data(ygglAttaGzjlb, "修改员工工作经历表成功"); } /** * 删除员工工作经历表 * * @param * @return */ @DeleteMapping(value = "/gzjlb/{id}") @ApiOperation(value = "21.删除员工工作经历表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 21) public Result<Boolean> delgzjlb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaGzjlb.builder().build().delete(new QueryWrapper<YgglAttaGzjlb>().lambda() .eq(YgglAttaGzjlb::getOrgCode, orgCode).eq(YgglAttaGzjlb::getId, id)), "删除员工工作经历表成功"); } /** * 获取员工职称信息表 * * @param * @return */ @GetMapping(value = "/zcxxb") @ApiOperation(value = "22.获取员工职称信息表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 22) public Result<List<YgglAttaZcxxb>> selectzcxxb(@CurrentUser UserBean userBean) { List<YgglAttaZcxxb> ygglAttaZcxxbs = YgglAttaZcxxb.builder().build().selectList( new QueryWrapper<YgglAttaZcxxb>().lambda().eq(YgglAttaZcxxb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaZcxxb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaZcxxbs); } // 获取员工职称信息表 @GetMapping(value = "/zcxxb/{empNum}") @ApiOperation(value = "23.获取员工职称信息表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 23) public Result<List<YgglAttaZcxxb>> selectzcxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaZcxxb> ygglAttaZcxxbs = YgglAttaZcxxb.builder().build() .selectList(new QueryWrapper<YgglAttaZcxxb>().lambda() .eq(YgglAttaZcxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaZcxxb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaZcxxbs); } /** * 添加/修改员工职称信息表 * * @param * @return */ @PostMapping(value = "/zcxxb") @ApiOperation(value = "24.添加/修改员工职称信息表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 24) public Result<YgglAttaZcxxb> addzcxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaZcxxb ygglAttaZcxxb) { ygglAttaZcxxb.setEmpNum(ygglAttaZcxxb.getEmpNum()); ygglAttaZcxxb.setOrgCode(userBean.getOrgCode()); ygglAttaZcxxb.insertOrUpdate(); return ResultUtil.data(ygglAttaZcxxb, "修改员工职称信息表成功"); } /** * 删除员工职称信息表 * * @param * @return */ @DeleteMapping(value = "/zcxxb/{id}") @ApiOperation(value = "25.删除员工职称信息表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 25) public Result<Boolean> delzcxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaZcxxb.builder().build().delete(new QueryWrapper<YgglAttaZcxxb>().lambda() .eq(YgglAttaZcxxb::getOrgCode, orgCode).eq(YgglAttaZcxxb::getId, id)), "删除员工职称信息表成功"); } /** * 获取员工证书证件表 * * @param * @return */ @GetMapping(value = "/zszjb") @ApiOperation(value = "26.获取员工证书证件表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 26) public Result<List<YgglAttaZszjb>> selectzszjb(@CurrentUser UserBean userBean) { List<YgglAttaZszjb> ygglAttaZszjbs = YgglAttaZszjb.builder().build().selectList( new QueryWrapper<YgglAttaZszjb>().lambda().eq(YgglAttaZszjb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaZszjb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaZszjbs); } // 获取员工证书证件表 @GetMapping(value = "/zszjb/{empNum}") @ApiOperation(value = "27.获取员工证书证件表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 27) public Result<List<YgglAttaZszjb>> selectzszjb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaZszjb> ygglAttaZszjbs = YgglAttaZszjb.builder().build() .selectList(new QueryWrapper<YgglAttaZszjb>().lambda() .eq(YgglAttaZszjb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaZszjb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaZszjbs); } /** * 添加/修改员工证书证件表 * * @param * @return */ @PostMapping(value = "/zszjb") @ApiOperation(value = "28.添加/修改员工证书证件表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 28) public Result<YgglAttaZszjb> addzszjb(@CurrentUser UserBean userBean, @RequestBody YgglAttaZszjb ygglAttaZszjb) { ygglAttaZszjb.setEmpNum(ygglAttaZszjb.getEmpNum()); ygglAttaZszjb.setOrgCode(userBean.getOrgCode()); ygglAttaZszjb.insertOrUpdate(); return ResultUtil.data(ygglAttaZszjb, "修改员工证书证件表成功"); } /** * 删除员工证书证件表 * * @param * @return */ @DeleteMapping(value = "/zszjb/{id}") @ApiOperation(value = "29.删除员工证书证件表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 29) public Result<Boolean> delzszjb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaZszjb.builder().build().delete(new QueryWrapper<YgglAttaZszjb>().lambda() .eq(YgglAttaZszjb::getOrgCode, orgCode).eq(YgglAttaZszjb::getId, id)), "删除员工证书证件表成功"); } /** * 获取员工联系信息表 * * @param * @return */ @GetMapping(value = "/lxxxb") @ApiOperation(value = "30.获取员工联系信息表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 30) public Result<List<YgglAttaLxxxb>> selectlxxxb(@CurrentUser UserBean userBean) { List<YgglAttaLxxxb> ygglAttaLxxxbs = YgglAttaLxxxb.builder().build().selectList( new QueryWrapper<YgglAttaLxxxb>().lambda().eq(YgglAttaLxxxb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaLxxxb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaLxxxbs); } // 获取员工联系信息表 @GetMapping(value = "/lxxxb/{empNum}") @ApiOperation(value = "31.获取员工联系信息表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 31) public Result<List<YgglAttaLxxxb>> selectlxxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaLxxxb> ygglAttaLxxxbs = YgglAttaLxxxb.builder().build() .selectList(new QueryWrapper<YgglAttaLxxxb>().lambda() .eq(YgglAttaLxxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaLxxxb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaLxxxbs); } /** * 添加/修改员工联系信息表 * * @param * @return */ @PostMapping(value = "/lxxxb") @ApiOperation(value = "32.添加/修改员工联系信息表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 32) public Result<YgglAttaLxxxb> addlxxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaLxxxb ygglAttaLxxxb) { ygglAttaLxxxb.setEmpNum(ygglAttaLxxxb.getEmpNum()); ygglAttaLxxxb.setOrgCode(userBean.getOrgCode()); ygglAttaLxxxb.insertOrUpdate(); return ResultUtil.data(ygglAttaLxxxb, "修改员工联系信息表成功"); } /** * 删除员工联系信息表 * * @param * @return */ @DeleteMapping(value = "/lxxxb/{id}") @ApiOperation(value = "33.删除员工联系信息表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 33) public Result<Boolean> dellxxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaLxxxb.builder().build().delete(new QueryWrapper<YgglAttaLxxxb>().lambda() .eq(YgglAttaLxxxb::getOrgCode, orgCode).eq(YgglAttaLxxxb::getId, id)), "删除员工联系信息表成功"); } /** * 获取员工紧急联系人表 * * @param * @return */ @GetMapping(value = "/jjlxr") @ApiOperation(value = "34.获取员工紧急联系人表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 34) public Result<List<YgglAttaJjlxr>> selectjjlxr(@CurrentUser UserBean userBean) { List<YgglAttaJjlxr> ygglAttaJjlxrs = YgglAttaJjlxr.builder().build().selectList( new QueryWrapper<YgglAttaJjlxr>().lambda().eq(YgglAttaJjlxr::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaJjlxr::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaJjlxrs); } // 获取员工紧急联系人表 @GetMapping(value = "/jjlxr/{empNum}") @ApiOperation(value = "35.获取员工紧急联系人表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 35) public Result<List<YgglAttaJjlxr>> selectjjlxr(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaJjlxr> ygglAttaJjlxrs = YgglAttaJjlxr.builder().build() .selectList(new QueryWrapper<YgglAttaJjlxr>().lambda() .eq(YgglAttaJjlxr::getOrgCode, userBean.getOrgCode()).eq(YgglAttaJjlxr::getEmpNum, empNum)); return ResultUtil.data(ygglAttaJjlxrs); } /** * 添加/修改员工紧急联系人表 * * @param * @return */ @PostMapping(value = "/jjlxr") @ApiOperation(value = "36.添加/修改员工紧急联系人表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 36) public Result<YgglAttaJjlxr> addjjlxr(@CurrentUser UserBean userBean, @RequestBody YgglAttaJjlxr ygglAttaJjlxr) { ygglAttaJjlxr.setEmpNum(ygglAttaJjlxr.getEmpNum()); ygglAttaJjlxr.setOrgCode(userBean.getOrgCode()); ygglAttaJjlxr.insertOrUpdate(); return ResultUtil.data(ygglAttaJjlxr, "修改员工紧急联系人表成功"); } /** * 删除员工紧急联系人表 * * @param * @return */ @DeleteMapping(value = "/jjlxr/{id}") @ApiOperation(value = "37.删除员工紧急联系人表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 37) public Result<Boolean> deljjlxr(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaJjlxr.builder().build().delete(new QueryWrapper<YgglAttaJjlxr>().lambda() .eq(YgglAttaJjlxr::getOrgCode, orgCode).eq(YgglAttaJjlxr::getId, id)), "删除员工紧急联系人表成功"); } // 获取工资卡信息 /** * 获取员工工资卡信息 * * @param * @return */ @GetMapping(value = "/gzk") @ApiOperation(value = "38.获取员工工资卡信息", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 38) public Result<List<YgglAttaGzk>> selectgzk(@CurrentUser UserBean userBean) { List<YgglAttaGzk> ygglAttaGzks = YgglAttaGzk.builder().build() .selectList(new QueryWrapper<YgglAttaGzk>().lambda().eq(YgglAttaGzk::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaGzk::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaGzks); } // 获取工资卡信息 @GetMapping(value = "/gzk/{empNum}") @ApiOperation(value = "39.获取员工工资卡信息(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 39) public Result<List<YgglAttaGzk>> selectgzk(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaGzk> ygglAttaGzks = YgglAttaGzk.builder().build().selectList(new QueryWrapper<YgglAttaGzk>() .lambda().eq(YgglAttaGzk::getOrgCode, userBean.getOrgCode()).eq(YgglAttaGzk::getEmpNum, empNum)); return ResultUtil.data(ygglAttaGzks); } /** * 添加/修改工资卡信息 * * @param * @return */ @PostMapping(value = "/gzk") @ApiOperation(value = "40.添加/修改工资卡信息", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 40) public Result<YgglAttaGzk> addgzk(@CurrentUser UserBean userBean, @RequestBody YgglAttaGzk ygglAttaGzk) { ygglAttaGzk.setEmpNum(ygglAttaGzk.getEmpNum()); ygglAttaGzk.setOrgCode(userBean.getOrgCode()); ygglAttaGzk.insertOrUpdate(); return ResultUtil.data(ygglAttaGzk, "修改工资卡信息成功"); } /** * 删除工资卡信息 * * @param * @return */ @DeleteMapping(value = "/gzk/{id}") @ApiOperation(value = "41.删除工资卡信息", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 41) public Result<Boolean> delgzk(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaGzk.builder().build().delete(new QueryWrapper<YgglAttaGzk>().lambda() .eq(YgglAttaGzk::getOrgCode, orgCode).eq(YgglAttaGzk::getId, id)), "删除工资卡信息成功"); } /** * 获取员工合同信息表 * * @param * @return */ @GetMapping(value = "/htxxb") @ApiOperation(value = "42.获取员工合同信息表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 42) public Result<List<YgglAttaHtxxb>> selecthtxxb(@CurrentUser UserBean userBean) { List<YgglAttaHtxxb> ygglAttaHtxxbs = YgglAttaHtxxb.builder().build().selectList( new QueryWrapper<YgglAttaHtxxb>().lambda().eq(YgglAttaHtxxb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaHtxxb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaHtxxbs); } // 获取员工合同信息表 @GetMapping(value = "/htxxb/{empNum}") @ApiOperation(value = "43.获取员工合同信息表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 43) public Result<List<YgglAttaHtxxb>> selecthtxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaHtxxb> ygglAttaHtxxbs = YgglAttaHtxxb.builder().build() .selectList(new QueryWrapper<YgglAttaHtxxb>().lambda() .eq(YgglAttaHtxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaHtxxb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaHtxxbs); } /** * 添加/修改员工合同信息表 * * @param * @return */ @PostMapping(value = "/htxxb") @ApiOperation(value = "44.添加/修改员工合同信息表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 44) public Result<YgglAttaHtxxb> addhtxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaHtxxb ygglAttaHtxxb) { ygglAttaHtxxb.setEmpNum(ygglAttaHtxxb.getEmpNum()); ygglAttaHtxxb.setOrgCode(userBean.getOrgCode()); ygglAttaHtxxb.insertOrUpdate(); return ResultUtil.data(ygglAttaHtxxb, "修改员工合同信息表成功"); } /** * 删除员工合同信息表 * * @param * @return */ @DeleteMapping(value = "/htxxb/{id}") @ApiOperation(value = "45.删除员工合同信息表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 45) public Result<Boolean> delhtxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaHtxxb.builder().build().delete(new QueryWrapper<YgglAttaHtxxb>().lambda() .eq(YgglAttaHtxxb::getOrgCode, orgCode).eq(YgglAttaHtxxb::getId, id)), "删除员工合同信息表成功"); } /** * 获取员工材料附件表 * * @param * @return */ @GetMapping(value = "/clfjb") @ApiOperation(value = "46.获取员工材料附件表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 46) public Result<List<YgglAttaClfjb>> selectclfjb(@CurrentUser UserBean userBean) { List<YgglAttaClfjb> ygglAttaClfjbs = YgglAttaClfjb.builder().build().selectList( new QueryWrapper<YgglAttaClfjb>().lambda().eq(YgglAttaClfjb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaClfjb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaClfjbs); } // 获取员工材料附件表 @GetMapping(value = "/clfjb/{empNum}") @ApiOperation(value = "47.获取员工材料附件表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 47) public Result<List<YgglAttaClfjb>> selectclfjb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaClfjb> ygglAttaClfjbs = YgglAttaClfjb.builder().build() .selectList(new QueryWrapper<YgglAttaClfjb>().lambda() .eq(YgglAttaClfjb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaClfjb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaClfjbs); } /** * 添加/修改员工材料附件表 * * @param * @return */ @PostMapping(value = "/clfjb") @ApiOperation(value = "48.添加/修改员工材料附件表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 48) public Result<YgglAttaClfjb> addclfjb(@CurrentUser UserBean userBean, @RequestBody YgglAttaClfjb ygglAttaClfjb) { ygglAttaClfjb.setOrgCode(userBean.getOrgCode()); ygglAttaClfjb.setEmpNum(ygglAttaClfjb.getEmpNum()); ygglAttaClfjb.insertOrUpdate(); return ResultUtil.data(ygglAttaClfjb, "修改员工材料附件表成功"); } /** * 删除员工材料附件表 * * @param * @return */ @DeleteMapping(value = "/clfjb/{id}") @ApiOperation(value = "49.删除员工材料附件表", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 49) public Result<Boolean> delclfjb(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaClfjb.builder().build().delete(new QueryWrapper<YgglAttaClfjb>().lambda() .eq(YgglAttaClfjb::getOrgCode, orgCode).eq(YgglAttaClfjb::getId, id)), "删除员工材料附件表成功"); } /** * 获取成长记录表 * * @param * @return */ @GetMapping(value = "/czjlb") @ApiOperation(value = "50.获取成长记录表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 50) public Result<List<YgglAttaCzjlb>> selectczjlb(@CurrentUser UserBean userBean) { List<YgglAttaCzjlb> ygglAttaCzjlbs = YgglAttaCzjlb.builder().build().selectList( new QueryWrapper<YgglAttaCzjlb>().lambda().eq(YgglAttaCzjlb::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaCzjlb::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaCzjlbs); } // 获取成长记录表 @GetMapping(value = "/czjlb/{empNum}") @ApiOperation(value = "51.获取成长记录表(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 51) public Result<List<YgglAttaCzjlb>> selectczjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { List<YgglAttaCzjlb> ygglAttaCzjlbs = YgglAttaCzjlb.builder().build() .selectList(new QueryWrapper<YgglAttaCzjlb>().lambda() .eq(YgglAttaCzjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaCzjlb::getEmpNum, empNum)); return ResultUtil.data(ygglAttaCzjlbs); } /** * 添加/修改成长记录表 * * @param * @return */ @PostMapping(value = "/czjlb") @ApiOperation(value = "52.添加/修改成长记录表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 52) public Result<YgglAttaCzjlb> addczjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaCzjlb ygglAttaCzjlb) { ygglAttaCzjlb.setEmpNum(ygglAttaCzjlb.getEmpNum()); ygglAttaCzjlb.setOrgCode(userBean.getOrgCode()); ygglAttaCzjlb.insertOrUpdate(); return ResultUtil.data(ygglAttaCzjlb, "修改成长记录表成功"); } /** * 获取单个离职员工信息(管) * * @param * @return */ @GetMapping(value = "/lzb/{empNum}") @ApiOperation(value = "53.获取单个离职员工信息(管)", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 53) public Result<YgglMainLzb> selectlzb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { YgglMainLzb lzyg = new LambdaQueryChainWrapper<YgglMainLzb>(ygglMainLzbMapper) .eq(YgglMainLzb::getOrgCode, userBean.getOrgCode()).eq(YgglMainLzb::getEmpNum, empNum).one(); return ResultUtil.data(lzyg); } /** * 员工转正 0-1 * * @param * @return */ @PostMapping(value = "/ygzz") @ApiOperation(value = "54.员工转正", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 54) public Result<Void> ygzz(@CurrentUser UserBean userBean, @RequestBody YgzzDto ygzzDto) { YgglMainEmp.builder().jobStatus(jobStatus.ZHENSHI.getType()).zzTime(ygzzDto.getZzTime()).sjzzTime(new Date()) .zzRemark(ygzzDto.getZzRemark()).build() .update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum())); return ResultUtil.success("转正成功!"); } /** * 计划离职 type1-2 * * @param * @return */ @PostMapping(value = "/addlzjh") @ApiOperation(value = "55.添加离职计划", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 55) public Result<YgglMainLzb> addjhlz(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) { Integer empNum = lzygQueryDto.getEmpNum(); YgglMainEmp ygglMainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getEmpNum, empNum) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); 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, userBean.getOrgCode())); //设置员工自定义工号工号 String jobNum = StringUtils.isEmpty(ygglMainEmp.getCustomNum())?ygglMainEmp.getEmpNum().toString():ygglMainEmp.getCustomNum(); YgglMainLzb.builder().jobStatus(jobStatus.LIZHIZHONG.getType()).lzTime(lzygQueryDto.getLzTime()) .lzyy(lzygQueryDto.getLzyy()).lzbz(lzygQueryDto.getLzbz()).jobNum(jobNum).build() .update(new UpdateWrapper<YgglMainLzb>().lambda() .eq(YgglMainLzb::getEmpNum, empNum) .eq(YgglMainLzb::getOrgCode, userBean.getOrgCode())); return ResultUtil.data(ygglMainLzb, "添加待离职员工成功"); } /** * 确认离职 type2-3 * * @param * @return */ @PostMapping(value = "/qrlz") @ApiOperation(value = "56.确认离职", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 56) public Result<Void> addlzb(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) { Integer empNum = lzygQueryDto.getEmpNum(); // 删除员工档案表 ygglMainEmpMapper.delete(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getEmpNum, empNum) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); YgglMainLzb.builder().empNum(empNum).jobStatus(YgEnumInterface.jobStatus.YILIZHI.getType()).sjlzTime(new Date()) .build().update(new UpdateWrapper<YgglMainLzb>().lambda() .eq(YgglMainLzb::getEmpNum, empNum) .eq(YgglMainLzb::getOrgCode, userBean.getOrgCode())); LambdaQueryWrapper<QyzxEmpEntAsso> queryWrapper = new QueryWrapper<QyzxEmpEntAsso>().lambda() .eq(QyzxEmpEntAsso::getEmpNum, empNum) .eq(QyzxEmpEntAsso::getOrgCode, userBean.getOrgCode()); // 确认离职 删除员工关联表 qyzxEmpEntAssoMapper.delete(queryWrapper); // 初始化 部门主管 zzglBmgwMMapper.update(ZzglBmgwM.builder().leader(null).build(), new UpdateWrapper<ZzglBmgwM>().lambda() .eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()) .eq(ZzglBmgwM::getLeader, empNum)); // 更新当前企业 List<QyzxEmpEntAsso> listEEA = qyzxEmpEntAssoMapper.selectList(new QueryWrapper<QyzxEmpEntAsso>().lambda() .eq(QyzxEmpEntAsso::getEmpNum, empNum)); if (listEEA != null && listEEA.size() > 0) { QyzxEmpLogin.builder().id(empNum).orgId(CollUtil.getFirst(listEEA).getOrgCode()).build().updateById(); } QyzxEmpLogin.builder().build().delete(new QueryWrapper<QyzxEmpLogin>().lambda().eq(QyzxEmpLogin::getOrgId, userBean.getOrgCode()).eq(QyzxEmpLogin::getId, empNum)); KqglAssoYhkqz.builder().build().delete(new QueryWrapper<KqglAssoYhkqz>().lambda().eq(KqglAssoYhkqz::getUserid, empNum).eq(KqglAssoYhkqz::getQyid, userBean.getOrgCode())); try { realtimeupdate.AttendanceTask(userBean.getOrgCode(), empNum, 2,null); redisUtil.set("BlockUser"+empNum,"BlockUser",session_timeout); } catch (ParseException e) { e.printStackTrace(); } return ResultUtil.success("确认离职员工成功"); } /** * 放弃离职 type 2-1 * * @param * @return */ @PostMapping(value = "/fqlz") @ApiOperation(value = "57.放弃离职", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 57) public Result<Void> fqlz(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) { YgglMainEmp ygglMainEmp = ygglMainEmpMapper .selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, lzygQueryDto.getEmpNum()) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); YgglMainEmp.builder().jobStatus(ygglMainEmp.getBeforeLeavingSts()).build() .update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, lzygQueryDto.getEmpNum())); // 删除离职表 YgglMainLzb.builder().id(lzygQueryDto.getEmpNum()).build() .delete(new QueryWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getEmpNum, lzygQueryDto.getEmpNum())); return ResultUtil.success("放弃成功"); } @PostMapping(value = "/tzlzyy") @ApiOperation(value = "58.调整离职", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 58) public Result<YgglMainLzb> tzlzyy(@CurrentUser UserBean userBean, @RequestBody YgglMainLzb ygglMainLzb) { if (ygglMainLzb.getEmpNum() != null) { ygglMainLzb .update(new UpdateWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getOrgCode, userBean.getOrgCode()) .eq(YgglMainLzb::getEmpNum, ygglMainLzb.getEmpNum())); return ResultUtil.data(ygglMainLzb, "修改成功"); } return ResultUtil.error("请确认该员工是否存在!"); } /** * 查询离职员工列表 * * @param * @return */ @PostMapping(value = "/querylzyg") @ApiOperation(value = "59.查询离职员工列表", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 59) public Result<Object> querylzyg(@CurrentUser UserBean userBean, @RequestBody LzbQueryDto lzygQueryDto) { lzygQueryDto.setOrgCode(userBean.getOrgCode()); IPage<YgglMainLzb> page = new Page<YgglMainLzb>( lzygQueryDto.getCurrentPage() == null ? 1 : lzygQueryDto.getCurrentPage(), lzygQueryDto.getTotalPage() == null ? 10 : lzygQueryDto.getTotalPage()); List<YgglMainLzb> lzb = ygglMainLzbMapper.queryLzb(page, lzygQueryDto); return ResultUtil.data(page, lzb, "离职员工搜索成功"); } /** * 展示民族/展示所有民族 * * @param * @return */ @PostMapping(value = "/mz/{id}") @ApiOperation(value = "60.展示民族/展示所有民族", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 60) public Result<List<YgmzDto>> selectmzs(@CurrentUser UserBean userBean, @PathVariable Integer id) { if (id == null || id == 0) { List<YgmzDto> allmz = new LambdaQueryChainWrapper<YgmzDto>(ygMzDtoMapper).list(); return ResultUtil.data(allmz, "展示所有民族"); } List<YgmzDto> mz = new LambdaQueryChainWrapper<YgmzDto>(ygMzDtoMapper).eq(YgmzDto::getNumber, id).list(); return ResultUtil.data(mz, "展示该民族"); } @Autowired CommonAreaMapper commonAreaMapper; /** * 籍贯树 * * @param * @return */ @GetMapping(value = "/native_place") @ApiOperation(value = "61.籍贯树", httpMethod = "GET", notes = "籍贯树") @ApiOperationSupport(order = 61) public Result<List<CommonArea>> selectNativePlace() { List<CommonArea> listCommonArea = commonAreaMapper.AllAreaForTree(); return ResultUtil.data(listCommonArea); } /** * 查询员工列表 * * @param * @return */ @GetMapping(value = "/queryemp") @ApiOperation(value = "62.查询员工列表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 62) public Result<List<YgQueryDto>> queryEmpMessage(@CurrentUser UserBean userBean) { List<YgQueryDto> ygQueryDto = ygglMainEmpMapper.queryEmpMessage(userBean.getOrgCode()); for (YgQueryDto yg : ygQueryDto) { if (StringUtil.isEmpty(yg.getHeadUrl())) { yg.setHeadUrl(""); } } return ResultUtil.data(ygQueryDto); } /*************** 统计图 ***************/ /** * 查询统计图 * * @return 成功信息 */ @GetMapping("/yggl") @ApiOperation(value = "63.获取员工管理统计图信息", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 63) public Result<Map<String, Object>> queryYgglCartogram(@CurrentUser UserBean userBean) { Map<String, Object> map = new HashMap<String, Object>(); YgglCartogramDto ygglCartogramDto1 = ygglMainEmpMapper.queryPositive(userBean); YgglCartogramDto ygglCartogramDto2 = ygglMainEmpMapper.queryAvgAge(userBean); YgglCartogramDto ygglCartogramDto3 = ygglMainEmpMapper.queryInduction(userBean); YgglCartogramDto ygglCartogramDto4 = ygglMainEmpMapper.queryInservice(userBean); YgglCartogramDto ygglCartogramDto5 = ygglMainLzbMapper.queryDeparture(userBean); List<YgglCartogramDto> ygglCartogramDto6 = ygglMainEmpMapper.queryDepartmentNum(userBean); List<YgglCartogramDto> ygglCartogramDto7 = ygglMainEmpMapper.queryEducation(userBean); List<YgglCartogramDto> ygglCartogramDto8 = ygglMainEmpMapper.queryJobsNum(userBean); List<YgglCartogramDto> ygglCartogramDto9 = ygglMainEmpMapper.queryEmpAge(userBean); List<YgglCartogramDto> ygglCartogramDto10 = ygglMainEmpMapper.queryNativeplace(userBean); List<YgglCartogramDto> ygglCartogramDto11 = ygglMainEmpMapper.queryWorkingAge(userBean); map.put("positive", ygglCartogramDto1.getPositive()); if (ygglCartogramDto2 != null) { map.put("avgAge", ygglCartogramDto2.getAvgAge()); } map.put("induction", ygglCartogramDto3.getInduction()); map.put("probation", ygglCartogramDto4.getProbation()); map.put("regular", ygglCartogramDto4.getRegular()); map.put("departure", ygglCartogramDto5.getDepartureNum()); map.put("department", ygglCartogramDto6); map.put("education", ygglCartogramDto7); map.put("jobs", ygglCartogramDto8); map.put("empAge", ygglCartogramDto9); map.put("nativeplace", ygglCartogramDto10); map.put("workingAge", ygglCartogramDto11); return ResultUtil.data(map); } /** * 员工信息统计图 * * @return 成功信息(weng) */ @GetMapping("/Cartogram") @ApiOperation(value = "64.获取员工管理统计图信息", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 64) public Result<YgCartogramDto> ygCartogram(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<YgbintuDto> bintu = ygglMainEmpMapper.rsybp(orgCode); Map<String, Long> gw = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getGw, Collectors.counting())); List<YgKVDto> gwList = new ArrayList<YgKVDto>(); for (Map.Entry<String, Long> entry : gw.entrySet()) { gwList.add(new YgKVDto(entry.getKey(), entry.getValue().toString())); } Map<String, Long> bm = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm, Collectors.counting())); List<YgKVDto> bmList = new ArrayList<YgKVDto>(); for (Map.Entry<String, Long> entry : bm.entrySet()) { bmList.add(new YgKVDto(entry.getKey(), entry.getValue().toString())); } Map<String, Long> edu = bintu.stream() .collect(Collectors.groupingBy(YgbintuDto::getEduname, Collectors.counting())); List<YgKVDto> eduList = new ArrayList<YgKVDto>(); for (Map.Entry<String, Long> entry : edu.entrySet()) { eduList.add(new YgKVDto(entry.getKey(), entry.getValue().toString())); } Map<Integer, Long> jobStatus = bintu.stream() .collect(Collectors.groupingBy(YgbintuDto::getJobStatus, Collectors.counting())); List<YgKVDto> jobStatusList = new ArrayList<YgKVDto>(); for (Entry<Integer, Long> entry : jobStatus.entrySet()) { jobStatusList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString())); } Map<String, Long> proname = bintu.stream() .collect(Collectors.groupingBy(YgbintuDto::getProname, Collectors.counting())); List<YgKVDto> pronameList = new ArrayList<YgKVDto>(); for (Entry<String, Long> entry : proname.entrySet()) { pronameList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString())); } Map<String, Integer> workage = YgEnumInterface.workage.choose(bintu); List<YgKVDto> workageList = new ArrayList<YgKVDto>(); for (Entry<String, Integer> entry : workage.entrySet()) { workageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString())); } Map<String, Integer> age = YgEnumInterface.age.choose(bintu); List<YgKVDto> ageList = new ArrayList<YgKVDto>(); for (Entry<String, Integer> entry : age.entrySet()) { ageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString())); } // 在职 Integer zaizhi = jobStatus.get(YgEnumInterface.jobStatus.ZHENSHI.getType()).intValue() + jobStatus.get(YgEnumInterface.jobStatus.SHIYONG.getType()).intValue(); // 本月新入职 Integer xinruzhi = workage.get("本月新入职").intValue(); // 本月离职 Integer lizhi = ygglMainEmpMapper.benyueLz(orgCode); // 本月转正 Integer zhuanzhen = ygglMainEmpMapper.benyueZz(orgCode); // 平均年龄 Integer nianlin = age.get("平均年龄").intValue(); YgCartogramDto ybp = new YgCartogramDto(); ybp.setOnTheJob(zaizhi); ybp.setNewRecruits(xinruzhi); ybp.setDimission(lizhi); ybp.setRegularization(zhuanzhen); ybp.setAverageAge(nianlin); ybp.setDepartment(bmList); ybp.setPosition(gwList); ybp.setEdu(eduList); ybp.setJobStatus(jobStatusList); ybp.setProname(pronameList); ybp.setWorkage(workageList); ybp.setAge(ageList); return ResultUtil.data(ybp); } /** * 获取员工社保公积金 * * @param * @return */ @GetMapping(value = "/ygsbgjj") @ApiOperation(value = "65.获取员工社保公积金", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 65) public Result<YgglAttaSbgjj> selectygsbgjj(@CurrentUser UserBean userBean) { YgglAttaSbgjj ygglAttaSbgjj = YgglAttaSbgjj.builder().build().selectOne( new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getOrgCode, userBean.getOrgCode()) .eq(YgglAttaSbgjj::getEmpNum, userBean.getEmpNum())); return ResultUtil.data(ygglAttaSbgjj); } /** * 获取员工社保公积金 * * @param * @return */ @GetMapping(value = "/ygsbgjj/{empNum}") @ApiOperation(value = "66.获取员工社保公积金", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 66) public Result<YgglAttaSbgjj> selectygsbgjj(@CurrentUser UserBean userBean, @PathVariable Integer empNum) { YgglAttaSbgjj ygglAttaSbgjj = YgglAttaSbgjj.builder().build() .selectOne(new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum)); return ResultUtil.data(ygglAttaSbgjj); } /** * 添加/修改员工社保公积金 * * @param * @return */ @PostMapping(value = "/ygsbgjj") @ApiOperation(value = "67.添加/修改员工社保公积金", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 67) public Result<YgglAttaSbgjj> addygsbgjj(@CurrentUser UserBean userBean, @RequestBody YgglAttaSbgjj ygglAttaSbgjj) { Integer empNum = ygglAttaSbgjj.getEmpNum(); if (empNum == null) { return ResultUtil.error(); } YgglAttaSbgjj AttaSbgjj = YgglAttaSbgjj.builder().build() .selectOne(new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum)); if (AttaSbgjj != null) { ygglAttaSbgjj.update(new UpdateWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum)); } else { ygglAttaSbgjj.insert(); } return ResultUtil.data(ygglAttaSbgjj); } /** * 删除员工社保公积金 * * @param * @return */ @DeleteMapping(value = "/ygsbgjj/{id}") @ApiOperation(value = "68.删除员工社保公积金", httpMethod = "DELETE", notes = "接口发布说明") @ApiOperationSupport(order = 68) public Result<Boolean> delygsbgjj(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); return ResultUtil.data(YgglAttaSbgjj.builder().build().delete(new QueryWrapper<YgglAttaSbgjj>().lambda() .eq(YgglAttaSbgjj::getOrgCode, orgCode).eq(YgglAttaSbgjj::getId, id))); } @GetMapping(value = "/sysRegion") @ApiOperation(value = "省市区字典(贼全)", httpMethod = "GET", notes = "接口发布说明") public Result<List<Tree<String>>> sysRegion() { List<SysRegion> nodeList = SysRegion.builder().build() .selectList(new LambdaQueryWrapper<SysRegion>().select(SysRegion::getKeyId, SysRegion::getRegionCode, SysRegion::getRegionName, SysRegion::getMerName, SysRegion::getLevel, SysRegion::getZipCode)); // 配置 TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // 自定义属性名 都要默认值的 treeNodeConfig.setIdKey("key_id"); treeNodeConfig.setParentIdKey("region_code"); // 最大递归深度 treeNodeConfig.setDeep(4); List<Tree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig, (treeNode, tree) -> { tree.setId(treeNode.getKeyId().toString()); tree.setParentId(treeNode.getRegionCode().toString()); tree.setName(treeNode.getRegionName()); // 扩展属性 ... tree.putExtra("mer_name", treeNode.getMerName()); tree.putExtra("zip_code", treeNode.getZipCode()); }); return ResultUtil.data(treeNodes); } /** * 获取登录人的相关信息 * * @param * @return */ @GetMapping(value = "/loginmessage") @ApiOperation(value = "69.获取登录人的相关信息", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 69) public Result<LoginInfoDto> loginmessage(@CurrentUser UserBean userBean) { Integer empNum = userBean.getEmpNum(); Integer orgCode = userBean.getOrgCode(); LoginInfoDto loginInfo = LoginInfoDto.builder().build(); YgglMainEmp ygglMainEmp = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper) .select(YgglMainEmp::getBmgwId, YgglMainEmp::getName, YgglMainEmp::getRzTime, YgglMainEmp::getZzTime,YgglMainEmp::getSyq, YgglMainEmp::getEmpNum) .eq(YgglMainEmp::getEmpNum, empNum).eq(YgglMainEmp::getOrgCode, orgCode).one(); if (ygglMainEmp != null) { Integer gw = ygglMainEmp.getBmgwId(); ZzglBmgwM gwObj = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .select(ZzglBmgwM::getUpId, ZzglBmgwM::getName).eq(ZzglBmgwM::getId, gw) .eq(ZzglBmgwM::getOrgCode, orgCode).one(); if (gwObj != null) { ZzglBmgwM bmObj = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .select(ZzglBmgwM::getId, ZzglBmgwM::getName).eq(ZzglBmgwM::getId, gwObj.getUpId()) .eq(ZzglBmgwM::getOrgCode, orgCode).one(); loginInfo.setBmId(bmObj != null ? bmObj.getId() : null); loginInfo.setBmName(bmObj != null ? bmObj.getName() : null); } loginInfo.setEmpNum(ygglMainEmp.getEmpNum()); loginInfo.setName(ygglMainEmp.getName()); loginInfo.setGwId(gw); loginInfo.setGwName(gwObj != null ? gwObj.getName() : ""); loginInfo.setEntryTime(ygglMainEmp.getRzTime()); if(ygglMainEmp.getSyq()!=null) { // System.out.println(ygglMainEmp.getSyq()); Date expireDate = DateUtil.offsetMonth(ygglMainEmp.getRzTime(), ygglMainEmp.getSyq()); // 时间偏移 loginInfo.setRegularTime(expireDate); }else { loginInfo.setRegularTime(new Date()); } } return ResultUtil.data(loginInfo); } /** * 获取登录人和上级主管的empNum和名称 * * @param * @return */ @GetMapping(value = "/loginerChargers") @ApiOperation(value = "70.获取登录人和上级主管的empNum和名称", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 70) public Result<List<LoginerChargeDto>> loginerChargers(@CurrentUser UserBean userBean) { List<LoginerChargeDto> loginerChargeDtos = new ArrayList<LoginerChargeDto>(); Integer orgCode = userBean.getOrgCode(); ArrayList<Integer> list = new ArrayList<Integer>(); Integer empNum = userBean.getEmpNum(); Integer gw = empNumConfirm(orgCode, empNum).getBmgwId(); if(gw != null && gw > 0) { ZzglBmgwM buid = ZzglBmgwM.builder().id(gw).build().selectById(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getType, 0).list(); // 获取该员工的上级部门id 的数组list ZzglBmgwM.getUpDepts(list, buid.getUpId(), zzglBmgwMs); List<Integer> leaderList = new ArrayList<Integer>(); for (Integer zzglId : list) { for (ZzglBmgwM zzglBmgwM : zzglBmgwMs) { if (zzglId.equals(zzglBmgwM.getId()) && zzglBmgwM.getLeader() != null) { leaderList.add(zzglBmgwM.getLeader()); } } } List<YgglMainEmp> ygglMainEmps = empNumsConfirm(orgCode, leaderList); // List<LoginerChargeDto> loginerChargeDtos = new ArrayList<LoginerChargeDto>(); for (Integer leaderId : leaderList) { for (YgglMainEmp m : ygglMainEmps) { if(leaderId.equals(m.getEmpNum())) { if (m.getHeadUrl() == null) { m.setHeadUrl(CommonEnum.NULL_STR.getDesc()); } loginerChargeDtos.add(new LoginerChargeDto(m.getEmpNum(), m.getName(), m.getHeadUrl())); } } } Collections.reverse(loginerChargeDtos); if(loginerChargeDtos.size()>0) { if((userBean.getEmpNum()).equals(loginerChargeDtos.get(loginerChargeDtos.size()-1).getLeaderEmpNum())) { loginerChargeDtos.remove(loginerChargeDtos.size()-1); } } return ResultUtil.data(loginerChargeDtos); } return ResultUtil.data(loginerChargeDtos); } // 根据传来的empNum获取该人员信息,没有则传全部 public List<YgglMainEmp> empNumsConfirm(Integer orgCode, List<Integer> empNumList) { List<YgglMainEmp> all = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper) .eq(YgglMainEmp::getOrgCode, orgCode).list(); List<YgglMainEmp> ygglMainEmps = new ArrayList<YgglMainEmp>(); if (empNumList.size() != 0) { for (Integer empNum : empNumList) { all.stream().filter(item -> empNum.equals(item.getEmpNum())).forEach(action -> { ygglMainEmps.add(action); }); } } else { ygglMainEmps.addAll(all); } return ygglMainEmps; } // 根据传来的empNum获取该人员信息 public YgglMainEmp empNumConfirm(Integer orgCode, Integer empNum) { YgglMainEmp one = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper) .eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum).one(); return one; } /** * 获取用户头像 * * @param * @return */ @PostMapping(value = "/headphotos") @ApiOperation(value = "71.获取用户头像", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 71) public Result<List<YgglMainEmp>> headphotos(@CurrentUser UserBean userBean, @RequestBody List<Integer> empNumList) { if (empNumList == null || empNumList.size() == 0) { return ResultUtil.error("存在未设置的审批人"); } List<YgglMainEmp> yglList = YgglMainEmp.builder().build() .selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()) .in(YgglMainEmp::getEmpNum, empNumList) .select(YgglMainEmp::getId,YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getHeadUrl).orderByDesc(YgglMainEmp::getId)); for (YgglMainEmp yg : yglList) { if (StringUtil.isEmpty(yg.getHeadUrl())) { yg.setHeadUrl(CommonEnum.NULL_STR.getDesc()); } } return ResultUtil.data(yglList); } @Autowired private KqglAssoLeaveBalanceMapper kqglassoleavebalancemapper; @GetMapping(value = "/address_book") @ApiOperation(value = "APP 获取通讯录", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 70) public Result<Object> Getaddressbook(@CurrentUser UserBean userBean) { List<AdditionalDto> userlist = kqglassoleavebalancemapper.selectAdditionalList(userBean.getOrgCode()); return ResultUtil.data(userlist); } @PostMapping(value = "/modify_avatar") @ApiOperation(value = "APP_修改头像", httpMethod = "POST", notes = "接口发布说明") public Result<YgglAttaSbgjj> Modify_Avatar(@CurrentUser UserBean userBean, @RequestBody ModifyAvatarDto modifyavatardto) { YgglMainEmp.builder().headUrl(modifyavatardto.getAvatar_path()).build().update(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()) .eq(YgglMainEmp::getEmpNum, userBean.getEmpNum())); QyzxEmpLogin.builder().headUrl(modifyavatardto.getAvatar_path()).build().update(new QueryWrapper<QyzxEmpLogin>().lambda().eq(QyzxEmpLogin::getOrgId, userBean.getOrgCode()) .eq(QyzxEmpLogin::getPhone, userBean.getQyzxEmpLogin().getPhone())); return ResultUtil.success("上传成功"); } @PostMapping(value = "/new_account") @ApiOperation(value = "修改账号", httpMethod = "POST", notes = "接口发布说明") public Result<Object> New_account(@CurrentUser UserBean userBean, @RequestBody UserInfo userinfo) { YgglMainEmp sjhpd = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getPhone, userinfo.getPhone()) .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); if(sjhpd == null) { YgglMainEmp.builder().phone(userinfo.getPhone()).build().update(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, userinfo.getName()).eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); QyzxEmpLogin.builder().phone(userinfo.getPhone()).build().update(new QueryWrapper<QyzxEmpLogin>().lambda().eq(QyzxEmpLogin::getId,userinfo.getName()).eq(QyzxEmpLogin::getOrgId, userBean.getOrgCode())); return ResultUtil.success("修改成功"); }else { return ResultUtil.error("该号码已存在"); } } }