This commit is contained in:
aikai 2024-06-13 15:29:44 +08:00
parent dbcc5e89a9
commit 43287e22e5
5 changed files with 70 additions and 1 deletions

View File

@ -10,6 +10,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -46,7 +47,6 @@ public class AttendanceController {
} }
@GetMapping("/statisticsByDay") @GetMapping("/statisticsByDay")
@Operation(summary = "统计按天") @Operation(summary = "统计按天")
public CommonResult<Map<String, AttendanceStatusByDayVO>> statisticsByDay(@ModelAttribute AttendanceStatisticsByDayDTO dto) { public CommonResult<Map<String, AttendanceStatusByDayVO>> statisticsByDay(@ModelAttribute AttendanceStatisticsByDayDTO dto) {
@ -81,4 +81,13 @@ public class AttendanceController {
List<AttendanceGroupSystemVO> vo = attendanceService.getTheAttendanceGroupToWhichTheCurrentlyLoggedInUserBelongsAndWhetherTheyHaveAdministratorRights(); List<AttendanceGroupSystemVO> vo = attendanceService.getTheAttendanceGroupToWhichTheCurrentlyLoggedInUserBelongsAndWhetherTheyHaveAdministratorRights();
return success(vo); return success(vo);
} }
@GetMapping("/export-excel")
@Operation(summary = "导出考勤报表 Excel")
public void exportAttendanceExcel(@Valid ExportAttendanceExcelDTO dto,
HttpServletResponse response) {
attendanceService.exportAttendanceExcel(response, dto);
}
} }

View File

@ -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<Long> targetIds;
}

View File

@ -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.dal.dataobject.attendance.groupshiftitem.AttendanceGroupShiftItemDO;
import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO; import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -97,4 +98,12 @@ public interface AttendanceService {
* @return * @return
*/ */
AttendanceRulesVO getRules(Long groupId); AttendanceRulesVO getRules(Long groupId);
/**
* 导出考勤报表
*
* @param response
* @param dto
*/
void exportAttendanceExcel(HttpServletResponse response, ExportAttendanceExcelDTO dto);
} }

View File

@ -40,6 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@ -749,6 +750,14 @@ public class AttendanceServiceImpl implements AttendanceService {
return vo; return vo;
} }
@Override
public void exportAttendanceExcel(HttpServletResponse response, ExportAttendanceExcelDTO dto) {
// 导出 Excel
// ExcelUtils.write(response, "考勤组人员.xls", "数据", AttendanceGroupUserRespVO.class,
// BeanUtils.toBean(list, AttendanceGroupUserRespVO.class));
}
/** /**
* 外勤计算 * 外勤计算
* *

View File

@ -14,6 +14,8 @@
attendance_group_id as id, attendance_group_id as id,
count(id) as num count(id) as num
from kq_attendance_scheduling from kq_attendance_scheduling
where
deleted = 0
group by attendance_group_id group by attendance_group_id
</select> </select>
<select id="getUseGroupIds" resultType="java.lang.Long"> <select id="getUseGroupIds" resultType="java.lang.Long">