新增查询合同分页功能

在AdminUserMapper中添加了新的分页查询方法selectContractPage,该方法根据LaborContractPageReqVO参数从数据库中检索合同数据,并返回LaborContractRespVO类型的分页结果。
This commit is contained in:
furongxin 2024-09-20 15:56:44 +08:00
parent 08b86ed048
commit 6672357229
2 changed files with 47 additions and 1 deletions

View File

@ -4,12 +4,16 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
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.user.dto.UserPageDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO;
import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsTypeDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
@ -17,6 +21,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@Mapper
public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
@ -107,4 +112,45 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
* @return
*/
IPage<UserSimpleRespVO> getAllUserListByGroupIds(@Param("mpPage") IPage mpPage, @Param("dto") UserPageDTO dto);
default IPage<LaborContractRespVO> selectContractPage(IPage<LaborContractRespVO> mpPage, LaborContractPageReqVO pageReqVO) {
MPJLambdaWrapperX<AdminUserDO> queryWrapper = new MPJLambdaWrapperX<AdminUserDO>()
.selectAs("a.id", LaborContractRespVO::getId)
.selectAs(AdminUserDO::getId, LaborContractRespVO::getUserId)
.selectAs(AdminUserDO::getNickname, LaborContractRespVO::getUserName)
.selectAs(AdminUserDO::getDeptId, LaborContractRespVO::getDeptId)
.selectAs(DeptDO::getName, LaborContractRespVO::getDeptName)
.selectAs("a.signingDate", LaborContractRespVO::getSigningDate)
.selectAs("a.expirationDate", LaborContractRespVO::getExpirationDate)
.selectAs("a.contractDuration", LaborContractRespVO::getContractDuration)
.selectAs("a.probationPeriodTime", LaborContractRespVO::getProbationPeriodTime)
.selectAs("a.status", LaborContractRespVO::getStatus)
.selectAs("a.createTime", LaborContractRespVO::getCreateTime)
.selectCount("a.id", LaborContractRespVO::getSigningCount);
queryWrapper.innerJoin(DeptDO.class, DeptDO::getId, AdminUserDO::getDeptId)
.leftJoin("(SELECT\n" +
" id,\n" +
" user_id,\n" +
" signing_date AS signingDate,\n" +
" expiration_date AS expirationDate,\n" +
" contract_duration AS contractDuration,\n" +
" status,\n" +
" MAX( create_time ) AS createTime\n" +
" FROM\n" +
" system_labor_contract\n" +
" WHERE\n" +
" deleted = 0\n" +
" GROUP BY\n" +
" id) a on a.id = t.id");
queryWrapper.likeIfPresent(AdminUserDO::getNickname, pageReqVO.getUserName());
queryWrapper.eqIfPresent(AdminUserDO::getDeptId, pageReqVO.getDeptId());
queryWrapper.between(Objects.nonNull(pageReqVO.getSigningDate()), "a.signingDate", pageReqVO.getSigningDate()[0], pageReqVO.getSigningDate()[1]);
queryWrapper.between(Objects.nonNull(pageReqVO.getExpirationDate()), "a.expirationDate", pageReqVO.getExpirationDate()[0], pageReqVO.getExpirationDate()[1]);
queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()),"a.status", pageReqVO.getStatus());
queryWrapper.groupBy(AdminUserDO::getId);
queryWrapper.orderByAsc("a.status");
return selectJoinPage(mpPage, LaborContractRespVO.class, queryWrapper);
}
}

View File

@ -27,7 +27,7 @@
</foreach>
</select>
<select id="selectUserByBoss">
<select id="selectUserByBoss" resultType="java.lang.Long">
SELECT DISTINCT
a.id
FROM