package com.zcxk.task.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcxk.task.dto.PlanManageDto;
import com.zcxk.task.dto.TaskChangeTendDto;
import com.zcxk.task.dto.TaskConditionDto;
import com.zcxk.task.entity.PlanManage;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface PlanManageService {
    /**
     * 新增任务单
     */
    int insertSelective(PlanManage record);

    /**
     * 更新任务单
     */
    int updateByPrimaryKeySelective(PlanManage record);

    /**
     *分页查询巡检计划单
     */
    IPage<PlanManageDto> selectPage(IPage<PlanManageDto> page, PlanManageDto planManageDto);


    /**
     * 按单号查询
     */
    PlanManage selectByPlanId(String planId);

    /**
     * 按主键查询
     */
    PlanManage selectByPrimaryKey(Integer id);

    /**
     * 按主键更新
     */

    int updateByPrimaryKey(PlanManage record);


    /**
     * 批量删除
     */
    Integer batchDelete(@Param("ids") List<Integer> ids);

    /**
     * 按id查询任务和详情
     */
    PlanManageDto selectPlanDetail(Integer id);

    /**
     * 待处理权限
     */
    int selectPendingPower(Map<String,Object> map);

    /**
     * 流程节点名称
     */
    List<Map<String,Object>> selectTaskName(Map<String,Object> map);

    /**
     * 综合展示-查询任务执行情况
     */
    List<PlanManageDto> selectTaskFinished(PlanManageDto planManageDto);

    List<PlanManageDto> selectTaskFinishedByDate(PlanManageDto planManageDto);

    TaskConditionDto selectTaskCondition(PlanManageDto planManageDto);

    List<TaskChangeTendDto> selectTaskChangeTrend(PlanManageDto planManageDto);

    int[] selectTaskDuration(PlanManageDto planManageDto);

    /**
    * @Author lihui
    * @Description 根据ID查询任务计划工作流
    * @Date 16:34 2021/5/14
    * @Param [id]
    * @return com.zcxk.task.dto.PlanManageDto
    **/
    PlanManageDto selectWorkFlowById(Integer id);
}