Commit 3858cf2a authored by fangxinjiang's avatar fangxinjiang

节假日表获取逻辑更新-代码优化-fxj

parent 606363cc
...@@ -17,6 +17,8 @@ public class HolidayCrawler { ...@@ -17,6 +17,8 @@ public class HolidayCrawler {
* 年度法定节假日、公休日查询接口地址 * 年度法定节假日、公休日查询接口地址
*/ */
private static final String YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+DateUtil.getYear(new Date())+"&workday=2&order_by=1&cn=1&page=1&size=500"; private static final String YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+DateUtil.getYear(new Date())+"&workday=2&order_by=1&cn=1&page=1&size=500";
private static final String NEXT_YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+(DateUtil.getYearOfInt(new Date())+1)+"&workday=2&order_by=1&cn=1&page=1&size=500";
/** /**
* http请求工具类 * http请求工具类
*/ */
...@@ -42,4 +44,25 @@ public class HolidayCrawler { ...@@ -42,4 +44,25 @@ public class HolidayCrawler {
} }
return null; return null;
} }
public static List<Map<String,Object>> initNextYearHolidays(){
long ts = System.currentTimeMillis();
Map<String,Object> result = REST_TEMPLATE.getForObject(String.format(NEXT_YEAR_HOLIDAY_URL, ts, ts), Map.class);
if(null!=result){
String code=String.valueOf(result.get("code"));
String msg=String.valueOf(result.get("msg"));
if(code.equals("0") && msg.equals("ok")){
Map data= (Map) result.get("data");
if(null!=data){
List<Map<String,Object>> list= (List<Map<String, Object>>) data.get("list");
return list;
/*int i=0;
for(Map<String,Object> d:list){
System.out.println("i="+(++i)+" 日期="+d.get("date")+" 类型="+d.get("weekend")+" weekend_cn="+d.get("weekend_cn"));
}*/
}
}
}
return null;
}
} }
...@@ -175,6 +175,18 @@ public class THolidayInfoController { ...@@ -175,6 +175,18 @@ public class THolidayInfoController {
tHolidayInfoService.createHolidayInfo(); tHolidayInfoService.createHolidayInfo();
} }
/**
* @Description: 手动生成次年年度假期表 --考虑到数据没出来可多次操作,线上再添加
* @Author: fxj
* @Date: 2024/5/8
**/
@Operation(summary = "手动生成次年年度假期表 ", description = "手动生成次年年度假期表 ")
@SysLog("手动生成次年年度假期表 ")
@PostMapping("/createNextYearHolidayInfo")
public void createNextYearHolidayInfo() {
tHolidayInfoService.createHolidayInfo();;
}
/** /**
* @Author huyc * @Author huyc
* @Description 查询日期的前一个/后一个工作日 * @Description 查询日期的前一个/后一个工作日
......
...@@ -54,7 +54,9 @@ public interface THolidayInfoService extends IService<THolidayInfo> { ...@@ -54,7 +54,9 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
TEmployeeInsuranceWorkDayVo getInitBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo); TEmployeeInsuranceWorkDayVo getInitBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo); void createNextYearHolidayInfo();
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo); TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo);
......
...@@ -257,7 +257,7 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo ...@@ -257,7 +257,7 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
@Override @Override
public void createHolidayInfo() { public void createHolidayInfo() {
baseMapper.delete(Wrappers.<THolidayInfo>query().lambda()); baseMapper.delete(Wrappers.<THolidayInfo>query().lambda().eq(THolidayInfo::getYear,DateUtil.getYear(new Date())));
List<Map<String,Object>> json = HolidayCrawler.initHolidays(); List<Map<String,Object>> json = HolidayCrawler.initHolidays();
List<THolidayInfo> saveList = new ArrayList<>(); List<THolidayInfo> saveList = new ArrayList<>();
THolidayInfo save; THolidayInfo save;
...@@ -284,6 +284,35 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo ...@@ -284,6 +284,35 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:"); log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:");
} }
@Override
public void createNextYearHolidayInfo() {
baseMapper.delete(Wrappers.<THolidayInfo>query().lambda().eq(THolidayInfo::getYear,(DateUtil.getYearOfInt(new Date())+1)+""));
List<Map<String,Object>> json = HolidayCrawler.initNextYearHolidays();
List<THolidayInfo> saveList = new ArrayList<>();
THolidayInfo save;
for(Map<String,Object> d:json){
save = new THolidayInfo();
try {
save.setDate(DateUtil.stringToDate((String) d.get("date").toString(),DateUtil.ISO_DATE_FORMAT));
}catch (Exception e){
log.error("假期表初始化异常:"+d.get("date"),e);
continue;
}
save.setDay(DateUtil.getDay(save.getDate()));
save.setMonth(DateUtil.getMonth(save.getDate()));
save.setYear(DateUtil.getYear(save.getDate()));
save.setCreateBy("1");
save.setCreateName("admin");
save.setCreateTime(LocalDateTime.now());
save.setUpdateBy("1");
saveList.add(save);
}
if (Common.isNotNull(saveList)){
this.saveBatch(saveList);
}
log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:");
}
@Override @Override
public TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo) { public TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo) {
//获取当年所有假期配置表 //获取当年所有假期配置表
......
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