From bf39a38a8c498a7a7282aed2839b09d39c3c88a3 Mon Sep 17 00:00:00 2001 From: aikai Date: Wed, 22 May 2024 11:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=89=93=E5=8D=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/attendance/AttendanceController.java | 12 ++++++------ .../app/attendance/vo/AttendancePunchPageVO.java | 9 ++++++++- .../punchrecord/AttendancePunchRecordDO.java | 4 ++++ .../service/attendance/AttendanceServiceImpl.java | 7 ++++--- .../attendance/fixed/AttendanceFixedServiceImpl.java | 1 + .../scheduling/AttendanceSchedulingServiceImpl.java | 1 + 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/AttendanceController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/AttendanceController.java index 221e9070..460a9fbd 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/AttendanceController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/AttendanceController.java @@ -38,11 +38,11 @@ public class AttendanceController { return success(vo); } -// @PostMapping("/statistics") -// @Operation(summary = "统计") -// public CommonResult statistics(@RequestBody AttendancePunchDTO dto) { -// AttendancePunchVO vo = attendanceService.punch(dto); -// return success(vo); -// } + @PostMapping("/statistics") + @Operation(summary = "统计") + public CommonResult statistics(@RequestBody AttendancePunchDTO dto) { + AttendancePunchVO vo = attendanceService.punch(dto); + return success(vo); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/vo/AttendancePunchPageVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/vo/AttendancePunchPageVO.java index a68b4c97..f782fba4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/vo/AttendancePunchPageVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/attendance/vo/AttendancePunchPageVO.java @@ -42,11 +42,18 @@ public class AttendancePunchPageVO { * 应打卡时间 */ private LocalDateTime shouldPunchTime; + /** + * 打卡归属时间 (主要是为了统计夸天的) + */ + private String targetDayStr; /** * 考勤组 */ private AttendanceGroupDO activationGroup; - + /** + * 考勤组班次id + */ + private Long attendanceGroupShiftId; /** * 考勤组班次 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/attendance/punchrecord/AttendancePunchRecordDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/attendance/punchrecord/AttendancePunchRecordDO.java index 9e10718a..be881fc9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/attendance/punchrecord/AttendancePunchRecordDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/attendance/punchrecord/AttendancePunchRecordDO.java @@ -82,6 +82,10 @@ public class AttendancePunchRecordDO extends BaseDO { * 打卡时间 */ private LocalDateTime punchTime; + /** + * 应打卡时间 + */ + private LocalDateTime shouldPunchTime; /** * 打卡备注 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java index b782ec80..f8caf1c1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java @@ -132,7 +132,7 @@ public class AttendanceServiceImpl implements AttendanceService { .setFieldServiceFlag( (AttendanceGroupDO.TRUE.equals(pageVO.getFieldworkFlag()) && AttendanceGroupDO.FALSE.equals(pageVO.getPunchPoint())) ? AttendanceGroupDO.TRUE : AttendanceGroupDO.FALSE) - .setDayTime(dto.getLocalDateTime().format(Constants.REPO_DATE_FORMAT)) + .setDayTime(pageVO.getTargetDayStr()) .setShouldPunchTime(pageVO.getShouldPunchTime()) .setPunchTime(dto.getLocalDateTime()) .setRemark(dto.getRemark()) @@ -190,9 +190,9 @@ public class AttendanceServiceImpl implements AttendanceService { , Double.parseDouble(activationGroup.getLatitude()), Double.parseDouble(activationGroup.getLongitude()), activationGroup.getScope())); // -- 获取班次 - AttendanceGroupShiftDO attendanceGroupShiftDO = attendanceGroupShiftService.getGroupShift(dto.getActivationGroup().getId()); + AttendanceGroupShiftDO attendanceGroupShiftDO = attendanceGroupShiftService.getGroupShift(vo.getAttendanceGroupShiftId()); // -- 获取班次item - List attendanceGroupShiftItemDOList = attendanceGroupShiftItemService.getGroupShiftItemListByShiftId(dto.getActivationGroup().getId()); + List attendanceGroupShiftItemDOList = attendanceGroupShiftItemService.getGroupShiftItemListByShiftId(vo.getAttendanceGroupShiftId()); String key = Constants.ATTENDANCE + Constants.UNDERLINE + activationGroup.getId() + Constants.UNDERLINE; // + 时间 String mapKey = dto.getUserId().toString(); @@ -252,6 +252,7 @@ public class AttendanceServiceImpl implements AttendanceService { } index++; } + vo.setTargetDayStr(targetDayStr); vo.setAttendanceOnTheDayDTOS(attendanceOnTheDayDTOS); if (dto.getFlag()) { vo.setRedisKey(key + targetDayStr); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java index fe7af87c..db9d05ec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java @@ -115,6 +115,7 @@ public class AttendanceFixedServiceImpl implements AttendanceFixedService, Punch if (attendanceFixedDO == null || attendanceFixedDO.getAttendanceGroupShiftId() == null) { return vo.setTodayNeedAttendance(AttendanceGroupDO.FALSE); } + vo.setAttendanceGroupShiftId(attendanceFixedDO.getAttendanceGroupShiftId()); attendanceService.calculatePunch(dto, vo); return vo; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java index 2c605d50..6c871351 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java @@ -130,6 +130,7 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ if (attendanceSchedulingDO == null || Constants.ONE.equals(attendanceSchedulingDO.getRestFlag()) || attendanceSchedulingDO.getAttendanceGroupShiftId() == null) { return vo.setTodayNeedAttendance(AttendanceGroupDO.FALSE); } + vo.setAttendanceGroupShiftId(attendanceSchedulingDO.getAttendanceGroupShiftId()); attendanceService.calculatePunch(dto, vo); return vo; }