package com.njcn.mapper.user;

import com.njcn.pojo.data.IndexsCount;
import com.njcn.pojo.user.Depts;
import com.njcn.pojo.user.DeptsLine;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface DeptsLineMapper extends Mapper<DeptsLine> {
    List<DeptsLine> getBind(String deptsIndex);
    int changeBindLine(@Param("deptsIndex") String deptsIndex, @Param("index") Integer index, @Param("sysType") String sysType);

    /**
     * 根据部门以及系统类型，获取出监测点、变电站、装置、供电公司的索引
     */
    List<IndexsCount> selectIndexsByDept(@Param("deptsIndex") String deptsIndex, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    List<IndexsCount> selectIndexsByDeptPlate(@Param("deptsIndex") String deptsIndex, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    /**
     * 根据一些列部门以及系统类型，获取出监测点、变电站、装置、供电公司的索引
     */
    List<IndexsCount> selectIndexsByDepts(@Param("depts") List<Depts> depts, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    List<IndexsCount> selectIndexsByDeptsPlate(@Param("depts") List<Depts> depts, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    /***
     * 查询父节点是否绑定了监测点
     */
    int selectLine(@Param("deptsIndex") String deptsIndex,@Param("sysType") String sysType);

    List<IndexsCount> selectIndexsByDeptsRun(@Param("depts") List<Depts> depts, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType, @Param("devStatus") Integer devicdStatus,@Param("status")Integer status);

    List<IndexsCount> selectIndexsByDeptRun(@Param("deptsIndex") String deptsIndex, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType,@Param("devStatus") Integer devicdStatus,@Param("status")Integer status);


    List<IndexsCount> selectIndexsPowerIdByDeptRun(@Param("depts") List<String> depts,
                                                   @Param("sysType") String sysType,
                                                   @Param("devModel") Integer devModel,
                                                   @Param("dataType") List<Integer> dataType,
                                                   @Param("devStatus") Integer devicdStatus,
                                                   @Param("status")Integer status,
                                                   @Param("powerId") Integer powerId
                                                   );


    //扩展上面两个sql(多关联了一个pq_linedetail表)
    List<IndexsCount> selectIndexsByDeptsRunForStatFlag(@Param("depts") List<Depts> depts, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType, @Param("devStatus") Integer devicdStatus,@Param("status")Integer status);

    List<IndexsCount> selectIndexsByDeptRunForStatFlag(@Param("deptsIndex") String deptsIndex, @Param("sysType") String sysType, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType,@Param("devStatus") Integer devicdStatus,@Param("status")Integer status);
}
