package cn.estsh.i3plus.core.api.iservice.busi;

import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Description : 任务周期业务接口
 * @Reference   :
 * @Author      : wei.peng
 * @Date        : 2018-10-22 16:58:43.771
 * @Modify      :
 **/
public interface ISysTaskCycleService {

    /**
     * 修改任务周期信息
     * @param sysTaskCycle
     */
    @ApiOperation(value = "修改任务周期",notes = "修改任务周期")
    void updateSysTaskCycle(SysTaskCycle sysTaskCycle);

    /**
     * 根据id删除任务周期
     * @param id
     */
    @ApiOperation(value = "删除任务周期",notes = "根据id删除任务周期")
    void deleteSysTaskCycleById(Long id);

    /**
     * 新增任务周期
     * @param sysTaskCycle
     * @return
     */
    @ApiOperation(value = "新增任务周期",notes = "新增任务周期")
    SysTaskCycle insertSysTaskCycle(SysTaskCycle sysTaskCycle);

    /**
     * 查询所有任务周期信息
     * @return
     */
    @ApiOperation(value = "查询所有任务周期信息",notes = "查询所有任务周期信息")
    List<SysTaskCycle> listSysTaskCycle();

    /**
     * 根据ID 查询任务周期
     * @param id
     * @return
     */
    @ApiOperation(value = "根据ID 查询任务周期",notes = "根据ID 查询任务周期")
    SysTaskCycle getSysTaskCycleById(Long id);

    /**
     * 任务周期查询，分页，排序
     * @param sysTaskCycle
     * @param pager
     * @return
     */
    @ApiOperation(value = "任务周期查询，分页，排序",notes = "任务周期查询，分页，排序")
    ListPager querySysTaskCycleByPager(SysTaskCycle sysTaskCycle, Pager pager);

    /**
     * 任务周期批量删除
     * @param ids
     */
    @ApiOperation(value = "根据id批量删除任务周期",notes = "根据id批量删除任务周期")
    void deleteSysTaskCycleByIds(Long[] ids);

    /**
     * 查询任务周期所关联的任务计划信息
     * @return
     */
    @ApiOperation(value = "根据任务周期id查询相关任务计划信息",notes = "根据任务周期id查询相关任务计划信息")
    List<SysRefTaskCyclePlan> findRefTaskCyclePlanByCycleId(Long cycleId);
}
