Compare commits
No commits in common. "100022251e85ee48cf4ed5336f7514eb288ce11e" and "f967faf8183464d78eb55dd9abdd15bf77811954" have entirely different histories.
100022251e
...
f967faf818
@ -24,11 +24,6 @@
|
|||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Job 定时任务相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-job</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -75,7 +75,6 @@ public class CalendarController {
|
|||||||
@Operation(summary = "获得工作日历数据分页")
|
@Operation(summary = "获得工作日历数据分页")
|
||||||
@PreAuthorize("@ss.hasPermission('home:calendar:query')")
|
@PreAuthorize("@ss.hasPermission('home:calendar:query')")
|
||||||
public CommonResult<PageResult<CalendarRespVO>> getCalendarPage(@Valid CalendarPageReqVO pageReqVO) {
|
public CommonResult<PageResult<CalendarRespVO>> getCalendarPage(@Valid CalendarPageReqVO pageReqVO) {
|
||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
||||||
PageResult<CalendarDO> pageResult = calendarService.getCalendarPage(pageReqVO);
|
PageResult<CalendarDO> pageResult = calendarService.getCalendarPage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, CalendarRespVO.class));
|
return success(BeanUtils.toBean(pageResult, CalendarRespVO.class));
|
||||||
}
|
}
|
||||||
@ -93,4 +92,4 @@ public class CalendarController {
|
|||||||
BeanUtils.toBean(list, CalendarRespVO.class));
|
BeanUtils.toBean(list, CalendarRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -5,9 +5,6 @@ import javax.annotation.Resource;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.DayOfWeek;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import cn.iocoder.yudao.module.home.controller.admin.calendar.vo.*;
|
import cn.iocoder.yudao.module.home.controller.admin.calendar.vo.*;
|
||||||
import cn.iocoder.yudao.module.home.dal.dataobject.calendar.CalendarDO;
|
import cn.iocoder.yudao.module.home.dal.dataobject.calendar.CalendarDO;
|
||||||
@ -31,80 +28,12 @@ public class CalendarServiceImpl implements CalendarService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CalendarMapper calendarMapper;
|
private CalendarMapper calendarMapper;
|
||||||
private static final int YEAR = LocalDate.now().getYear();
|
|
||||||
// 假期日期,改用 LocalDate 存储
|
|
||||||
private static final Set<LocalDate> HOLIDAYS;
|
|
||||||
static {
|
|
||||||
Set<LocalDate> holidays = new HashSet<>();
|
|
||||||
holidays.add(LocalDate.of(YEAR, 1, 1)); // 元旦
|
|
||||||
holidays.add(LocalDate.of(YEAR, 5, 1)); // 劳动节
|
|
||||||
holidays.add(LocalDate.of(YEAR, 5, 2));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 5, 3));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 5, 4));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 5, 5));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 1)); // 国庆节
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 2));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 3));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 4));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 5));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 6));
|
|
||||||
holidays.add(LocalDate.of(YEAR, 10, 7));
|
|
||||||
|
|
||||||
// 将 Set 转为不可变集合
|
|
||||||
HOLIDAYS = Collections.unmodifiableSet(holidays);
|
|
||||||
}
|
|
||||||
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
|
|
||||||
//创建一年数据
|
|
||||||
public void createCalendarDate() {
|
|
||||||
int year = LocalDate.now().getYear();
|
|
||||||
CreateDate(year);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取一年中的每一天并处理每个月最大天数
|
|
||||||
public void CreateDate(int year) {
|
|
||||||
for (int month = 1; month <= 12; month++) {
|
|
||||||
// 获取当前月的最大天数
|
|
||||||
int maxDaysInMonth = LocalDate.of(year, month, 1).lengthOfMonth();
|
|
||||||
|
|
||||||
for (int day = 1; day <= maxDaysInMonth; day++) {
|
|
||||||
saveDayStatus(year, month, day);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存数据并判断每一天是否周末是否放假
|
|
||||||
private void saveDayStatus(int year, int month, int day) {
|
|
||||||
|
|
||||||
LocalDate currentDay = LocalDate.of(year, month, day);
|
|
||||||
|
|
||||||
int isWorkday = isHoliday(currentDay) || isWeekend(currentDay) ? 0 : 1; // 0 表示放假,1 表示上班
|
|
||||||
|
|
||||||
CalendarSaveReqVO calendarSaveReqVO = new CalendarSaveReqVO();
|
|
||||||
calendarSaveReqVO.setDate(currentDay.format(formatter)).setIsWorkday(isWorkday);
|
|
||||||
// 插入
|
|
||||||
CalendarDO calendar = BeanUtils.toBean(calendarSaveReqVO, CalendarDO.class);
|
|
||||||
calendarMapper.insert(calendar);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是放假
|
|
||||||
public static boolean isHoliday(LocalDate date) {
|
|
||||||
return HOLIDAYS.contains(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是周末(周六或周日)
|
|
||||||
public static boolean isWeekend(LocalDate date) {
|
|
||||||
DayOfWeek dayOfWeek = date.getDayOfWeek();
|
|
||||||
return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCalendar(CalendarSaveReqVO createReqVO) {
|
public Long createCalendar(CalendarSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
CalendarDO calendar = BeanUtils.toBean(createReqVO, CalendarDO.class);
|
CalendarDO calendar = BeanUtils.toBean(createReqVO, CalendarDO.class);
|
||||||
//暂时通过这里实现创建
|
calendarMapper.insert(calendar);
|
||||||
createCalendarDate();
|
|
||||||
// calendarMapper.insert(calendar);
|
|
||||||
// 返回
|
// 返回
|
||||||
return calendar.getId();
|
return calendar.getId();
|
||||||
}
|
}
|
||||||
|
@ -1,211 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.home.service.calendar;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.time.DayOfWeek;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
|
||||||
import cn.iocoder.yudao.module.home.controller.admin.calendar.vo.*;
|
|
||||||
import cn.iocoder.yudao.module.home.dal.dataobject.calendar.CalendarDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.home.dal.mysql.calendar.CalendarMapper;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
import static cn.iocoder.yudao.module.home.enums.ErrorCodeConstants.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 工作日历数据 Service 实现类
|
|
||||||
*
|
|
||||||
* @author 君风
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Validated
|
|
||||||
public class CalendarServiceImpl implements CalendarService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private CalendarMapper calendarMapper;
|
|
||||||
// 假期日期,改用 LocalDate 存储
|
|
||||||
private static final Set<LocalDate> HOLIDAYS;
|
|
||||||
static {
|
|
||||||
Set<LocalDate> holidays = new HashSet<>();
|
|
||||||
holidays.add(LocalDate.of(2024, 1, 1)); // 元旦
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 1)); // 劳动节
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 2));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 3));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 4));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 5));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 1)); // 国庆节
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 2));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 3));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 4));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 5));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 6));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 7));
|
|
||||||
|
|
||||||
// 将 Set 转为不可变集合
|
|
||||||
HOLIDAYS = Collections.unmodifiableSet(holidays);
|
|
||||||
}
|
|
||||||
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
|
|
||||||
//创建一年数据
|
|
||||||
public void createCalendarDate() {
|
|
||||||
int year = LocalDate.now().getYear()-1;
|
|
||||||
CreateDate(year);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取一年中的每一天并处理每个月最大天数
|
|
||||||
public void CreateDate(int year) {
|
|
||||||
for (int month = 1; month <= 1; month++) {
|
|
||||||
// 获取当前月的最大天数
|
|
||||||
int maxDaysInMonth = LocalDate.of(year, month, 1).lengthOfMonth();
|
|
||||||
|
|
||||||
for (int day = 1; day <= maxDaysInMonth; day++) {
|
|
||||||
saveDayStatus(year, month, day);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存数据并判断每一天是否周末是否放假
|
|
||||||
private void saveDayStatus(int year, int month, int day) {
|
|
||||||
|
|
||||||
LocalDate currentDay = LocalDate.of(year, month, day);
|
|
||||||
|
|
||||||
int isWorkday = isHoliday(currentDay) || isWeekend(currentDay) ? 0 : 1; // 0 表示放假,1 表示上班
|
|
||||||
|
|
||||||
CalendarSaveReqVO calendarSaveReqVO = new CalendarSaveReqVO();
|
|
||||||
calendarSaveReqVO.setDate(currentDay.format(formatter)).setIsWorkday(isWorkday);
|
|
||||||
// 插入
|
|
||||||
CalendarDO calendar = BeanUtils.toBean(calendarSaveReqVO, CalendarDO.class);
|
|
||||||
calendarMapper.insert(calendar);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是放假
|
|
||||||
public static boolean isHoliday(LocalDate date) {
|
|
||||||
return HOLIDAYS.contains(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是周末(周六或周日)
|
|
||||||
public static boolean isWeekend(LocalDate date) {
|
|
||||||
DayOfWeek dayOfWeek = date.getDayOfWeek();
|
|
||||||
return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long createCalendar(CalendarSaveReqVO createReqVO) {
|
|
||||||
// 插入
|
|
||||||
CalendarDO calendar = BeanUtils.toBean(createReqVO, CalendarDO.class);
|
|
||||||
createCalendarDate();
|
|
||||||
// calendarMapper.insert(calendar);
|
|
||||||
// 返回
|
|
||||||
return calendar.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateCalendar(CalendarSaveReqVO updateReqVO) {
|
|
||||||
// 校验存在
|
|
||||||
validateCalendarExists(updateReqVO.getId());
|
|
||||||
// 更新
|
|
||||||
CalendarDO updateObj = BeanUtils.toBean(updateReqVO, CalendarDO.class);
|
|
||||||
calendarMapper.updateById(updateObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteCalendar(Long id) {
|
|
||||||
// 校验存在
|
|
||||||
validateCalendarExists(id);
|
|
||||||
// 删除
|
|
||||||
calendarMapper.deleteById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validateCalendarExists(Long id) {
|
|
||||||
if (calendarMapper.selectById(id) == null) {
|
|
||||||
throw exception(CALENDAR_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CalendarDO getCalendar(Long id) {
|
|
||||||
return calendarMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<CalendarDO> getCalendarPage(CalendarPageReqVO pageReqVO) {
|
|
||||||
return calendarMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-----------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
// 假期日期,改用 LocalDate 存储
|
|
||||||
private static final Set<LocalDate> HOLIDAYS;
|
|
||||||
static {
|
|
||||||
Set<LocalDate> holidays = new HashSet<>();
|
|
||||||
holidays.add(LocalDate.of(2024, 1, 1)); // 元旦
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 1)); // 劳动节
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 2));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 3));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 4));
|
|
||||||
holidays.add(LocalDate.of(2024, 5, 5));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 1)); // 国庆节
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 2));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 3));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 4));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 5));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 6));
|
|
||||||
holidays.add(LocalDate.of(2024, 10, 7));
|
|
||||||
|
|
||||||
// 将 Set 转为不可变集合
|
|
||||||
HOLIDAYS = Collections.unmodifiableSet(holidays);
|
|
||||||
}
|
|
||||||
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
|
|
||||||
//创建一年数据
|
|
||||||
public void createCalendarDate() {
|
|
||||||
int year = LocalDate.now().getYear()-1;
|
|
||||||
CreateDate(year);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取一年中的每一天并处理每个月最大天数
|
|
||||||
public void CreateDate(int year) {
|
|
||||||
for (int month = 1; month <= 1; month++) {
|
|
||||||
// 获取当前月的最大天数
|
|
||||||
int maxDaysInMonth = LocalDate.of(year, month, 1).lengthOfMonth();
|
|
||||||
|
|
||||||
for (int day = 1; day <= maxDaysInMonth; day++) {
|
|
||||||
saveDayStatus(year, month, day);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存数据并判断每一天是否周末是否放假
|
|
||||||
private void saveDayStatus(int year, int month, int day) {
|
|
||||||
|
|
||||||
LocalDate currentDay = LocalDate.of(year, month, day);
|
|
||||||
|
|
||||||
int isWorkday = isHoliday(currentDay) || isWeekend(currentDay) ? 0 : 1; // 0 表示放假,1 表示上班
|
|
||||||
|
|
||||||
CalendarSaveReqVO calendarSaveReqVO = new CalendarSaveReqVO();
|
|
||||||
calendarSaveReqVO.setDate(currentDay.format(formatter)).setIsWorkday(isWorkday);
|
|
||||||
// 插入
|
|
||||||
CalendarDO calendar = BeanUtils.toBean(calendarSaveReqVO, CalendarDO.class);
|
|
||||||
calendarMapper.insert(calendar);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是放假
|
|
||||||
public static boolean isHoliday(LocalDate date) {
|
|
||||||
return HOLIDAYS.contains(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否是周末(周六或周日)
|
|
||||||
public static boolean isWeekend(LocalDate date) {
|
|
||||||
DayOfWeek dayOfWeek = date.getDayOfWeek();
|
|
||||||
return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY;
|
|
||||||
}
|
|
@ -7,7 +7,7 @@ spring:
|
|||||||
autoconfigure:
|
autoconfigure:
|
||||||
exclude:
|
exclude:
|
||||||
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
|
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
|
||||||
- org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置 想要开启注释或者删除这一行即可
|
- org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
|
||||||
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
|
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
|
||||||
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
|
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
|
||||||
- de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
|
- de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
|
||||||
|
Loading…
Reference in New Issue
Block a user