Commit 5769ac07 authored by fangxinjiang's avatar fangxinjiang

增加日期查询接口-fxj

parent 887900f8
...@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.List; import java.util.List;
...@@ -276,4 +277,20 @@ public class THolidayInfoController { ...@@ -276,4 +277,20 @@ public class THolidayInfoController {
return tHolidayInfoService.getOneMonthDay(); return tHolidayInfoService.getOneMonthDay();
} }
/**
* @Author fxj
* @Description 获取某天之后的指定数量的工作日
* @Date 11:31 2026/3/16
* @Param date 指定天 count 指定天数 type: 0 后一个工作日 1 前一个工作日
* @return
**/
@GetMapping("/calculateReminderWorkDays")
public R calculateReminderWorkDays(@RequestParam(required = true) LocalDate date,
@RequestParam(required = true)int count,
@RequestParam(required = true)int type) {
if (date == null) {
date = LocalDate.now();
}
return R.ok(tHolidayInfoService.calculateReminderWorkDays(date, count, type));
}
} }
...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo; ...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
import java.time.LocalDate;
import java.util.List; import java.util.List;
/** /**
...@@ -80,4 +81,5 @@ public interface THolidayInfoService extends IService<THolidayInfo> { ...@@ -80,4 +81,5 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
List<THolidayInfo> noPageDiy(THolidayInfoSearchVo searchVo); List<THolidayInfo> noPageDiy(THolidayInfoSearchVo searchVo);
LocalDate calculateReminderWorkDays(LocalDate lastDay, int count, int type);
} }
...@@ -555,5 +555,49 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo ...@@ -555,5 +555,49 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
} }
return R.ok("success"); return R.ok("success");
} }
/**
* @Author fxj
* @Description 往前找指定个工作日 含当前日期
* @param type 0 往前 1 往后
* @Date 19:24 2026/2/26
* @return
**/
@Override
public LocalDate calculateReminderWorkDays(LocalDate lastDay, int count, int type) {
LocalDate currentDate = lastDay;
int workDayCount = 0;
// 往前找3个工作日
while (workDayCount < count) {
// 检查当前日期是否为工作日
if (isWorkDay(currentDate)) {
workDayCount++;
}
if (workDayCount == count){
return currentDate;
}
// 往前一天
currentDate = currentDate.minusDays(0==type?1:-1);
}
return currentDate;
}
/**
* 判断指定日期是否为工作日
* @param date 要检查的日期
* @return true-工作日,false-非工作日
*/
private boolean isWorkDay(LocalDate date) {
TEmployeeInsuranceWorkDayVo workDayVo = new TEmployeeInsuranceWorkDayVo();
workDayVo.setRegistDate(LocalDateTimeUtils.convertLDToDate(date));
// 使用 THolidayInfoService 的 checkIsWorkDay 方法判断是否为假期
// 如果是假期则不是工作日,否则是工作日
Boolean res = checkIsWorkDay(workDayVo);
// 添加空值检查,避免 NPE,并提高代码可读性
if (res == null ) {
log.warn("checkIsWorkDay 返回结果为空,默认视为非工作日");
return false;
}
// res.getData() 为 true 表示是假期(非工作日),为 false 表示是工作日
return !res.booleanValue();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment