优化了劳动合同分页查询逻辑,支持多部门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 java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
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")
|
||||
private Long deptId;
|
||||
|
||||
@Schema(description = "部门id", example = "128")
|
||||
private List<Long> deptIds;
|
||||
|
||||
@Schema(description = "签约日期")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
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");
|
||||
queryWrapper.eq(AdminUserDO::getUserType, 1);
|
||||
queryWrapper.likeIfPresent(AdminUserDO::getNickname, pageReqVO.getUserName());
|
||||
queryWrapper.eqIfPresent(AdminUserDO::getDeptId, pageReqVO.getDeptId());
|
||||
queryWrapper.inIfPresent(AdminUserDO::getDeptId, pageReqVO.getDeptIds());
|
||||
if (Objects.nonNull(pageReqVO.getSigningDate())) {
|
||||
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.groupBy(AdminUserDO::getId);
|
||||
queryWrapper.orderByAsc("a.status");
|
||||
queryWrapper.orderByAsc(AdminUserDO::getId);
|
||||
|
||||
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.LaborContractRespVO;
|
||||
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.mysql.laborcontract.LaborContractMapper;
|
||||
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.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -21,6 +23,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
@ -38,6 +41,9 @@ public class LaborContractServiceImpl implements LaborContractService {
|
||||
@Resource
|
||||
private AdminUserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
private DeptService deptService;
|
||||
|
||||
@Override
|
||||
public Long createLaborContract(LaborContractSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
@ -94,6 +100,13 @@ public class LaborContractServiceImpl implements LaborContractService {
|
||||
@Override
|
||||
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());
|
||||
IPage<LaborContractRespVO> pageList = userMapper.selectContractPage(page, pageReqVO);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user