package com.mosty.common.task.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.task.entity.SysTask;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mosty.common.task.entity.vo.*;

import java.util.List;

/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Service
* @createDate 2022-04-21 21:31:14
*/
public interface SysTaskService extends IService<SysTask> {
    /**
     * 保存下发任务
     * @param addSysTaskVO
     * @param ipAddress
     */
    void saveInfo(AddSysTaskVO addSysTaskVO, String ipAddress);

    /**
     * 查看任务详情
     * @param detailSysTaskVO
     * @param ipAddress
     * @return
     */
    SysTask detail(DetailSysTaskVO detailSysTaskVO, String ipAddress);

    /**
     * 完成回调
     * @param finishSysTaskVO
     * @param ipAddress
     */
    void finish(FinishSysTaskVO finishSysTaskVO, String ipAddress);

    /**
     * 分页查询
     * @param queryTaskVO
     * @return
     */
    IPage<SysTaskItemVO> findByList(QueryTaskVO queryTaskVO);

    /**
     * 查询对应的日志
     * @param queryTaskLogVO
     * @return
     */
    List<SysTaskLogVO> findLogByList(QueryTaskLogVO queryTaskLogVO);

    /**
     * 查询任务数量根据条件
     * @param queryTaskVO
     * @return
     */
    Long countByQuery(QueryTaskVO queryTaskVO);

    /**
     * 查询当天的任务数据
     * @return
     */
    SysTaskCountToday todayCount();

    /**
     * 查询全部统计数据
     * @return
     */
    SysTaskCountToday allCount();

    /**
     * 根据类型统计数据
     * @param countType
     * @return
     */
    List<SysTaskCountGroup> groupCount(Integer countType);

    /**
     * 获取折线图数据
     * @param lineChartType
     * @return
     */
    List<SysTaskLineChartVO> lineChart(Integer lineChartType);
}
