gaoluyang
3 小时以前 ef3cbc1c6882786e8218b08be3e52ea44587f03b
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java
@@ -6,7 +6,10 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayGroupRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayPageReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeCreateReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeUpdateReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidaySaveReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceHolidayDO;
@@ -17,11 +20,13 @@
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.time.LocalDate;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -43,11 +48,28 @@
        return success(attendanceHolidayService.createAttendanceHoliday(createReqVO));
    }
    @PostMapping("/create-range")
    @Operation(summary = "按日期范围新增节假日配置(含中间每一天)")
    @PreAuthorize("@ss.hasPermission('hrm:attendance:create')")
    public CommonResult<Integer> createAttendanceHolidayRange(
            @Valid @RequestBody HrmAttendanceHolidayRangeCreateReqVO createReqVO) {
        return success(attendanceHolidayService.createAttendanceHolidayRange(createReqVO));
    }
    @PutMapping("/update")
    @Operation(summary = "更新节假日配置")
    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
    public CommonResult<Boolean> updateAttendanceHoliday(@Valid @RequestBody HrmAttendanceHolidaySaveReqVO updateReqVO) {
        attendanceHolidayService.updateAttendanceHoliday(updateReqVO);
        return success(true);
    }
    @PutMapping("/update-range")
    @Operation(summary = "按日期区间更新节假日配置(删除原区间记录后按新起止日期重写)")
    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
    public CommonResult<Boolean> updateAttendanceHolidayRange(
            @Valid @RequestBody HrmAttendanceHolidayRangeUpdateReqVO updateReqVO) {
        attendanceHolidayService.updateAttendanceHolidayRange(updateReqVO);
        return success(true);
    }
@@ -57,6 +79,15 @@
    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
    public CommonResult<Boolean> deleteAttendanceHoliday(@RequestParam("id") Long id) {
        attendanceHolidayService.deleteAttendanceHoliday(id);
        return success(true);
    }
    @DeleteMapping("/delete-range")
    @Operation(summary = "按日期区间删除节假日配置(删除区间内全部日期)")
    @Parameter(name = "ids", description = "区间内节假日ID列表", required = true)
    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
    public CommonResult<Boolean> deleteAttendanceHolidayRange(@RequestParam("ids") List<Long> ids) {
        attendanceHolidayService.deleteAttendanceHolidayRange(ids);
        return success(true);
    }
@@ -77,6 +108,26 @@
        return success(BeanUtils.toBean(pageResult, HrmAttendanceHolidayRespVO.class));
    }
    @GetMapping("/page-grouped")
    @Operation(summary = "获得节假日配置分页(按连续日期区间合并展示)")
    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
    public CommonResult<PageResult<HrmAttendanceHolidayGroupRespVO>> getAttendanceHolidayGroupPage(
            @Valid HrmAttendanceHolidayPageReqVO pageReqVO) {
        return success(attendanceHolidayService.getAttendanceHolidayGroupPage(pageReqVO));
    }
    @GetMapping("/list")
    @Operation(summary = "获得指定日期范围的节假日列表(逐日,排班日历使用)")
    @Parameter(name = "startDate", description = "开始日期", required = true)
    @Parameter(name = "endDate", description = "结束日期", required = true)
    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
    public CommonResult<List<HrmAttendanceHolidayRespVO>> getAttendanceHolidayList(
            @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
            @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
        List<HrmAttendanceHolidayDO> list = attendanceHolidayService.getAttendanceHolidayListByDateRange(startDate, endDate);
        return success(BeanUtils.toBean(list, HrmAttendanceHolidayRespVO.class));
    }
    @GetMapping("/export-excel")
    @Operation(summary = "导出节假日配置 Excel")
    @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")