package com.pqs9900.service.terminal;

import com.njcn.pojo.commons.HttpResult;
import com.njcn.pojo.configuration.DevFunction;
import com.pqs9900.pojo.DataInfo.TerminalPojo;
import com.pqs9900.pojo.terminal.DeviceIpRVO;
import com.pqs9900.pojo.terminal.EdData;
import org.springframework.web.multipart.MultipartFile;

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

public interface VersionService {

    /**
     * @Author chendaofei
     * @Description 获取所有终端设备
     * @Date 11:21 2020/7/30
     **/
    List<TerminalPojo> getDeviceList(Integer status, String devType,String devSeries,Integer upIsNo);

    List<TerminalPojo> getTerminalListForUp(List<String> devarr);

    /**
     * @Author chendaofei
     * @Description 新增版本
     * @Date 11:49 2020/8/6
     **/
    String addVersion(String edName,String edDescribe,String edProtocol,String edDate,String devType,String type, MultipartFile file);

    /**
     * @Author chendaofei
     * @Description 修改版本
     * @Date 11:49 2020/8/6
     **/
    String updateVersion(String edIndex,String edName,String edDescribe,String edProtocol,String edDate,String devType,String type, MultipartFile file);

    /**
     * @Author chendaofei
     * @Description 删除版本
     * @Date 11:49 2020/8/6
     **/
    Integer delVersion(String edIndex);

    /**
     * @Author chendaofei
     * @Description 启用停用版本
     * @Date 11:49 2020/8/6
     **/
    Integer enableDisable(String edIndex,Integer status);

    /**
     * @Author chendaofei
     * @Description 获取版本
     * @Date 11:49 2020/8/6
     **/
    EdData getVersion(String edIndex);

    /**
     * @Author chendaofei
     * @Description 获取版本
     * @Date 11:49 2020/8/6
     **/
    EdData getVersionTwo(String edIndex);

    /**
     * @Author chendaofei
     * @Description 获取版本列表
     * @Date 11:49 2020/8/6
     **/
    List<EdData> getVersionList(String blob,String devType);

    /**
     * @Author chendaofei
     * @Description 获取版本列表
     * @Date 11:49 2020/8/6
     **/
    List<EdData> getVersionListFilterEdIndex(String devType,String blob,List<String> edList);



    /**
    * @Author chendaofei
    * @Description
    * @Date 14:45 2020/8/11
    **/
    String getTemplet(List<String> list,String edIndex)throws Exception;

    /**
     * @Author denghuajun
     * @Description
     * @Date 14:45 2020/9/18
     */
    String sentDev(String ip,String type, String index,Long hander);

    /**
     * @Author denghuajun
     * @Description
     * @Date 14:45 2020/9/18
     */
    String sentLine(String ip,String type, String index,Long hander);

    /**
     * @Author denghuajun
     * @Description
     * @Date 11:45 2020/11/20
     */
    String socketoReset(String ip,String type, String index);

    /**
     * @Author denghuajun
     * @Description
     * @Date 14:45 2020/9/18
     */
    String sentUpdateDev(String ip,String type, String index,Long hander,String interValue);

    /**
     * @Author denghuajun
     * @Description
     * @Date 14:45 2020/9/18
     */
    String sentUpdateLine(String ip,String type, String index,Long hander,String value);

    /**
     * @Author denghuajun
     * @Description
     * @Date 14:45 2020/9/18
     */
//    String sentLineWave(String type, String index,Long hander,String value);

    List<DevFunction> getDevfunction(String devIndex);

    /**
     * @Author 陈道飞
     * @Description 获取升级日志
     * @Date 14:45 2020/9/18
     */
    List<TerminalPojo> getUpdetail(String devIndex);

    /**
     * 重启装置命令
     * @author cdf
     * @date 2021/4/12
     */
    public String restartDev(List<String> devList);

    /**
     * 重启装置命令(定值)
     * @author dhj
     * @date 2021/8/31
     */
    public String restartDevConValue(Integer devList);

    /**
     * 取消升级
     * @author cdf
     * @date 2021/8/2
     */
    public String cancelUp(List<String> devList);

    /**
     * 判断装置版本号是否变更
     * @author cdf
     * @date 2021/8/30
     */
    List<TerminalPojo>upFlag(List<Integer> devIndex);


    void logsPush(List<Map<String, String>> map)  throws Exception;
}
