关于ruoyi定时任务的配置

若依的定时任务配置可以通过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的管理系统中定时任务配置为:
在这里插入图片描述
记得在任务后加()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值