package com.huatek.busi.service.transformer;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.dto.BusiOfflineTransformerRepairDto;
import com.huatek.busi.entity.BusiEqmMalfunction;
import com.huatek.busi.vo.BusiOfflineTransformerRepairVo;

/**
 * 变压器检修记录 Service
 *
 * @author anker_cheng
 * @date Jul 4, 2019 2:15:37 PM
 */
public interface BusiOfflineTransformerRepairService {

    /**
     * 分页查找查找 变压器检修记录
     *
     * @param busiOfflineTransformerRepairDto 变压器检修记录Dto
     * @return PageInfo<BusiOfflineTransformerRepairVo> 变压器检修记录List
     */
    PageInfo<BusiOfflineTransformerRepairVo> findBusiOfflineTransformerRepairPage(BusiOfflineTransformerRepairDto busiOfflineTransformerRepairDto);

    /**
     *  通过id查找 变压器检修记录
     *
     * @param id 主键
     * @return BusiOfflineTransformerRepairVo 变压器检修记录
     */
    BusiOfflineTransformerRepairVo findBusiOfflineTransformerRepairVo(String id);

    /**
     * 修改 变压器检修记录
     *
     * @param token token
     * @param busiOfflineTransformerRepairDto 变压器检修记录Dto
     * @return int 影响的行数
     */
    int saveOrUpdate(String token, BusiOfflineTransformerRepairDto busiOfflineTransformerRepairDto);

    /**
     * 删除 变压器检修记录
     *
     * @param token token
     * @param id 变压器检修记录id
     * @return int 影响的行数
    */
    int deleteBusiOfflineTransformerRepair(String token, List<String> idList);

    /**
     * 告警转检修
     * 
     * @param token
     *            token
     * @param busiEqmWarning
     *            告警
     */
    void toRepair(String token, BusiEqmMalfunction busiEqmWarning);
    
    /**
     * 处理变压器检修单
     * @param token
     * @param idList
     * @param dealReasult
     */    
    void dealGisRepair(String token, List<String> idList,String dealReasult);

    /**
     * 变压器维修次数统计</br>
     * params.subEquipmentId 设备ID</br>
     * params.sensorCode 传感器编码</br>
     * params.startTime 开始时间</br>
     * params.endTime 结束时间</br>
     * 如果参数都不传，则统计所有的数据
     * 
     * @param params
     *            参数map
     * @return 维修次数
     */
    Integer getTransformerRepairCount(Map<String, Object> params);

    /**
     * 根据故障ID查询未处理检修单
     * @param malfunctionId
     * @return
     */
    BusiOfflineTransformerRepairVo isFinishedOverhaul(String malfunctionId);
}