测试基本完成,待编写逻辑

This commit is contained in:
NeuroLogeKCW
2025-03-29 22:40:02 +08:00
parent f2378c2b25
commit be353ca167
6 changed files with 93 additions and 13 deletions

View File

@@ -35,4 +35,12 @@ public class AlarmController {
log.info("离开[上传位置信息接口],出参:{}", result); log.info("离开[上传位置信息接口],出参:{}", result);
return result; return result;
} }
/**
* 手动确认工作日
*/
@GetMapping("/checkWorkDay")
public void checkWorkDay() {
alarmService.checkWorkDay();
}
} }

View File

@@ -1,14 +1,17 @@
package com.kkz.kpersonalre.entity; package com.kkz.kpersonalre.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDate;
import java.sql.Blob;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/** /**
* <p> * <p>
* 日期是否节假日表 * 日期是否节假日表
@@ -23,9 +26,10 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@Accessors(chain = true) @Accessors(chain = true)
@Builder @Builder
@TableName("tb_date_holiday") @TableName("tb_date_weekday")
public class TbDateHolidayEntity extends BaseEntity { public class TbDateWeekdayEntity extends BaseEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
@@ -37,6 +41,6 @@ public class TbDateHolidayEntity extends BaseEntity {
* 是否节假日 0否 1是 * 是否节假日 0否 1是
*/ */
@TableField("holidayFlag") @TableField("holidayFlag")
private Blob holidayFlag; private Boolean holidayFlag;
} }

View File

@@ -1,7 +1,7 @@
package com.kkz.kpersonalre.mapper; package com.kkz.kpersonalre.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kkz.kpersonalre.entity.TbDateHolidayEntity; import com.kkz.kpersonalre.entity.TbDateWeekdayEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2025-03-27 * @since 2025-03-27
*/ */
@Mapper @Mapper
public interface TbDateHolidayMapper extends BaseMapper<TbDateHolidayEntity> { public interface TbDateWeekdayMapper extends BaseMapper<TbDateWeekdayEntity> {
} }

View File

@@ -0,0 +1,35 @@
package com.kkz.kpersonalre.scheduled;
import com.kkz.kpersonalre.service.AlarmService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
/**
* @program: kpersonalre
* @description: 定时任务
* @author: 孔成文
* @createTime: 2025-03-29 21:23
**/
@Configuration
@Slf4j
@EnableScheduling
public class ScheduledTask {
private final AlarmService alarmService;
public ScheduledTask(AlarmService alarmService) {
this.alarmService = alarmService;
}
/**
* 每天0点整运行的定时任务
*/
@Scheduled(cron = "0 0 0 * * ?")
public void dailyTask() {
log.info("定时任务--[查询工作日]--开始");
alarmService.checkWorkDay();
log.info("定时任务--[查询工作日]--结束");
}
}

View File

@@ -11,4 +11,9 @@ public interface AlarmService {
* @return * @return
*/ */
R<String> uploadLocation(String location); R<String> uploadLocation(String location);
/**
* 查询工作日
*/
void checkWorkDay();
} }

View File

@@ -1,12 +1,18 @@
package com.kkz.kpersonalre.service.impl; package com.kkz.kpersonalre.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.kkz.kpersonalre.api.R; import com.kkz.kpersonalre.api.R;
import com.kkz.kpersonalre.entity.TbDateWeekdayEntity;
import com.kkz.kpersonalre.entity.TbLocationConfigEntity; import com.kkz.kpersonalre.entity.TbLocationConfigEntity;
import com.kkz.kpersonalre.entity.TbLocationUploadEntity; import com.kkz.kpersonalre.entity.TbLocationUploadEntity;
import com.kkz.kpersonalre.mapper.TbAlarmClockConfigMapper; import com.kkz.kpersonalre.mapper.TbAlarmClockConfigMapper;
import com.kkz.kpersonalre.mapper.TbAlarmPersonConfigMapper; import com.kkz.kpersonalre.mapper.TbAlarmPersonConfigMapper;
import com.kkz.kpersonalre.mapper.TbDateHolidayMapper; import com.kkz.kpersonalre.mapper.TbDateWeekdayMapper;
import com.kkz.kpersonalre.mapper.TbForceWeekdayConfigMapper; import com.kkz.kpersonalre.mapper.TbForceWeekdayConfigMapper;
import com.kkz.kpersonalre.mapper.TbLocationConfigMapper; import com.kkz.kpersonalre.mapper.TbLocationConfigMapper;
import com.kkz.kpersonalre.mapper.TbLocationUploadMapper; import com.kkz.kpersonalre.mapper.TbLocationUploadMapper;
@@ -16,6 +22,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/** /**
* @program: KPersonal * @program: KPersonal
* @description: * @description:
@@ -33,7 +42,7 @@ public class AlarmServiceImpl implements AlarmService {
private TbAlarmPersonConfigMapper alarmPersonConfigMapper; private TbAlarmPersonConfigMapper alarmPersonConfigMapper;
@Autowired @Autowired
private TbDateHolidayMapper dateHolidayMapper; private TbDateWeekdayMapper dateWeekdayMapper;
@Autowired @Autowired
private TbForceWeekdayConfigMapper forceWeekdayConfigMapper; private TbForceWeekdayConfigMapper forceWeekdayConfigMapper;
@@ -66,4 +75,23 @@ public class AlarmServiceImpl implements AlarmService {
.setLocationConfigId(locationConfigEntity.getId().intValue())); .setLocationConfigId(locationConfigEntity.getId().intValue()));
return R.ok("上传成功"); return R.ok("上传成功");
} }
/**
* 查询工作日
*/
@Override
public void checkWorkDay() {
String s = HttpUtil.get("https://api.jiejiariapi.com/v1/workdays/" + DateUtil.year(DateUtil.nextWeek()));
Map<String, Object> map = JSONUtil.toBean(s, HashMap.class);
for (Map.Entry<String, Object> stringObjectEntry : map.entrySet()) {
TbDateWeekdayEntity dateWeekdayEntity = dateWeekdayMapper.selectOne(new LambdaQueryWrapper<TbDateWeekdayEntity>()
.eq(TbDateWeekdayEntity::getDate, stringObjectEntry.getKey()));
if (BeanUtil.isEmpty(dateWeekdayEntity)) {
dateWeekdayMapper.insert(new TbDateWeekdayEntity()
.setDate(LocalDateTimeUtil.parseDate(stringObjectEntry.getKey()))
.setHolidayFlag(false));
}
}
}
} }