若依的定时任务配置可以通过component注解来快速定位,代码如下:
/**
* 预约Controller
*
* @author shawn
* @date 2025-02-11
*/
@RestController
@Component("autoController")
public class AbucoderAutoController extends BaseController {
@Autowired
private IAbucoderMakeappointService abucoderMakeappointService;
@Autowired
private IAbucoderRoomService abucoderRoomService;
@Autowired
private IAbucoderProgramsService abucoderProgramsService;
/**
* 自动新增每个商户的每个包间预约空白记录
*/
@Transactional(rollbackFor = Exception.class)
public AjaxResult autoAdd()
{
try {
AbucoderPrograms abucoderPrograms = new AbucoderPrograms();
List<AbucoderPrograms> abucoderPrograms1 = abucoderProgramsService.selectAbucoderProgramsList(abucoderPrograms);
for (AbucoderPrograms programs : abucoderPrograms1){
AbucoderRoom abucoderRoom = new AbucoderRoom();
abucoderRoom.setShopId(programs.getId());
List<AbucoderRoom> abucoderRooms = abucoderRoomService.selectAbucoderRoomList(abucoderRoom);
for (AbucoderRoom abucoderRoom1 : abucoderRooms) {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 循环生成未来七天的数据
for (int dayOffset = 0; dayOffset < 7; dayOffset++) {
LocalDate targetDate = currentDate.plusDays(dayOffset);
// 开始时间为当天的 00:00
LocalDateTime startTime = LocalDateTime.of(targetDate, LocalTime.MIN);
// 循环生成 48 个半小时的时间段记录
for (int i = 0; i < 48; i++) {
// 结束时间为开始时间加上半小时
LocalDateTime endTime = startTime.plus(30, ChronoUnit.MINUTES);
AbucoderMakeappoint abucoderMakeappoint1 = new AbucoderMakeappoint();
abucoderMakeappoint1.setShopId(programs.getId());
abucoderMakeappoint1.setRoomId(abucoderRoom1.getId());
abucoderMakeappoint1.setAppointStart(startTime);
abucoderMakeappoint1.setAppointEnd(endTime);
// 插入预约记录
// 查询是否存在相同的数据
List<AbucoderMakeappoint> existingRecords = abucoderMakeappointService.selectAbucoderMakeappointList(abucoderMakeappoint1);
if (existingRecords.isEmpty()) {
// 如果不存在相同的数据,则插入记录
abucoderMakeappointService.insertAbucoderMakeappoint(abucoderMakeappoint1);
}
// 更新开始时间为下一个半小时的开始时间
startTime = endTime;
}
}
}
}
}catch (DataAccessException e) {
// 如果使用 Spring 框架,捕获 DataAccessException
System.err.println("插入预约记录时发生数据访问异常: " + e.getMessage());
e.printStackTrace();
}
return AjaxResult.error();
}
}
重点为:@Component(“autoController”),定义了bean为autoController,并调用其中的autoAdd方法。因此在ruoyi的管理系统中定时任务配置为:

记得在任务后加()
255

被折叠的 条评论
为什么被折叠?



