入职离职初步完成

This commit is contained in:
2025-02-16 18:41:56 +08:00
parent 75acf69848
commit 15a8480784
33 changed files with 3438 additions and 5 deletions

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.EmployeeOffboarding;
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
import com.ruoyi.oa.domain.bo.EmployeeOffboardingBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 离职管理Service接口
*
* @author hdka
* @date 2025-02-16
*/
public interface IEmployeeOffboardingService {
/**
* 查询离职管理
*/
EmployeeOffboardingVo queryById(Long offboardingId);
/**
* 查询离职管理列表
*/
TableDataInfo<EmployeeOffboardingVo> queryPageList(EmployeeOffboardingBo bo, PageQuery pageQuery);
/**
* 查询离职管理列表
*/
List<EmployeeOffboardingVo> queryList(EmployeeOffboardingBo bo);
/**
* 新增离职管理
*/
Boolean insertByBo(EmployeeOffboardingBo bo);
/**
* 修改离职管理
*/
Boolean updateByBo(EmployeeOffboardingBo bo);
/**
* 校验并批量删除离职管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
import java.util.Collection;
import java.util.List;
/**
* 入职管理Service接口
*
* @author hdka
* @date 2025-02-15
*/
public interface IEmployeeOnboardingService {
/**
* 查询入职管理
*/
EmployeeOnboardingVo queryById(Long onboardingId);
/**
* 查询入职管理列表
*/
TableDataInfo<EmployeeOnboardingVo> queryPageList(EmployeeOnboardingBo bo, PageQuery pageQuery);
/**
* 查询入职管理列表
*/
List<EmployeeOnboardingVo> queryList(EmployeeOnboardingBo bo);
/**
* 新增入职管理
*/
Boolean insertByBo(EmployeeOnboardingBo bo);
/**
* 修改入职管理
*/
Boolean updateByBo(EmployeeOnboardingBo bo);
/**
* 校验并批量删除入职管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,135 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.system.service.ISysUserService;
import liquibase.pro.packaged.A;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.EmployeeOffboardingBo;
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
import com.ruoyi.oa.domain.EmployeeOffboarding;
import com.ruoyi.oa.mapper.EmployeeOffboardingMapper;
import com.ruoyi.oa.service.IEmployeeOffboardingService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 离职管理Service业务层处理
*
* @author hdka
* @date 2025-02-16
*/
@RequiredArgsConstructor
@Service
public class EmployeeOffboardingServiceImpl implements IEmployeeOffboardingService {
private final EmployeeOffboardingMapper baseMapper;
@Autowired
private ISysUserService userService;
/**
* 查询离职管理
*/
@Override
public EmployeeOffboardingVo queryById(Long offboardingId){
EmployeeOffboardingVo employeeOffboardingVo = baseMapper.selectVoById(offboardingId);
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOffboardingVo.getUserId());
employeeOffboardingVo.setNickName(sysUser.getUserName());
return employeeOffboardingVo;
}
/**
* 查询离职管理列表
*/
@Override
public TableDataInfo<EmployeeOffboardingVo> queryPageList(EmployeeOffboardingBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmployeeOffboarding> lqw = buildQueryWrapper(bo);
Page<EmployeeOffboardingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
result.getRecords().forEach(item -> {
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(item.getUserId());
item.setNickName(sysUser.getUserName());
});
return TableDataInfo.build(result);
}
/**
* 查询离职管理列表
*/
@Override
public List<EmployeeOffboardingVo> queryList(EmployeeOffboardingBo bo) {
LambdaQueryWrapper<EmployeeOffboarding> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmployeeOffboarding> buildQueryWrapper(EmployeeOffboardingBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmployeeOffboarding> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, EmployeeOffboarding::getUserId, bo.getUserId());
lqw.eq(bo.getResignationDate() != null, EmployeeOffboarding::getResignationDate, bo.getResignationDate());
lqw.eq(bo.getExitInterview() != null, EmployeeOffboarding::getExitInterview, bo.getExitInterview());
lqw.eq(bo.getHandoverCompleted() != null, EmployeeOffboarding::getHandoverCompleted, bo.getHandoverCompleted());
lqw.eq(StringUtils.isNotBlank(bo.getExitReason()), EmployeeOffboarding::getExitReason, bo.getExitReason());
lqw.eq(bo.getFinalSalary() != null, EmployeeOffboarding::getFinalSalary, bo.getFinalSalary());
lqw.eq(bo.getResignationApplicationSubmitted() != null, EmployeeOffboarding::getResignationApplicationSubmitted, bo.getResignationApplicationSubmitted());
lqw.eq(bo.getDataBackupCompleted() != null, EmployeeOffboarding::getDataBackupCompleted, bo.getDataBackupCompleted());
lqw.eq(bo.getHandoverArranged() != null, EmployeeOffboarding::getHandoverArranged, bo.getHandoverArranged());
lqw.eq(bo.getSalarySettled() != null, EmployeeOffboarding::getSalarySettled, bo.getSalarySettled());
lqw.eq(bo.getBenefitsSettled() != null, EmployeeOffboarding::getBenefitsSettled, bo.getBenefitsSettled());
lqw.eq(bo.getExitCertificateIssued() != null, EmployeeOffboarding::getExitCertificateIssued, bo.getExitCertificateIssued());
lqw.eq(bo.getOffboardingConfirmed() != null, EmployeeOffboarding::getOffboardingConfirmed, bo.getOffboardingConfirmed());
return lqw;
}
/**
* 新增离职管理
*/
@Override
public Boolean insertByBo(EmployeeOffboardingBo bo) {
EmployeeOffboarding add = BeanUtil.toBean(bo, EmployeeOffboarding.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setOffboardingId(add.getOffboardingId());
}
return flag;
}
/**
* 修改离职管理
*/
@Override
public Boolean updateByBo(EmployeeOffboardingBo bo) {
EmployeeOffboarding update = BeanUtil.toBean(bo, EmployeeOffboarding.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmployeeOffboarding entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除离职管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,141 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.EmployeeOnboarding;
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
import com.ruoyi.oa.mapper.EmployeeOnboardingMapper;
import com.ruoyi.oa.service.IEmployeeOnboardingService;
import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 入职管理Service业务层处理
*
* @author hdka
* @date 2025-02-15
*/
@RequiredArgsConstructor
@Service
public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService {
private final EmployeeOnboardingMapper baseMapper;
@Autowired
private ISysUserService userService;
/**
* 查询入职管理
*/
@Override
public EmployeeOnboardingVo queryById(Long onboardingId){
EmployeeOnboardingVo employeeOnboardingVo = baseMapper.selectVoById(onboardingId);
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOnboardingVo.getUserId());
employeeOnboardingVo.setUserName(sysUser.getUserName());
employeeOnboardingVo.setNickName(sysUser.getNickName());
employeeOnboardingVo.setEmail(sysUser.getEmail());
employeeOnboardingVo.setPhonenumber(sysUser.getPhonenumber());
employeeOnboardingVo.setBankCard(sysUser.getBankCard());
employeeOnboardingVo.setIdCard(sysUser.getIdCard());
employeeOnboardingVo.setDeptId(sysUser.getDeptId());
return employeeOnboardingVo;
}
/**
* 查询入职管理列表
*/
@Override
public TableDataInfo<EmployeeOnboardingVo> queryPageList(EmployeeOnboardingBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmployeeOnboarding> lqw = buildQueryWrapper(bo);
Page<EmployeeOnboardingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
result.getRecords().forEach(employeeOnboardingVo -> {
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOnboardingVo.getUserId());
employeeOnboardingVo.setNickName(sysUser.getNickName());
});
return TableDataInfo.build(result);
}
/**
* 查询入职管理列表
*/
@Override
public List<EmployeeOnboardingVo> queryList(EmployeeOnboardingBo bo) {
LambdaQueryWrapper<EmployeeOnboarding> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmployeeOnboarding> buildQueryWrapper(EmployeeOnboardingBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmployeeOnboarding> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, EmployeeOnboarding::getUserId, bo.getUserId());
lqw.eq(bo.getJoiningDate() != null, EmployeeOnboarding::getJoiningDate, bo.getJoiningDate());
lqw.eq(bo.getProbationPeriodEnd() != null, EmployeeOnboarding::getProbationPeriodEnd, bo.getProbationPeriodEnd());
lqw.eq(bo.getManagerId() != null, EmployeeOnboarding::getManagerId, bo.getManagerId());
lqw.eq(bo.getDocumentsSubmitted() != null, EmployeeOnboarding::getDocumentsSubmitted, bo.getDocumentsSubmitted());
lqw.eq(bo.getOrientationCompleted() != null, EmployeeOnboarding::getOrientationCompleted, bo.getOrientationCompleted());
lqw.eq(bo.getJoiningStatus() != null, EmployeeOnboarding::getJoiningStatus, bo.getJoiningStatus());
lqw.eq(bo.getRecruitmentCompleted() != null, EmployeeOnboarding::getRecruitmentCompleted, bo.getRecruitmentCompleted());
lqw.eq(bo.getOfferIssued() != null, EmployeeOnboarding::getOfferIssued, bo.getOfferIssued());
lqw.eq(bo.getContractSigned() != null, EmployeeOnboarding::getContractSigned, bo.getContractSigned());
lqw.eq(bo.getMaterialsPrepared() != null, EmployeeOnboarding::getMaterialsPrepared, bo.getMaterialsPrepared());
lqw.eq(bo.getTrainingCompleted() != null, EmployeeOnboarding::getTrainingCompleted, bo.getTrainingCompleted());
lqw.eq(bo.getWorkConditionsPrepared() != null, EmployeeOnboarding::getWorkConditionsPrepared, bo.getWorkConditionsPrepared());
return lqw;
}
/**
* 新增入职管理
*/
@Override
public Boolean insertByBo(EmployeeOnboardingBo bo) {
EmployeeOnboarding add = BeanUtil.toBean(bo, EmployeeOnboarding.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setOnboardingId(add.getOnboardingId());
}
return flag;
}
/**
* 修改入职管理
*/
@Override
public Boolean updateByBo(EmployeeOnboardingBo bo) {
EmployeeOnboarding update = BeanUtil.toBean(bo, EmployeeOnboarding.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmployeeOnboarding entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除入职管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}