package com.bonus.sgzb.material.service;

import com.bonus.sgzb.material.domain.RepairAuditDetails;
import com.bonus.sgzb.material.domain.RepairPart;
import com.bonus.sgzb.material.domain.RepairRecord;
import com.bonus.sgzb.material.vo.RepairAuditDetailsVO;
import com.bonus.sgzb.material.vo.ScrapApplyDetailsVO;
import com.bonus.sgzb.material.vo.ScrapAudit;

import java.util.List;

/**
 * 修试审核详细repair_apply_detailsService接口
 * 
 * @author bonus
 * @date 2023-12-16
 */
public interface IRepairAuditDetailsService 
{
    /**
     * 查询修试审核详细repair_apply_details
     * 
     * @param id 修试审核详细repair_apply_details主键
     * @return 修试审核详细repair_apply_details
     */
    public RepairAuditDetails selectRepairAuditDetailsById(Long id);

    /**
     * 查询修试审核详细repair_apply_details列表
     * 
     * @param repairAuditDetails 修试审核详细repair_apply_details
     * @return 修试审核详细repair_apply_details集合
     */
    public List<RepairAuditDetails> selectRepairAuditDetailsList(RepairAuditDetails repairAuditDetails);

    /**
     * 新增修试审核详细repair_apply_details
     * 
     * @param repairAuditDetails 修试审核详细repair_apply_details
     * @return 结果
     */
    public int insertRepairAuditDetails(RepairAuditDetails repairAuditDetails);

    /**
     * 修改修试审核详细repair_apply_details
     * 
     * @param repairAuditDetails 修试审核详细repair_apply_details
     * @return 结果
     */
    public int updateRepairAuditDetails(RepairAuditDetails repairAuditDetails);

    /**
     * 批量删除修试审核详细repair_apply_details
     * 
     * @param ids 需要删除的修试审核详细repair_apply_details主键集合
     * @return 结果
     */
    public int deleteRepairAuditDetailsByIds(Long[] ids);

    /**
     * 删除修试审核详细repair_apply_details信息
     * 
     * @param id 修试审核详细repair_apply_details主键
     * @return 结果
     */
    public int deleteRepairAuditDetailsById(Long id);

    /**
     * 查询修试审核任务列表
     * @param repairAuditDetails
     * @return
     */
    List<ScrapApplyDetailsVO> selectRepairQuestList(RepairAuditDetails repairAuditDetails);

    /**
     * 查看修饰审核任务详细列表
     * @param repairAuditDetails
     * @return
     */
    List<RepairAuditDetails> getRepairAuditList(RepairAuditDetails repairAuditDetails);

    /**
     * 修饰任务审核
     * @param scrapAudit
     * @return
     * @throws Exception
     */
    int auditRepair(ScrapAudit scrapAudit) throws Exception;

    /**
     * 导出修试审核任务列表
     * @param bean
     * @return
     */
    List<RepairAuditDetailsVO> exportRepairQuestList(RepairAuditDetails bean);

    List<RepairRecord> getRepairRecord(RepairAuditDetails repairAuditDetails);

    List<RepairPart> getPartRecord(RepairAuditDetails repairAuditDetails);
}

