package com.pqs9900.mapper.DataInfo;

import com.pqs9900.pojo.DataInfo.TerminalPojo;
import com.pqs9900.pojo.terminal.DeviceIpRVO;
import com.pqs9900.pojo.terminal.EdData;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @Description 终端版本控制
 * @Author cdf
 * @Date 2020/7/30 11:20
 **/
public interface VersionMapper {
    /**
    * @Author chendaofei
    * @Description 获取所有终端设备
    * @Date 11:21 2020/7/30
    **/
    List<TerminalPojo> getDeviceList(@Param("status")Integer status,@Param("devType")String devType,@Param("devSeries")String devSeries,@Param("devarr")List<String> devarr);

    /**
    * @Author chendaofei
    * @Description
    * @Date 9:46 2020/9/14
    **/
    Integer getCount(@Param("edProtocol")String edProtocol,@Param("edDate")String edDate,@Param("edIndex")String edIndex);

    /**
    * @Author chendaofei
    * @Description 新增版本
    * @Date 11:49 2020/8/6
    **/
    Integer addVersion(EdData edData);

    /**
     * @Author chendaofei
     * @Description 修改版本
     * @Date 11:49 2020/8/6
     **/
    Integer updateVersion(EdData edData);

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

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

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

    /**
     * @Author chendaofei
     * @Description 获取版本(区别,不带blob文件)
     * @Date 11:49 2020/8/6
     **/
    EdData getVersionTwo(@Param("edIndex") String edIndex);

    /**
     * @Author chendaofei
     * @Description 获取版本列表
     * @Date 11:49 2020/8/6
     **/
    List<EdData> getVersionList(@Param("edIndex") String edIndex,@Param("edName") String edName,@Param("edProtocol") String edProtocol,@Param("edDate") String edDate,@Param("devType") String devType,@Param("type") Integer type,@Param("blob")String blob);

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

    /**
    * @Author chendaofei
    * @Description
    * @Date 14:00 2020/8/11
    **/
    List<DeviceIpRVO> getDeviceIp(@Param("list") List<String> list);

    List<DeviceIpRVO> getDeviceIps(@Param("devList") Integer devList);
    /**
    * @Author chendaofei
    * @Description 判断设备版本号是否已经存在
    * @Date 15:07 2020/8/27
    **/
    Integer isExitVersionForDev(@Param("edIndex")String edIndex,@Param("list")List<String> list);

    /**
    * @Author chendaofei
    * @Description 通过字典index获取字典名
    * @Date 20:07 2020/10/21
    **/
    String getTypeByDicId(String dicIndex);

    List<TerminalPojo> getUpdetail(@Param("devIndex")String devIndex);

    int isBindDev(@Param("edIndex")String edIndex);


    /**
     * 根据装置id获取版本号
     * @author cdf
     * @date 2021/8/30
     */
    List<TerminalPojo> upFlag(@Param("devIndex")List<Integer> devIndex);

}
