From 43287e22e5074d72c3bcbbc97268416dc6d8f3d9 Mon Sep 17 00:00:00 2001 From: aikai Date: Thu, 13 Jun 2024 15:29:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attendance/AttendanceController.java | 11 ++++- .../dto/ExportAttendanceExcelDTO.java | 40 +++++++++++++++++++ .../service/attendance/AttendanceService.java | 9 +++++ .../attendance/AttendanceServiceImpl.java | 9 +++++ .../scheduling/AttendanceSchedulingMapper.xml | 2 + 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/dto/ExportAttendanceExcelDTO.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/AttendanceController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/AttendanceController.java index 24008e58..b5dc0018 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/AttendanceController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/AttendanceController.java @@ -10,6 +10,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -46,7 +47,6 @@ public class AttendanceController { } - @GetMapping("/statisticsByDay") @Operation(summary = "统计按天") public CommonResult> statisticsByDay(@ModelAttribute AttendanceStatisticsByDayDTO dto) { @@ -81,4 +81,13 @@ public class AttendanceController { List vo = attendanceService.getTheAttendanceGroupToWhichTheCurrentlyLoggedInUserBelongsAndWhetherTheyHaveAdministratorRights(); return success(vo); } + + + @GetMapping("/export-excel") + @Operation(summary = "导出考勤报表 Excel") + public void exportAttendanceExcel(@Valid ExportAttendanceExcelDTO dto, + HttpServletResponse response) { + attendanceService.exportAttendanceExcel(response, dto); + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/dto/ExportAttendanceExcelDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/dto/ExportAttendanceExcelDTO.java new file mode 100644 index 00000000..67fbe74b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/dto/ExportAttendanceExcelDTO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.attendance.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; + +@Data +@Accessors(chain = true) +public class ExportAttendanceExcelDTO { + + @Schema(description = "报表类型 1月度统计 2每日统计 3打卡记录") + private Integer type; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT) + @Schema(description = "开始时间") + @NotNull(message = "开始时间不可以为空") + private Date startTime; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT) + @Schema(description = "结束时间") + @NotNull(message = "结束时间不可以为空") + private Date endTime; + + @Schema(description = "人员范围 1全公司 2考勤组 3员工") + private Integer memberRange; + + @Schema(description = "人员范围对应的目标ids 全公司则不用传 考勤组则传考勤组id 员工则传员工id") + private List targetIds; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceService.java index b8619dc3..4d8427a6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.attendance.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshiftitem.AttendanceGroupShiftItemDO; import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO; +import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -97,4 +98,12 @@ public interface AttendanceService { * @return */ AttendanceRulesVO getRules(Long groupId); + + /** + * 导出考勤报表 + * + * @param response + * @param dto + */ + void exportAttendanceExcel(HttpServletResponse response, ExportAttendanceExcelDTO dto); } \ No newline at end of file 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 5b1e1b6e..ce5899da 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 @@ -40,6 +40,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -749,6 +750,14 @@ public class AttendanceServiceImpl implements AttendanceService { return vo; } + @Override + public void exportAttendanceExcel(HttpServletResponse response, ExportAttendanceExcelDTO dto) { + + // 导出 Excel +// ExcelUtils.write(response, "考勤组人员.xls", "数据", AttendanceGroupUserRespVO.class, +// BeanUtils.toBean(list, AttendanceGroupUserRespVO.class)); + } + /** * 外勤计算 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/scheduling/AttendanceSchedulingMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/scheduling/AttendanceSchedulingMapper.xml index 1292ce1f..9db8bf78 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/scheduling/AttendanceSchedulingMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/scheduling/AttendanceSchedulingMapper.xml @@ -14,6 +14,8 @@ attendance_group_id as id, count(id) as num from kq_attendance_scheduling + where + deleted = 0 group by attendance_group_id