package cn.iocoder.yudao.module.mes.controller.admin.cal.holiday; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.cal.holiday.vo.MesCalHolidayRespVO; import cn.iocoder.yudao.module.mes.controller.admin.cal.holiday.vo.MesCalHolidaySaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.cal.holiday.MesCalHolidayDO; import cn.iocoder.yudao.module.mes.service.cal.holiday.MesCalHolidayService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; 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.time.LocalDateTime; import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - MES 假期设置") @RestController @RequestMapping("/mes/cal/holiday") @Validated public class MesCalHolidayController { @Resource private MesCalHolidayService holidayService; @PostMapping("/save") @Operation(summary = "保存假期设置", description = "如果该日期已存在记录,则更新") @PreAuthorize("@ss.hasPermission('mes:cal-holiday:create')") public CommonResult saveHoliday(@Valid @RequestBody MesCalHolidaySaveReqVO saveReqVO) { return success(holidayService.saveHoliday(saveReqVO)); } @GetMapping("/get-by-day") @Operation(summary = "根据日期获得假期设置") @Parameter(name = "day", description = "日期", required = true) @PreAuthorize("@ss.hasPermission('mes:cal-holiday:query')") public CommonResult getHolidayByDay( @RequestParam("day") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime day) { MesCalHolidayDO holiday = holidayService.getHolidayByDay(day); return success(BeanUtils.toBean(holiday, MesCalHolidayRespVO.class)); } @GetMapping("/list") @Operation(summary = "获得假期设置列表", description = "支持可选日期范围过滤,不传则返回全量数据") @PreAuthorize("@ss.hasPermission('mes:cal-holiday:query')") public CommonResult> getHolidayList( @RequestParam(value = "startDay", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime startDay, @RequestParam(value = "endDay", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime endDay) { List list = holidayService.getHolidayList(startDay, endDay); return success(BeanUtils.toBean(list, MesCalHolidayRespVO.class)); } }