From 6672357229c683dcd575afbf086a0b22ed2c2ead Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Fri, 20 Sep 2024 15:56:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E5=90=88?= =?UTF-8?q?=E5=90=8C=E5=88=86=E9=A1=B5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在AdminUserMapper中添加了新的分页查询方法selectContractPage,该方法根据LaborContractPageReqVO参数从数据库中检索合同数据,并返回LaborContractRespVO类型的分页结果。 --- .../dal/mysql/user/AdminUserMapper.java | 46 +++++++++++++++++++ .../resources/mapper/user/AdminUserMapper.xml | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index 57e2803a..55599af4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -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 { @@ -107,4 +112,45 @@ public interface AdminUserMapper extends BaseMapperX { * @return */ IPage getAllUserListByGroupIds(@Param("mpPage") IPage mpPage, @Param("dto") UserPageDTO dto); + + default IPage selectContractPage(IPage mpPage, LaborContractPageReqVO pageReqVO) { + + MPJLambdaWrapperX queryWrapper = new MPJLambdaWrapperX() + .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); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml index 987e6f0a..2f4cf71b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml @@ -27,7 +27,7 @@ - SELECT DISTINCT a.id FROM