From c347e9a1bb6afcc7ac689584692f5a0500299a39 Mon Sep 17 00:00:00 2001 From: aikai Date: Thu, 4 Jul 2024 09:37:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E7=B2=BE?= =?UTF-8?q?=E7=AE=80=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/user/dto/UserPageDTO.java | 17 +++++++++++++++++ .../dal/mysql/user/AdminUserMapper.java | 9 +++++++-- .../system/service/user/AdminUserService.java | 6 ++++-- .../service/user/AdminUserServiceImpl.java | 7 +++++-- .../worklog/LogStatisticsServiceImpl.java | 19 ++++++++++++------- .../resources/mapper/user/AdminUserMapper.xml | 19 +++++++++++++++---- 6 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/dto/UserPageDTO.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/dto/UserPageDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/dto/UserPageDTO.java new file mode 100644 index 00000000..206bea70 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/dto/UserPageDTO.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.dto; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class UserPageDTO extends PageParam { + @Schema(description = "考勤组ids") + private List groupIds; + @Schema(description = "用户名称") + private String name; + @Schema(description = "状态(0正常 1停用)不传则全部", example = "1") + private Integer status; +} 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 cbf22ff7..fe4c698e 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 @@ -3,10 +3,13 @@ package cn.iocoder.yudao.module.system.dal.mysql.user; 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.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.user.AdminUserDO; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -95,8 +98,10 @@ public interface AdminUserMapper extends BaseMapperX { /** * 获取考勤组里所有的用户 - * @param groupIds + * + * @param mpPage + * @param dto * @return */ - List getAllUserListByGroupIds(@Param("groupIds") List groupIds); + IPage getAllUserListByGroupIds(@Param("mpPage") IPage mpPage, @Param("dto") UserPageDTO dto); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index 01c8c7c1..6433cdc2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.system.service.user; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +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.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.core.metadata.IPage; import javax.validation.Valid; import java.io.InputStream; @@ -300,8 +302,8 @@ public interface AdminUserService { /** * 获取所有人员列表根据考勤组 * - * @param groupIds + * @param dto * @return */ - List getAllUserListByGroupIds(List groupIds); + IPage getAllUserListByGroupIds(UserPageDTO dto); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index 987fb30e..57f1de62 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -12,7 +12,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.string.DTO.IdCardDO; import cn.iocoder.yudao.framework.common.util.string.StrUtils; import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.infra.api.file.FileApi; +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.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; @@ -27,6 +29,7 @@ import cn.iocoder.yudao.module.system.service.dept.PostService; import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.tenant.TenantService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.annotations.VisibleForTesting; import com.xingyuv.http.util.StringUtil; import lombok.extern.slf4j.Slf4j; @@ -598,8 +601,8 @@ public class AdminUserServiceImpl implements AdminUserService { } @Override - public List getAllUserListByGroupIds(List groupIds) { - return userMapper.getAllUserListByGroupIds(groupIds); + public IPage getAllUserListByGroupIds(UserPageDTO dto) { + return userMapper.getAllUserListByGroupIds(MyBatisUtils.buildPage(dto), dto); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogStatisticsServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogStatisticsServiceImpl.java index 823e57df..ae38b19a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogStatisticsServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogStatisticsServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; @@ -279,15 +280,19 @@ public class LogStatisticsServiceImpl implements LogStatisticsService { LogRuleDO logRuleDO = logRuleService.getLogRuleByFormId(dto.getFormId()); // 判断开始时间是否当天 / 是否本周 boolean flag = false; - Date begin = DateUtil.parse(dto.getBeginTime(), "yyyy-MM-dd").toJdkDate(); List logStatisticsDOS = new ArrayList<>(); - Date thisDate = new Date(); - if (logRuleDO.getType() == 1) { - flag = DateUtil.isSameDay(begin, thisDate); - } else if (logRuleDO.getType() == 2) { - flag = DateUtil.isSameWeek(begin, thisDate, true); + List dateList = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(dto.getBeginTime())) { + Date begin = DateUtil.parse(dto.getBeginTime(), "yyyy-MM-dd").toJdkDate(); + Date thisDate = new Date(); + if (logRuleDO.getType() == 1) { + flag = DateUtil.isSameDay(begin, thisDate); + } else if (logRuleDO.getType() == 2) { + flag = DateUtil.isSameWeek(begin, thisDate, true); + } + dateList = DateUtils.betweenDayStrList(dto.getBeginTime(), dto.getEndTime()); } - List dateList = DateUtils.betweenDayStrList(dto.getBeginTime(), dto.getEndTime()); + // 这里将区间转换为具体的日期 因为mysql BETWEEN 会导致索引失效 if (flag) { logStatisticsDOS = logStatisticsMapper.getCurrentStatistics(dto.getFormId(), dateList); 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 289c52c4..d5157ba4 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 @@ -54,19 +54,30 @@ and not exists(select id from kq_attendance_group_user where user_id = a.id and attendance_group_id != #{groupId} and deleted = 0) + \ No newline at end of file