Files
klp-oa/klp-wms/src/main/java/com/klp/service/impl/WmsEmployeeInfoServiceImpl.java

148 lines
6.2 KiB
Java
Raw Normal View History

package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.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.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsEmployeeInfoBo;
import com.klp.domain.vo.WmsEmployeeInfoVo;
import com.klp.domain.WmsEmployeeInfo;
import com.klp.mapper.WmsEmployeeInfoMapper;
import com.klp.service.IWmsEmployeeInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 员工信息Service业务层处理
*
* @author klp
* @date 2026-03-02
*/
@RequiredArgsConstructor
@Service
public class WmsEmployeeInfoServiceImpl implements IWmsEmployeeInfoService {
private final WmsEmployeeInfoMapper baseMapper;
/**
* 查询员工信息
*/
@Override
public WmsEmployeeInfoVo queryById(Long infoId){
return baseMapper.selectVoById(infoId);
}
/**
* 查询员工信息列表
*/
@Override
public TableDataInfo<WmsEmployeeInfoVo> queryPageList(WmsEmployeeInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsEmployeeInfo> lqw = buildQueryWrapper(bo);
Page<WmsEmployeeInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询员工信息列表
*/
@Override
public List<WmsEmployeeInfoVo> queryList(WmsEmployeeInfoBo bo) {
LambdaQueryWrapper<WmsEmployeeInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsEmployeeInfo> buildQueryWrapper(WmsEmployeeInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsEmployeeInfo> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getSerialNumber() != null, WmsEmployeeInfo::getSerialNumber, bo.getSerialNumber());
lqw.eq(StringUtils.isNotBlank(bo.getDept()), WmsEmployeeInfo::getDept, bo.getDept());
lqw.eq(StringUtils.isNotBlank(bo.getJobType()), WmsEmployeeInfo::getJobType, bo.getJobType());
lqw.like(StringUtils.isNotBlank(bo.getName()), WmsEmployeeInfo::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getIdCard()), WmsEmployeeInfo::getIdCard, bo.getIdCard());
lqw.eq(bo.getAge() != null, WmsEmployeeInfo::getAge, bo.getAge());
lqw.eq(StringUtils.isNotBlank(bo.getGender()), WmsEmployeeInfo::getGender, bo.getGender());
lqw.eq(StringUtils.isNotBlank(bo.getEducation()), WmsEmployeeInfo::getEducation, bo.getEducation());
lqw.eq(StringUtils.isNotBlank(bo.getHomeAddress()), WmsEmployeeInfo::getHomeAddress, bo.getHomeAddress());
lqw.eq(StringUtils.isNotBlank(bo.getPhone()), WmsEmployeeInfo::getPhone, bo.getPhone());
lqw.eq(bo.getEntryTime() != null, WmsEmployeeInfo::getEntryTime, bo.getEntryTime());
lqw.ge(bo.getEntryStartTime() != null, WmsEmployeeInfo::getEntryTime, bo.getEntryStartTime());
lqw.le(bo.getEntryEndTime() != null, WmsEmployeeInfo::getEntryTime, bo.getEntryEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getEmergencyContact()), WmsEmployeeInfo::getEmergencyContact, bo.getEmergencyContact());
lqw.eq(StringUtils.isNotBlank(bo.getRelationship()), WmsEmployeeInfo::getRelationship, bo.getRelationship());
lqw.eq(StringUtils.isNotBlank(bo.getEmergencyContactPhone()), WmsEmployeeInfo::getEmergencyContactPhone, bo.getEmergencyContactPhone());
lqw.eq(StringUtils.isNotBlank(bo.getSocialInsuranceType()), WmsEmployeeInfo::getSocialInsuranceType, bo.getSocialInsuranceType());
// 是否离职
lqw.eq(bo.getIsLeave() != null, WmsEmployeeInfo::getIsLeave, bo.getIsLeave());
// 离职时间范围查询
lqw.ge(bo.getLeaveStartTime() != null, WmsEmployeeInfo::getLeaveTime, bo.getLeaveStartTime());
lqw.le(bo.getLeaveEndTime() != null, WmsEmployeeInfo::getLeaveTime, bo.getLeaveEndTime());
// 是否转正
lqw.eq(bo.getIsRegular() != null, WmsEmployeeInfo::getIsRegular, bo.getIsRegular());
// 按照转正开始时间和转正结束时间进行查询
lqw.ge(bo.getRegularStartTime() != null, WmsEmployeeInfo::getRegularTime, bo.getRegularStartTime());
lqw.le(bo.getRegularEndTime() != null, WmsEmployeeInfo::getRegularTime, bo.getRegularEndTime());
// 排序逻辑:优先判断入职时间排序,其次转正时间排序,默认创建时间倒序
if (Boolean.TRUE.equals(bo.getSortByEntryTime())) {
lqw.orderByDesc(WmsEmployeeInfo::getEntryTime);
} else if (Boolean.TRUE.equals(bo.getSortByRegularTime())) {
lqw.orderByDesc(WmsEmployeeInfo::getRegularTime);
} else {
// 默认按照创建时间倒序排序 (假设实体类中有 createTime 字段,若字段名不同请调整)
lqw.orderByDesc(WmsEmployeeInfo::getCreateTime);
}
return lqw;
}
/**
* 新增员工信息
*/
@Override
public Boolean insertByBo(WmsEmployeeInfoBo bo) {
WmsEmployeeInfo add = BeanUtil.toBean(bo, WmsEmployeeInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setInfoId(add.getInfoId());
}
return flag;
}
/**
* 修改员工信息
*/
@Override
public Boolean updateByBo(WmsEmployeeInfoBo bo) {
WmsEmployeeInfo update = BeanUtil.toBean(bo, WmsEmployeeInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsEmployeeInfo entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除员工信息
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}