/*
 * Author: wangjian
 * 生成Service
 */
package com.tofly.gpsboot.service.maintain;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.gpsboot.strategy.ExcelStrategy;
import com.tofly.pojo.maintain.dto.RepairplanDto;
import com.tofly.pojo.maintain.vo.RepairplanVo;
import com.tofly.gpsboot.exception.BusinessException;
import com.tofly.gpsboot.service.IBaseService;
import com.tofly.pojo.maintain.Repairplan;

import java.util.List;


/**
 * 抢维修年度计划记录信息表
 *
 * @author admin
 * @date Tue Apr 06 00:00:00 CST 2021
 */
public interface RepairplanService extends IBaseService<Repairplan, RepairplanVo>, ExcelStrategy {

    /**
     * 新增基本和详情信息
     * @param parDto
     * @return 年计划id
     * @throws BusinessException 抛出新增的详情为空
     */
    String savaYearPlanInfo(RepairplanDto parDto) throws BusinessException;


    /**
     * 分页查询
     *
     * @param page
     * @param parDto
     * @return
     */
    Page<RepairplanVo> getRepairPlanPage(Page page,RepairplanDto parDto);

    Page<RepairplanVo> getAuditList(Page page, RepairplanDto dto);

    Page<RepairplanVo> getAllList(Page page, RepairplanDto dto);

    Page<RepairplanVo> getNeedAuditList(Page page, RepairplanDto dto);

    /**
     * 根据审核统计接口查询出来的id获取需要审核对象的分页列表
     * @param page
     * @param repairPlanIdList
     * @return
     */
    Page<RepairplanVo>  getNowAuditPageList(Page page,List<Long> repairPlanIdList);

    /**
     * 获取基本和详情信息
     * @param id
     * @return 封装返回
     * @throws BusinessException 抛出id查询当前数据不存在
     */
    RepairplanVo getYearPlanInfo(Long id) throws BusinessException;

    /**
     * 修改基本和详情信息
     * @param parDto
     * @throws BusinessException 抛出更新当前数据不存在
     */
    void updateYearPlanInfo(RepairplanDto parDto) throws BusinessException;

    /**
     * 单个删除或批量删除信息
     * @param idList
     * @throws BusinessException 抛出删除对象不存在
     */
    void deleteYearPlanInfo(List<Long> idList)throws BusinessException;
}
