package com.ruoyi.ems.mapper;

import com.ruoyi.ems.domain.InspectionPlan;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

/**
 * 巡检计划Mapper接口
 *
 * 【修改说明】新增调度相关方法
 */
public interface InspectionPlanMapper {

    InspectionPlan selectById(Long id);

    InspectionPlan selectByPlanCode(String planCode);

    List<InspectionPlan> selectList(InspectionPlan plan);

    /**
     * 查询已启用调度的自动巡检计划
     * 供调度器启动时加载
     */
    List<InspectionPlan> selectEnabledSchedulePlans();

    int insert(InspectionPlan plan);

    int update(InspectionPlan plan);

    int updateStatus(@Param("planCode") String planCode, @Param("status") Integer status);

    /**
     * 更新调度执行信息
     * @param planCode 计划代码
     * @param lastExecTime 上次执行时间
     * @param nextExecTime 下次执行时间
     */
    int updateExecInfo(@Param("planCode") String planCode,
        @Param("lastExecTime") Date lastExecTime,
        @Param("nextExecTime") Date nextExecTime);

    /**
     * 更新调度启用状态
     * @param planCode 计划代码
     * @param scheduleEnabled 是否启用 0-禁用 1-启用
     */
    int updateScheduleEnabled(@Param("planCode") String planCode,
        @Param("scheduleEnabled") Integer scheduleEnabled);

    int deleteById(Long id);

    int deleteByIds(Long[] ids);
}