package com.ruoyi.asset.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.asset.domain.TbFaultReport;
import com.ruoyi.asset.domain.dto.TbFaultReportDTO;
import com.ruoyi.asset.domain.dto.TbFaultReportProcessDTO;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.transaction.annotation.Transactional;

/**
 * 故障报备Service接口
 * 
 * @author 原动力
 * @date 2023-03-27
 */
@Transactional
public interface ITbFaultReportService extends IService<TbFaultReport>
{
    /**
     * 查询故障报备
     * 
     * @param id 故障报备主键
     * @return 故障报备
     */
    public TbFaultReport selectTbFaultReportById(Long id);

    /**
     * 查询故障报备列表
     * 
     * @param tbFaultReport 故障报备
     * @return 故障报备集合
     */
    public List<TbFaultReportDTO> selectTbFaultReportList(TbFaultReport tbFaultReport);

    /**
     * 新增故障报备
     * 
     * @param tbFaultReport 故障报备
     * @return 结果
     */
    public int insertTbFaultReport(TbFaultReport tbFaultReport);

    /**
     * 修改故障报备
     * 
     * @param tbFaultReport 故障报备
     * @return 结果
     */
    public int updateTbFaultReport(TbFaultReport tbFaultReport);

    /**
     * 批量删除故障报备
     * 
     * @param ids 需要删除的故障报备主键集合
     * @return 结果
     */
    public int deleteTbFaultReportByIds(Long[] ids);

    /**
     * 删除故障报备信息
     * 
     * @param id 故障报备主键
     * @return 结果
     */
    public int deleteTbFaultReportById(Long id);

    /**
     * 小程序：新增故障报备信息
     *
     * @param tbFaultReport 故障报备信息
     * @return 结果
     */
    public AjaxResult saveTbFaultReport(TbFaultReport tbFaultReport);

    /**
     * 故障报备处理
     *
     * @param faultReportProcessDTO 处理信息
     * @return 结果
     */
    public AjaxResult tbFaultReportProcess(TbFaultReportProcessDTO faultReportProcessDTO);

    /**
     * 获取用户自己故障报备记录
     *
     * @return 故障报备信息列表
     */
    List<TbFaultReport> selectMeTbFaultReport();
}
