package com.huatek.busi.service.gis;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.dto.BusiOfflineGisRepairDto;
import com.huatek.busi.entity.BusiEqmMalfunction;
import com.huatek.busi.vo.BusiOfflineGisRepairVo;

/**
 * GIS检修记录 Service
 *
 * @author anker_cheng
 * @date Jul 4, 2019 2:15:37 PM
 */
public interface BusiOfflineGisRepairService {

    /**
     * 分页查找查找 GIS检修记录
     *
     * @param busiOfflineGisRepairDto GIS检修记录Dto
     * @return PageInfo<BusiOfflineGisRepairVo> GIS检修记录List
     */
    PageInfo<BusiOfflineGisRepairVo> findBusiOfflineGisRepairPage(BusiOfflineGisRepairDto busiOfflineGisRepairDto);

    /**
     *  通过id查找 GIS检修记录
     *
     * @param id 主键
     * @return BusiOfflineGisRepairVo GIS检修记录
     */
    BusiOfflineGisRepairVo findBusiOfflineGisRepairVo(String id);

    /**
     * 修改 GIS检修记录
     *
     * @param token token
     * @param busiOfflineGisRepairDto GIS检修记录Dto
     * @return int 影响的行数
     */
    int saveOrUpdateGisRepair(String token, BusiOfflineGisRepairDto busiOfflineGisRepairDto);

    /**
     * 删除 GIS检修记录
     *
     * @param token token
     * @param id GIS检修记录id
     * @return int 影响的行数
    */
    int deleteBusiOfflineGisRepair(String token, String id);

    /**
     * 告警转检修
     * 
     * @param token
     *            token
     * @param busiEqmWarning
     *            告警
     */
    void toRepair(String token, BusiEqmMalfunction busiEqmMalfunction);
    
    /**
     * 删除 GIS检修记录
     *
     * @param token token
     * @param id GIS检修记录id
     * @return int 影响的行数
    */
    int deleteBusiOfflineGisRepair(String token, List<String> idList);
    
    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 getRepairCountForGis(Map<String, Object> params);
    Integer getRepairCount(Map<String, Object> params);

    List<BusiOfflineGisRepairVo> findBusiOfflineGisRepair(String siteId, String mainTreeId);
    
    /**
     * 根据故障ID查询未处理检修单
     * @param malfunctionId
     * @return
     */
    BusiOfflineGisRepairVo isFinishedOverhaul(String malfunctionId);
}
