123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package com.ruoyi.system.service.impl;
- import com.alibaba.fastjson2.JSON;
- import com.alibaba.fastjson2.JSONObject;
- import com.google.gson.Gson;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.http.HttpUtils;
- import com.ruoyi.system.domain.ClockHolidays;
- import com.ruoyi.system.domain.MenuFood;
- import com.ruoyi.system.domain.MenuFoodRecord;
- import com.ruoyi.system.mapper.ClockHolidaysMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import org.springframework.util.ObjectUtils;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.List;
- import java.util.Locale;
- import java.util.Map;
- import java.util.Set;
- /**
- * 定时任务
- */
- @Component
- public class Task {
- @Autowired
- private ClockHolidaysMapper clockHolidaysMapper;
- @Autowired
- private MenuFoodRecordServiceImpl menuFoodRecordService;
- @Autowired
- private MenuFoodServiceImpl menuFoodService;
- private static final Gson GSON = new Gson();
- /***
- *每日食谱记录定时任务
- * 每天23点执行
- * @throws Exception
- */
- @Async
- @Scheduled(cron = "0 0 23 * * ? ")
- public void popover() throws Exception {
- // 获取当前日期
- LocalDate currentDate = LocalDate.now();
- // 格式化日期为星期几,使用中文环境
- String currentDayOfWeek = currentDate.format(DateTimeFormatter.ofPattern("E", Locale.CHINA));
- MenuFood menuFood = new MenuFood();
- menuFood.setMenuFoodTime(currentDayOfWeek);
- menuFood.setIsUse("Y");
- List<MenuFood> menuFoods = menuFoodService.selectMenuFoodList(menuFood);
- if (menuFoods != null && menuFoods.size() > 0) {
- MenuFoodRecord menuFoodRecord = GSON.fromJson(GSON.toJson(menuFoods.get(0)), MenuFoodRecord.class);
- menuFoodRecord.setRecordTime(DateUtils.getNowDate());
- menuFoodRecordService.insertMenuFoodRecord(menuFoodRecord);
- }
- }
- /***
- *获取法定节假日和补班信息
- * 定时:每个月20号2点
- * @throws Exception
- */
- @Async
- //@Scheduled(cron = "0 0/2 * * * ? ")
- //@Scheduled(cron = "0 20 0 * * ? ")
- //@Scheduled(cron = "0/10 * * * * ? ")
- @Scheduled(cron = "0 0 2 20 * ? ")
- public void holidays() {
- String year = DateUtils.getYear();
- //查询是否存在当前年数据
- ClockHolidays clockHoliday = new ClockHolidays();
- clockHoliday.setYear(year);
- List<ClockHolidays> clockHolidaysList = clockHolidaysMapper.selectClockHolidaysList(clockHoliday);
- if(clockHolidaysList!=null && clockHolidaysList.size()>0){
- year = String.valueOf(Integer.parseInt(year) + 1);
- }
- String url = "https://timor.tech/api/holiday/year/"+year;
- String rspStr = HttpUtils.sendGet(url);
- JSONObject obj = JSON.parseObject(rspStr);
- Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) obj.get("holiday");
- if(ObjectUtils.isEmpty(holiday)){
- return;
- }
- Set<String> strings = holiday.keySet();
- for (String str : strings) {
- Map<String, Object> stringObjectMap = holiday.get(str);
- boolean bool = (Boolean) stringObjectMap.get("holiday");
- ClockHolidays clockHolidays = new ClockHolidays();
- clockHolidays.setYear(year);
- clockHolidays.setHolidayDate((String) stringObjectMap.get("date"));
- clockHolidays.setType("NO");
- if(!bool){
- clockHolidays.setType("YES");
- }
- clockHolidays.setCreateTime(DateUtils.getNowDate());
- clockHolidays.setUpdateTime(DateUtils.getNowDate());
- clockHolidaysMapper.insertClockHolidays(clockHolidays);
- }
- System.out.println("1");
- }
- }
|