diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java index 1e4eee69..fd16b55a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java @@ -111,7 +111,7 @@ public class BusAttendanceController extends BaseController { return R.ok(busAttendanceService.getClockDateForTwoWeekList(projectId)); } - @GetMapping("/exportList") + @PostMapping("/exportList") public void exportList(AttendanceExportDto dto, HttpServletResponse response) { busAttendanceService.getExportList(dto, response); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java index 9a30ef49..f66ac0d0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java @@ -249,9 +249,14 @@ public class BusAttendanceServiceImpl extends ServiceImpl getClockDateForTwoWeekList(Long projectId) { LocalDate now = LocalDate.now(); - //往前14天,包含今天 + // 往前14天,包含今天 LocalDate startDate = now.minusDays(13); - List list = list(Wrappers.lambdaQuery().eq(BusAttendance::getProjectId, projectId) + List list = list(Wrappers.lambdaQuery() + .eq(BusAttendance::getProjectId, projectId) .between(BusAttendance::getClockDate, startDate, now) + .orderByAsc(BusAttendance::getClockDate) ); // 按日期分组 @@ -879,42 +886,43 @@ public class BusAttendanceServiceImpl extends ServiceImpl busAttendanceClockDateForTwoWeekVos = new ArrayList<>(); + List result = new ArrayList<>(); + List validStatusList = Arrays.asList("1", "2", "3", "5"); - List list1 = Arrays.asList("1", "2", "3", "5"); - - for (Map.Entry>> dateEntry : dateUserMap.entrySet()) { - LocalDate date = dateEntry.getKey(); - Map> userAttendanceMap = dateEntry.getValue(); + LocalDate currentDate = startDate; + while (!currentDate.isAfter(now)) { + Map> userAttendanceMap = dateUserMap.getOrDefault(currentDate, new HashMap<>()); int full = 0, half = 0, absent = 0; for (Map.Entry> userEntry : userAttendanceMap.entrySet()) { List records = userEntry.getValue(); - int a = 0; - for (BusAttendance record : records) { - if (list1.contains(record.getClockStatus())) { - a += 1; - } - } - if (a >= 2) { + long validCount = records.stream() + .map(BusAttendance::getClockStatus) + .filter(validStatusList::contains) + .count(); + + if (validCount >= 2) { full++; - } else if (a == 1) { + } else if (validCount == 1) { half++; } else { absent++; } } - BusAttendanceClockDateForTwoWeekVo busAttendanceClockDateForTwoWeekVo = new BusAttendanceClockDateForTwoWeekVo(); - busAttendanceClockDateForTwoWeekVo.setClockDate(date); - busAttendanceClockDateForTwoWeekVo.setAttendance(full); - busAttendanceClockDateForTwoWeekVo.setHalfAttendance(half); - busAttendanceClockDateForTwoWeekVo.setAbsenteeism(absent); - busAttendanceClockDateForTwoWeekVos.add(busAttendanceClockDateForTwoWeekVo); + BusAttendanceClockDateForTwoWeekVo vo = new BusAttendanceClockDateForTwoWeekVo(); + vo.setClockDate(currentDate); + vo.setAttendance(full); + vo.setHalfAttendance(half); + vo.setAbsenteeism(absent); + + result.add(vo); + currentDate = currentDate.plusDays(1); } - return busAttendanceClockDateForTwoWeekVos; + + return result; } @Override diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index b81e0689..2470a918 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -594,6 +594,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService { if (CollUtil.isEmpty(roles)) { throw new ServiceException("没有权限访问角色的数据"); } + if (clear) { // 删除用户与角色关联 userRoleMapper.delete(new LambdaQueryWrapper().eq(SysUserRole::getUserId, userId));