优化了劳动合同分页查询逻辑,支持多部门ID查询与排序。调整了LaborContractPageReqVO以支持多部门ID查询,更改了AdminUserMapper中的查询逻辑,以使用IN操作符处理多部门ID。同时,实现了根据用户ID的升序排列。
在获取部门数据时,若提供了部门ID,则会获取该部门及其所有子部门,以支持更复杂的查询需求。 本次更新确保了劳动合同分页查询功能更加灵活和高效。
This commit is contained in:
parent
d51ca296ba
commit
38c4fda5ce
@ -8,6 +8,7 @@ import lombok.ToString;
|
|||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ -23,6 +24,9 @@ public class LaborContractPageReqVO extends PageParam {
|
|||||||
@Schema(description = "部门id", example = "128")
|
@Schema(description = "部门id", example = "128")
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|
||||||
|
@Schema(description = "部门id", example = "128")
|
||||||
|
private List<Long> deptIds;
|
||||||
|
|
||||||
@Schema(description = "签约日期")
|
@Schema(description = "签约日期")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDate[] signingDate;
|
private LocalDate[] signingDate;
|
||||||
|
@ -152,7 +152,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
|||||||
" AND lc.create_time = max.max_create_time) a on a.user_id = t.id");
|
" AND lc.create_time = max.max_create_time) a on a.user_id = t.id");
|
||||||
queryWrapper.eq(AdminUserDO::getUserType, 1);
|
queryWrapper.eq(AdminUserDO::getUserType, 1);
|
||||||
queryWrapper.likeIfPresent(AdminUserDO::getNickname, pageReqVO.getUserName());
|
queryWrapper.likeIfPresent(AdminUserDO::getNickname, pageReqVO.getUserName());
|
||||||
queryWrapper.eqIfPresent(AdminUserDO::getDeptId, pageReqVO.getDeptId());
|
queryWrapper.inIfPresent(AdminUserDO::getDeptId, pageReqVO.getDeptIds());
|
||||||
if (Objects.nonNull(pageReqVO.getSigningDate())) {
|
if (Objects.nonNull(pageReqVO.getSigningDate())) {
|
||||||
queryWrapper.between("a.signing_date", pageReqVO.getSigningDate()[0], pageReqVO.getSigningDate()[1]);
|
queryWrapper.between("a.signing_date", pageReqVO.getSigningDate()[0], pageReqVO.getSigningDate()[1]);
|
||||||
}
|
}
|
||||||
@ -162,6 +162,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
|||||||
queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()),"a.status", pageReqVO.getStatus());
|
queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()),"a.status", pageReqVO.getStatus());
|
||||||
queryWrapper.groupBy(AdminUserDO::getId);
|
queryWrapper.groupBy(AdminUserDO::getId);
|
||||||
queryWrapper.orderByAsc("a.status");
|
queryWrapper.orderByAsc("a.status");
|
||||||
|
queryWrapper.orderByAsc(AdminUserDO::getId);
|
||||||
|
|
||||||
return selectJoinPage(mpPage, LaborContractRespVO.class, queryWrapper);
|
return selectJoinPage(mpPage, LaborContractRespVO.class, queryWrapper);
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,11 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.laborcontract.LaborContractMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.laborcontract.LaborContractMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -21,6 +23,7 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.LABOR_CONTRACT_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.LABOR_CONTRACT_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,6 +41,9 @@ public class LaborContractServiceImpl implements LaborContractService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AdminUserMapper userMapper;
|
private AdminUserMapper userMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DeptService deptService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createLaborContract(LaborContractSaveReqVO createReqVO) {
|
public Long createLaborContract(LaborContractSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -94,6 +100,13 @@ public class LaborContractServiceImpl implements LaborContractService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<LaborContractRespVO> getLaborContractPage(LaborContractPageReqVO pageReqVO) {
|
public PageResult<LaborContractRespVO> getLaborContractPage(LaborContractPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
if (pageReqVO.getDeptId() != null) {
|
||||||
|
|
||||||
|
// 获取所有子级部门
|
||||||
|
List<DeptDO> deptDOS = deptService.getChildDept(pageReqVO.getDeptId());
|
||||||
|
pageReqVO.setDeptIds(convertList(deptDOS, DeptDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
Page<LaborContractRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
Page<LaborContractRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
IPage<LaborContractRespVO> pageList = userMapper.selectContractPage(page, pageReqVO);
|
IPage<LaborContractRespVO> pageList = userMapper.selectContractPage(page, pageReqVO);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user