Browse Source

日历设置

车车 3 months ago
parent
commit
2623cfafc1

+ 6 - 25
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/holiday/HolidayController.java

@@ -1,11 +1,8 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.holiday;
 
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
 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.iscs.controller.admin.holiday.vo.HolidayPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidaySaveReqVO;
@@ -16,16 +13,13 @@ 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.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 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.util.List;
 
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "管理后台 - 节假日设置")
@@ -61,14 +55,6 @@ public class HolidayController {
         return success(true);
     }
 
-    @GetMapping("/selectHolidayById")
-    @Operation(summary = "获得节假日设置")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('iscs:holiday:query')")
-    public CommonResult<HolidayRespVO> selectHolidayById(@RequestParam("id") Long id) {
-        HolidayDO holiday = holidayService.getHoliday(id);
-        return success(BeanUtils.toBean(holiday, HolidayRespVO.class));
-    }
 
     @GetMapping("/getHolidayPage")
     @Operation(summary = "获得节假日设置分页")
@@ -78,17 +64,12 @@ public class HolidayController {
         return success(BeanUtils.toBean(pageResult, HolidayRespVO.class));
     }
 
-    @GetMapping("/exportHolidayExcel")
-    @Operation(summary = "导出节假日设置 Excel")
-    @PreAuthorize("@ss.hasPermission('iscs:holiday:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportHolidayExcel(@Valid HolidayPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<HolidayDO> list = holidayService.getHolidayPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "节假日设置.xls", "数据", HolidayRespVO.class,
-                        BeanUtils.toBean(list, HolidayRespVO.class));
+    @GetMapping("/getHolidayList")
+    @Operation(summary = "根据月份(2024-12)获得节假日设置")
+    @PreAuthorize("@ss.hasPermission('iscs:holiday:query')")
+    public CommonResult<List<HolidayRespVO>> getHolidayList(@Valid HolidayPageReqVO pageReqVO) {
+        List<HolidayRespVO> pageResult = holidayService.getHolidayList(pageReqVO);
+        return success(pageResult);
     }
 
 }

+ 2 - 19
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/holiday/vo/HolidayPageReqVO.java

@@ -3,11 +3,6 @@ package cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
 @Schema(description = "管理后台 - 节假日设置分页 Request VO")
 @Data
@@ -19,19 +14,7 @@ public class HolidayPageReqVO extends PageParam {
     @Schema(description = "日期类型", example = "1")
     private String holidayType;
 
-    @Schema(description = "开始时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] startTime;
-
-    @Schema(description = "结束时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] endTime;
-
-    @Schema(description = "备注", example = "随便")
-    private String remark;
-
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
+    @Schema(description = "月份", example = "2025-07")
+    private String yearMonth;
 
 }

+ 0 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/holiday/HolidayMapper.java

@@ -19,10 +19,6 @@ public interface HolidayMapper extends BaseMapperX<HolidayDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<HolidayDO>()
                 .eqIfPresent(HolidayDO::getTheDay, reqVO.getTheDay())
                 .eqIfPresent(HolidayDO::getHolidayType, reqVO.getHolidayType())
-                .betweenIfPresent(HolidayDO::getStartTime, reqVO.getStartTime())
-                .betweenIfPresent(HolidayDO::getEndTime, reqVO.getEndTime())
-                .eqIfPresent(HolidayDO::getRemark, reqVO.getRemark())
-                .betweenIfPresent(HolidayDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(HolidayDO::getId));
     }
 

+ 3 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/holiday/HolidayService.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.iscs.service.holiday;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidaySaveReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayUpdateListVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.holiday.HolidayDO;
@@ -62,4 +63,6 @@ public interface HolidayService extends IService<HolidayDO> {
      */
     PageResult<HolidayDO> getHolidayPage(HolidayPageReqVO pageReqVO);
 
+    List<HolidayRespVO> getHolidayList(HolidayPageReqVO pageReqVO);
+
 }

+ 14 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/holiday/HolidayServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidaySaveReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.holiday.vo.HolidayUpdateListVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.holiday.HolidayDO;
@@ -131,4 +132,17 @@ public class HolidayServiceImpl extends ServiceImpl<HolidayMapper, HolidayDO> im
         return holidayMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<HolidayRespVO> getHolidayList(HolidayPageReqVO pageReqVO) {
+        List<String> adjacentMonths = SuperDateUtils.getAdjacentMonths(pageReqVO.getYearMonth());
+        List<HolidayRespVO> holidayRespVOS = new ArrayList<>();
+        for (String adjacentMonth : adjacentMonths) {
+            List<HolidayDO> list = list(Wrappers.<HolidayDO>lambdaQuery()
+                    .like(HolidayDO::getTheDay, adjacentMonth));
+            List<HolidayRespVO> bean = BeanUtils.toBean(list, HolidayRespVO.class);
+            holidayRespVOS.addAll(bean);
+        }
+        return holidayRespVOS;
+    }
+
 }

+ 35 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/utils/SuperDateUtils.java

@@ -4,10 +4,7 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class SuperDateUtils {
 
@@ -238,4 +235,38 @@ public class SuperDateUtils {
         // dates4.forEach(System.out::println); // 输出:2025-03-31
     }*/
 
+
+    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM");
+
+    /**
+     * 根据输入的年月获取相邻的前后月份。
+     * @param yearMonthStr 输入的年月字符串,格式为"yyyy-MM"
+     * @return 包含前一个月和后一个月的列表,格式为["yyyy-MM", "yyyy-MM"]
+     */
+    public static List<String> getAdjacentMonths(String yearMonthStr) {
+        // 将输入字符串补全为"yyyy-MM-01"以解析为LocalDate
+        String fullDateStr = yearMonthStr + "-01";
+        LocalDate date = LocalDate.parse(fullDateStr, FORMATTER);
+
+        // 计算前一个月和后一个月
+        LocalDate previousMonth = date.minusMonths(1);
+        LocalDate nextMonth = date.plusMonths(1);
+
+        // 格式化为指定格式的字符串
+        return Arrays.asList(
+                previousMonth.format(FORMATTER),
+                nextMonth.format(FORMATTER)
+        );
+    }
+
+    // 示例用法
+    public static void main(String[] args) {
+        List<String> adjacentMonths = getAdjacentMonths("2025-08");
+        System.out.println(adjacentMonths); // 输出: [2025-07, 2025-09]
+
+        // 更多测试案例
+        System.out.println(getAdjacentMonths("2025-01")); // [2024-12, 2025-02]
+        System.out.println(getAdjacentMonths("2025-12")); // [2025-11, 2026-01]
+    }
+
 }