From 52feee3e55403d2858da59605173ec055f601bfa Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期六, 24 十月 2026 19:47:25 +0800
Subject: [PATCH] feat(hrm): 同步新疆中亿装配的人力资源模块到北方科技
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java | 41 ++++++++++++++++-------------------------
1 files changed, 16 insertions(+), 25 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java
index d894d4c..0981a6a 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java
@@ -32,10 +32,9 @@
@Override
public Long createAttendanceHoliday(HrmAttendanceHolidaySaveReqVO createReqVO) {
- validateDateRange(createReqVO);
- validateDateRangeNoOverlap(createReqVO.getStartDate(), createReqVO.getEndDate(), null);
+ // 鏍¢獙鏃ユ湡鏄惁宸插瓨鍦ㄩ厤缃�
+ validateAttendanceHolidayDateExists(createReqVO.getDate());
HrmAttendanceHolidayDO attendanceHoliday = BeanUtils.toBean(createReqVO, HrmAttendanceHolidayDO.class);
- attendanceHoliday.setDate(createReqVO.getStartDate());
if (attendanceHoliday.getIsLegal() == null) {
attendanceHoliday.setIsLegal(0);
}
@@ -46,10 +45,12 @@
@Override
public void updateAttendanceHoliday(HrmAttendanceHolidaySaveReqVO updateReqVO) {
validateAttendanceHolidayExists(updateReqVO.getId());
- validateDateRange(updateReqVO);
- validateDateRangeNoOverlap(updateReqVO.getStartDate(), updateReqVO.getEndDate(), updateReqVO.getId());
+ // 濡傛灉鏃ユ湡鍙樻洿锛屾牎楠屾柊鏃ユ湡鏄惁宸插瓨鍦ㄩ厤缃�
+ HrmAttendanceHolidayDO oldHoliday = attendanceHolidayMapper.selectById(updateReqVO.getId());
+ if (!oldHoliday.getDate().equals(updateReqVO.getDate())) {
+ validateAttendanceHolidayDateExists(updateReqVO.getDate());
+ }
HrmAttendanceHolidayDO updateObj = BeanUtils.toBean(updateReqVO, HrmAttendanceHolidayDO.class);
- updateObj.setDate(updateReqVO.getStartDate());
attendanceHolidayMapper.updateById(updateObj);
}
@@ -61,23 +62,13 @@
private void validateAttendanceHolidayExists(Long id) {
if (attendanceHolidayMapper.selectById(id) == null) {
- throw exception(ATTENDANCE_HOLIDAY_NOT_EXISTS, id);
+ throw exception(ATTENDANCE_HOLIDAY_NOT_EXISTS);
}
}
- private void validateDateRange(HrmAttendanceHolidaySaveReqVO reqVO) {
- if (reqVO.getEndDate().isBefore(reqVO.getStartDate())) {
- throw exception(ATTENDANCE_HOLIDAY_DATE_RANGE_INVALID, reqVO.getEndDate(), reqVO.getStartDate());
- }
- }
-
- private void validateDateRangeNoOverlap(LocalDate startDate, LocalDate endDate, Long excludeId) {
- for (HrmAttendanceHolidayDO exist : attendanceHolidayMapper.selectListByDateRange(startDate, endDate)) {
- if (excludeId != null && excludeId.equals(exist.getId())) {
- continue;
- }
- throw exception(ATTENDANCE_HOLIDAY_RANGE_OVERLAP, startDate, endDate,
- exist.getName(), exist.getStartDate(), exist.getEndDate());
+ private void validateAttendanceHolidayDateExists(LocalDate date) {
+ if (attendanceHolidayMapper.selectByDate(date) != null) {
+ throw exception(ATTENDANCE_HOLIDAY_DATE_EXISTS);
}
}
@@ -93,16 +84,16 @@
@Override
public List<HrmAttendanceHolidayDO> getAttendanceHolidayListByDateRange(LocalDate startDate, LocalDate endDate) {
- return attendanceHolidayMapper.selectListByDateRange(startDate, endDate);
+ return attendanceHolidayMapper.selectListByDateBetween(startDate, endDate);
}
@Override
public boolean isWorkDay(LocalDate date) {
- // 1. 鏌ヨ瑕嗙洊璇ユ棩鏈熺殑鑺傚亣鏃ラ厤缃紙閰嶇疆鏃堕棿娈典笉鍏佽閲嶅彔锛岃嚦澶氬懡涓竴鏉★級
- List<HrmAttendanceHolidayDO> holidays = attendanceHolidayMapper.selectListByDateRange(date, date);
- if (!holidays.isEmpty()) {
+ // 1. 鏌ヨ鑺傚亣鏃ラ厤缃�
+ HrmAttendanceHolidayDO holiday = attendanceHolidayMapper.selectByDate(date);
+ if (holiday != null) {
// 鏈夐厤缃椂锛屾寜閰嶇疆鍒ゆ柇
- return HrmAttendanceHolidayTypeEnum.WORK_DAY.getType().equals(holidays.get(0).getType());
+ return HrmAttendanceHolidayTypeEnum.WORK_DAY.getType().equals(holiday.getType());
}
// 2. 鏃犻厤缃椂锛屾寜鍛ㄦ湯鍒ゆ柇
DayOfWeek dayOfWeek = date.getDayOfWeek();
--
Gitblit v1.9.3