Browse Source

✨ feat(mes): 新增假期设置列表支持日期范围过滤功能

更新假期设置列表接口,支持可选的开始和结束日期参数,优化前端日历组件的数据获取逻辑,提升用户体验。
YunaiV 2 months ago
parent
commit
e2613a57c3

+ 7 - 3
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/cal/holiday/MesCalHolidayController.java

@@ -50,10 +50,14 @@ public class MesCalHolidayController {
     }
 
     @GetMapping("/list")
-    @Operation(summary = "获得所有假期设置列表", description = "日历组件使用,返回全量数据")
+    @Operation(summary = "获得假期设置列表", description = "支持可选日期范围过滤,不传则返回全量数据")
     @PreAuthorize("@ss.hasPermission('mes:cal-holiday:query')")
-    public CommonResult<List<MesCalHolidayRespVO>> getHolidayList() {
-        List<MesCalHolidayDO> list = holidayService.getHolidayList();
+    public CommonResult<List<MesCalHolidayRespVO>> 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<MesCalHolidayDO> list = holidayService.getHolidayList(startDay, endDay);
         return success(BeanUtils.toBean(list, MesCalHolidayRespVO.class));
     }
 

+ 3 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/cal/holiday/vo/MesCalHolidayRespVO.java

@@ -9,6 +9,9 @@ import java.time.LocalDateTime;
 @Data
 public class MesCalHolidayRespVO {
 
+    @Schema(description = "编号", example = "1024")
+    private Long id;
+
     @Schema(description = "日期")
     private LocalDateTime day;
 

+ 1 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/cal/holiday/vo/MesCalHolidaySaveReqVO.java

@@ -24,4 +24,4 @@ public class MesCalHolidaySaveReqVO {
     @Schema(description = "备注")
     private String remark;
 
-    }
+}

+ 2 - 7
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/cal/holiday/MesCalHolidayMapper.java

@@ -20,14 +20,9 @@ public interface MesCalHolidayMapper extends BaseMapperX<MesCalHolidayDO> {
         return selectOne(MesCalHolidayDO::getDay, day);
     }
 
-    default List<MesCalHolidayDO> selectList() {
+    default List<MesCalHolidayDO> selectList(LocalDateTime startDay, LocalDateTime endDay) {
         return selectList(new LambdaQueryWrapperX<MesCalHolidayDO>()
-                .orderByAsc(MesCalHolidayDO::getDay));
-    }
-
-    default List<MesCalHolidayDO> selectListByDayRange(LocalDateTime startDay, LocalDateTime endDay) {
-        return selectList(new LambdaQueryWrapperX<MesCalHolidayDO>()
-                .between(MesCalHolidayDO::getDay, startDay, endDay)
+                .betweenIfPresent(MesCalHolidayDO::getDay, startDay, endDay)
                 .orderByAsc(MesCalHolidayDO::getDay));
     }
 

+ 3 - 10
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/cal/holiday/MesCalHolidayService.java

@@ -23,17 +23,10 @@ public interface MesCalHolidayService {
     Long saveHoliday(@Valid MesCalHolidaySaveReqVO saveReqVO);
 
     /**
-     * 获得所有假期设置列表(用于日历显示,不分页)
+     * 获得假期设置列表
      *
-     * @return 假期设置列表
-     */
-    List<MesCalHolidayDO> getHolidayList();
-
-    /**
-     * 根据日期范围获得假期设置列表
-     *
-     * @param startDay 开始日期
-     * @param endDay   结束日期
+     * @param startDay 开始日期(可选)
+     * @param endDay   结束日期(可选)
      * @return 假期设置列表
      */
     List<MesCalHolidayDO> getHolidayList(LocalDateTime startDay, LocalDateTime endDay);

+ 1 - 6
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/cal/holiday/MesCalHolidayServiceImpl.java

@@ -40,14 +40,9 @@ public class MesCalHolidayServiceImpl implements MesCalHolidayService {
         return holiday.getId();
     }
 
-    @Override
-    public List<MesCalHolidayDO> getHolidayList() {
-        return holidayMapper.selectList();
-    }
-
     @Override
     public List<MesCalHolidayDO> getHolidayList(LocalDateTime startDay, LocalDateTime endDay) {
-        return holidayMapper.selectListByDayRange(startDay, endDay);
+        return holidayMapper.selectList(startDay, endDay);
     }
 
     @Override