package com.huatek.busi.service.Other;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.dto.BusiOfflineOtherRepairDto;
import com.huatek.busi.entity.BusiEqmMalfunction;
import com.huatek.busi.vo.BusiOfflineOtherRepairVo;

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

    /**
     * 分页查找查找其它检修记录
     *
     * @param busiOfflineGisRepairDto 其它检修记录Dto
     * @return PageInfo<BusiOfflineOtherRepairVo> 其它检修记录List
     */
    PageInfo<BusiOfflineOtherRepairVo> findBusiOfflineOtherRepairPage(BusiOfflineOtherRepairDto busiOfflineOtherRepairDto);

    /**
     *  通过id查找其它检修记录
     *
     * @param id 主键
     * @return BusiOfflineOtherRepairVo 其它检修记录
     */
    BusiOfflineOtherRepairVo findBusiOfflineOtherRepairVo(String id);

    /**
     * 修改其它检修记录
     *
     * @param token token
     * @param busiOfflineOtherRepairDto GIS检修记录Dto
     * @return int 影响的行数
     */
    int saveOrUpdateOtherRepair(String token, BusiOfflineOtherRepairDto busiOfflineOtherRepairDto);

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

    /**
     * 告警转检修
     * 
     * @param token
     *            token
     * @param busiEqmWarning
     *            告警
     */
    void toRepair(String token, BusiEqmMalfunction busiEqmMalfunction);
    
    /**
     * 删除其它检修记录
     *
     * @param token token
     * @param id GIS检修记录id
     * @return int 影响的行数
    */
    int deleteBusiOfflineOtherRepair(String token, List<String> idList);
    
    void dealOtherRepair(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 getRepairCountForOther(Map<String, Object> params);
    
    Integer getRepairCount(Map<String, Object> params);
    
	BusiOfflineOtherRepairVo findBusiOfflineOtherRepair(String mainTreeId, String siteId);
	
	 /**
     * 分页查找查找 其它检修记录
     *
     * @param busiOfflineGisRepairDto 其它检修记录Dto
     * @return PageInfo<BusiOfflineOtherRepairVo> 其它检修记录List
     */
    List<BusiOfflineOtherRepairVo> findBusiOfflineOtherRepairList(BusiOfflineOtherRepairDto busiOfflineOtherRepairDto);
    
    /**
     * 根据故障ID查询未处理检修单
     * @param malfunctionId
     * @return
     */
    BusiOfflineOtherRepairVo isFinishedOverhaul(String malfunctionId);
}
