package com.ruoyi.ems.service;

import com.ruoyi.ems.domain.InspectionReport;
import com.ruoyi.ems.domain.ManualReportSubmit;

import java.util.List;

/**
 * 巡检报告Service接口
 */
public interface IInspectionReportService {

    /**
     * 根据ID查询巡检报告
     *
     * @param id 报告ID
     * @return 巡检报告
     */
    InspectionReport selectById(Long id);

    /**
     * 根据报告代码查询巡检报告
     *
     * @param reportCode 报告代码
     * @return 巡检报告
     */
    InspectionReport selectByReportCode(String reportCode);

    /**
     * 查询巡检报告列表
     *
     * @param report 查询条件
     * @return 巡检报告列表
     */
    List<InspectionReport> selectList(InspectionReport report);

    /**
     * 提交手动巡检结果（旧接口，用于更新已存在的报告）
     *
     * @param report 报告数据
     * @return 影响行数
     */
    int submitManualReport(InspectionReport report);

    /**
     * 更新手动巡检报告
     * 用于编辑已提交的手动巡检报告，支持更新巡检结果、报告内容、图片等
     *
     * @param submit 更新数据
     * @return 影响行数
     */
    int updateManualReport(ManualReportSubmit submit);

    /**
     * 更新巡检报告
     *
     * @param report 报告数据
     * @return 影响行数
     */
    int update(InspectionReport report);

    /**
     * 批量删除巡检报告
     *
     * @param ids 报告ID数组
     * @return 影响行数
     */
    int deleteByIds(Long[] ids);
}