From f7db092af8db63b4f01c2a102b9ce08d02370605 Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Mon, 4 Aug 2025 13:04:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E6=8C=89=E6=9C=88=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttendanceArrangementServiceImpl.java | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java index 0ec30754..b12dd475 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.beanutils.BeanUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; @@ -82,8 +83,12 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS Page attendanceArrangementVoPage = result.setRecords(result.getRecords().stream().peek(vo -> { //1.根据当前日期查询在开始时间和结束时间之间的排班信息 - //查询指定日期在哪些排班中,并返回arrangementList - List arrangementList = baseMapper.selectList(Wrappers.lambdaQuery().ge(AttendanceArrangement::getStartDate, bo.getCurrentDate()).le(AttendanceArrangement::getEndDate, bo.getCurrentDate())); + //查询指定日期查询在哪些排班中,并返回arrangementList + List arrangementList = baseMapper.selectList( + Wrappers.lambdaQuery() + .ge(AttendanceArrangement::getStartDate, bo.getCurrentDate()) + .le(AttendanceArrangement::getEndDate, bo.getCurrentDate()) + ); //根据排班查询出考勤组id List groupIds = arrangementList.stream().map(AttendanceArrangement::getGroupId).distinct().toList(); @@ -191,17 +196,11 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS .between(AttendanceArrangement::getStartDate, date.atStartOfDay(ZoneId.systemDefault()).toInstant(), date.atStartOfDay(ZoneId.systemDefault()).plusDays(1).toInstant().minusSeconds(1))); +// //根据arrangementList查询出排班的id +// List scheduleIdList = arrangementList.stream().map(AttendanceArrangement::getId).toList(); +// //根据排班的id查询出排班的人员详细信息 +// List userGroupList = userGroupMapper.selectList(Wrappers.lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleIdList)); - //查询出的多个排班进行循环,取出所有的考勤组 - arrangementList.forEach(arrangement -> { -// // 2.3 根据排班查询出考勤组id -// List groupIds = arrangementList.stream() -// .map(AttendanceArrangement::getGroupId) -// .distinct() -// .toList(); - //将考勤组信息添加到排班信息中 - result.add(MapstructUtils.convert(arrangement, AttendanceArrangementVo.class)); - }); // 根据排班查询出考勤组id @@ -221,25 +220,32 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS if (attendanceGroup != null) { // 创建 AttendanceArrangementVo 对象并设置属性 AttendanceArrangementVo vo = new AttendanceArrangementVo(); - //vo中设置开始时间和结束时间分别加一天 - vo.setStartDate(date.plusDays(1)); - vo.setEndDate(date.plusDays(1)); + vo.setStartDate(arrangementList.get(0).getStartDate()); + vo.setEndDate(arrangementList.get(0).getEndDate()); + + //获取到第一个排班的id + Long arrangementId = arrangementList.get(0).getId(); + //根据arrangementId查询出人员组的详细信息 + AttendanceGroup group = attendanceGroupMapper.selectById(arrangementId); + //将group存到vo中 + vo.setAttendanceGroup(group); + + //根据arrangementList查询出排班的id + List scheduleIdList = arrangementList.stream().map(AttendanceArrangement::getId).distinct().toList(); + //根据排班的id查询出排班的人员详细信息 + List userGroupList = userGroupMapper.selectList(Wrappers.lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleIdList)); + //新建attendanceGroup对象,将排班信息和考勤组信息添加到vo中 vo.setAttendanceGroup(attendanceGroup); + //将排班人员信息添加到排班信息中 + vo.setUserGroupList(userGroupList); result.add(vo); } } - // 如果 collected 不为空,则返回 result - if (result.isEmpty()) { - return TableDataInfo.build(); - } } - - - // 循环结束后如果 result 仍为空,则返回空列表 return TableDataInfo.build(result); // // 计算交集的开始时间(取较晚的开始时间)和结束时间(取较早的结束时间) @@ -265,6 +271,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS lqw.eq(bo.getStartDate() != null, AttendanceArrangement::getStartDate, bo.getStartDate()); lqw.eq(bo.getEndDate() != null, AttendanceArrangement::getEndDate, bo.getEndDate()); lqw.eq(bo.getStatus() != null, AttendanceArrangement::getStatus, bo.getStatus()); +// lqw.eq(bo.getCurrentDate() != null, AttendanceArrangement::getCurrentDate, bo.getCurrentDate()); return lqw; }