package com.bonus.material.repair.service;

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

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

/**
 * 修试审核详细Service接口
 * 
 * @author syruan
 */
public interface IRepairAuditDetailsService {
    /**
     * 查询修试审核详细
     * 
     * @param id 修试审核详细主键
     * @return 修试审核详细
     */
    RepairAuditDetails selectRepairAuditDetailsById(Long id);

    /**
     * 公共方法来处理时间格式化  YYYY-MM-DD 增加 HH:mm:ss
     */
    void formatTimeParam(Map<String, Object> params, String key, String suffix);

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

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

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

    void queryTimeCope(RepairAuditDetails repairAuditDetails);

    List<RepairRecord> getRepairRecord(RepairAuditDetails repairAuditDetails);

    List<RepairPart> getPartRecord(RepairAuditDetails repairAuditDetails);

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


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

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

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


    /**
     * (外层)批量修改修试审核详细
     *
     * @param repairAuditDetails (外层)修试审核详细集合
     * @return 结果
     */
    int outerAudit(List<RepairAuditDetails> repairAuditDetails);

    /**
     * (内层)批量修改修试审核详细
     *
     * @param repairAuditDetails (内层)修试审核详细集合
     * @return 结果
     */
    int updateRepairAuditDetailsBatch(List<RepairAuditDetails> repairAuditDetails);

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

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

    /**
     * 查询修试审核任务详情
     * @param repairAuditDetails
     * @return
     */
    List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails);

    /**
     * 查询修饰一览表
     * @param dto
     * @return
     */
    List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto);

    /**
     * 查询修饰一览表总计
     * @param dto
     * @return
     */
    List<RepairHomeInfo> getRepairHomeTotalList(RepairHomeInfo dto);
}
