From 6029bb270d9eab12552ae96b15d2258b117efe26 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Mon, 9 Dec 2024 15:40:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E4=BC=98=E5=8C=96=E5=90=88?= =?UTF-8?q?=E5=90=8C=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 AdminUserMapper 中的冗余查询和分组 - 在 LaborContractMapper 中添加新的查询方法 selectContractCount - 更新 LaborContractServiceImpl 中的 pageContract 方法,添加签订次数统计 --- .../laborcontract/LaborContractMapper.java | 3 +++ .../system/dal/mysql/user/AdminUserMapper.java | 4 +--- .../laborcontract/LaborContractServiceImpl.java | 17 +++++++++++++++++ .../laborcontract/LaborContractMapper.xml | 16 ++++++++++++++++ 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java index 027b78e1..e3456a78 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.system.controller.admin.file.vo.FileRespVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -38,4 +39,6 @@ public interface LaborContractMapper extends BaseMapperX { LaborContractDO getTheEarliestContract(@Param("userId") Long userId); List selectListByRemindDate(@Param("remindDate")LocalDate remindDate); + + List selectContractCount(@Param("userIds") List userIds); } 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 2ac898cd..83dae39f 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 @@ -120,8 +120,7 @@ public interface AdminUserMapper extends BaseMapperX { .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); + .selectAs("a.createTime", LaborContractRespVO::getCreateTime); queryWrapper.innerJoin(DeptDO.class, DeptDO::getId, AdminUserDO::getDeptId) .leftJoin("(SELECT\n" + " id,\n" + @@ -156,7 +155,6 @@ public interface AdminUserMapper extends BaseMapperX { queryWrapper.between("a.expiration_date", pageReqVO.getExpirationDate()[0], pageReqVO.getExpirationDate()[1]); } queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()), "a.status", pageReqVO.getStatus()); - queryWrapper.groupBy(AdminUserDO::getId); queryWrapper.orderByAsc("a.status"); queryWrapper.orderByAsc(AdminUserDO::getId); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java index 95caafb0..0e67d257 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java @@ -22,10 +22,12 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.time.LocalDate; import java.util.List; +import java.util.Map; 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.framework.common.util.collection.CollectionUtils.convertMap; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.LABOR_CONTRACT_NOT_EXISTS; /** @@ -126,6 +128,21 @@ public class LaborContractServiceImpl implements LaborContractService { Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageList = userMapper.selectContractPage(page, pageReqVO); + if (CollectionUtil.isNotEmpty(pageList.getRecords())) { + + List userIds = convertList(pageList.getRecords(), LaborContractRespVO::getUserId); + List countRespVOs = laborContractMapper.selectContractCount(userIds); + Map countMap = convertMap(countRespVOs, LaborContractRespVO::getUserId); + + pageList.getRecords().forEach(item -> { + LaborContractRespVO respVO = countMap.get(item.getUserId()); + if (respVO != null) { + item.setSigningCount(respVO.getSigningCount()); + }else { + item.setSigningCount(0); + } + }); + } return new PageResult<>(pageList.getRecords(), pageList.getTotal()); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml index de8317a9..e0a4ab7b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml @@ -39,4 +39,20 @@ AND status = 1 AND deleted = 0 + +