package com.huatek.busi.service.cable;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.dto.BusiOfflineCableRepairDto;
import com.huatek.busi.entity.BusiEqmMalfunction;
import com.huatek.busi.vo.BusiOfflineCableRepairVo;

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

    /**
     * 分页查找查找其它检修记录
     *
     * @param busiOfflineCableRepairDto 其它检修记录Dto
     */
    PageInfo<BusiOfflineCableRepairVo> findBusiOfflineCableRepairPage(BusiOfflineCableRepairDto busiOfflineCableRepairDto);

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

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

    /**
     * 删除其它检修记录
     *
     * @param token token
     * @param id 其它检修记录id
     * @return int 影响的行数
     */
    int deleteBusiOfflineCableRepair(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 deleteBusiOfflineCableRepair(String token, List<String> idList);

    void dealCableRepair(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 getRepairCountForCable(Map<String, Object> params);

    Integer getRepairCount(Map<String, Object> params);

    BusiOfflineCableRepairVo findBusiOfflineCableRepair(String mainTreeId, String siteId);

    /**
     * 分页查找查找 其它检修记录
     *
     * @param busiOfflineGisRepairDto 其它检修记录Dto
     * @return PageInfo<BusiOfflineCableRepairVo> 其它检修记录List
     */
    List<BusiOfflineCableRepairVo> findBusiOfflineCableRepairList(BusiOfflineCableRepairDto busiOfflineCableRepairDto);

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