package com.dcsoft.system.ladder.mapper;

import com.dcsoft.system.domain.SysEquipment;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.ladder.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TEmpowerManageMapper {

    /**
     * 新增梯控授权管理
     */
    void saveEmpowerManage(List<EmpowerManageVo> list);

    /**
     * 查询梯控授权管理
     */
    EmpowerManageVo queryEmpowerManage(@Param("empowerManageVo") EmpowerManageVo empowerManageVo, @Param("list") List<String> list);

    /**
     * 查询梯控授权管理列表
     */
    List<EmpowerManageVo> queryEmpowerManagePage(EmpowerManageVo empowerManageVo);

    /**
     * 查询梯控授权管理列表
     */
    void deleteEmpowerManage(EmpowerManageVo empowerManageVo);

    /**
     * 查询梯控授权记录列表
     */
    List<EmpowerRecordVo> queryEmpowerRecordPage(EmpowerManageVo empowerManageVo);

    /**
     * 查询人员信息
     */
    List<PeopleInfoVo> queryPeopleInfo(@Param("list") List<String> list, @Param("type") String type);

    /**
     * 保存授权记录数据
     */
    void saveEmpowerRecord(List<EmpowerManageVo> manageVoList);

    /**
     * 修改禁用或启用状态
     */
    void updateEmpowerRecord(@Param("list") List<String> collect, @Param("status") String status);

    /**
     * 查询梯控授权记录信息
     */
    List<EmpowerRecordVo> queryEmpowerRecord(List<String> list);

    /**
     * 授权管理状态
     */
    void updateEmpowerManage(@Param("list") List<String> collect, @Param("status") String status);

    /**
     * 查询设备id
     */
    EmpowerManageVo queryDeviceId(List<String> pointIdList);

    /**
     * 查询人员是否下发设备中
     */
    EmpowerManageVo queryEmpowerRecordInfo(SysPeople people);

    /**
     * 查询梯控规则
     */
    TLadderRule queryLadderRuleInfo(String ladderRuleId);

    /**
     * 查询楼层信息
     */
    List<StoreyInfoVo> queryStoreyInfo(List<String> list);

    /**
     *
     */
    void deleteEmpowerRecord(@Param("list") List<String> list, @Param("ladderRuleId") String ladderRuleId);

    /**
     * 删除授权记录
     */
    void deleteLadderState(List<String> list);

    /**
     * 通过卡号查询人员信息
     */
    PeopleInfoVo queryPeople(LadderRecordVo recordVo);

    /**
     * 保存梯口识别记录
     */
    void saveLadderRecord(LadderRecordVo recordVo);

    /**
     * 查询识别记录
     */
    List<LadderRecordVo> queryLadderRecord(LadderRecordVo recordVo);

    /**
     * 删除识别记录
     */
    void deleteLadderRecord(List<String> list);

    /**
     *
     * @param list
     * @return
     */
    List<SysPeople> queryCardNumber(List<String> list);

    /**
     * 查询设备信息
     * @param list
     * @return
     */
    List<SysEquipment> queryDeviceEmpower(List<String> list);

    List<SysEquipment> queryEmpower(List<String> list);

    List<EmpowerRecordVo> selectEmpowerRecordInfo(@Param("peopleIds") List<String> peopleIds, @Param("sequences") List<String> sequences);

    /**
     * 更新梯控设备异常信息
     * @param peopleInfoVos
     */
    void updateDeviceException(List<PeopleInfoVo> peopleInfoVos);

    /**
     * 查询梯控数量（今天，昨天）
     * @param recordVo
     * @return
     */
    List<LadderRecordVo> queryLadderRecordCount(LadderRecordVo recordVo);
}
