package com.bonus.bracelet.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.entity.app.vo.DevWarnVo;
import com.bonus.common.entity.app.vo.JdConfigVo;
import com.bonus.common.entity.bracelet.BraceletParamsDto;
import com.bonus.common.entity.bracelet.vo.CheckConfigVo;
import com.bonus.common.entity.bracelet.vo.WarnInfoVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @className:IConsControlService
 * @author:cwchen
 * @date:2024-08-08-9:56
 * @version:1.0
 * @description:施工管控
 */
public interface IConsControlService {
    /**
     * 获取球机设备列表
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/8 10:09
     */
    AjaxResult getBallDeviceLists(BraceletParamsDto dto);

    /**
     * 球机违章识别
     * @param dto
     * @return List<WarnInfoVo>
     * @author cwchen
     * @date 2024/8/8 17:58
     */
    AjaxResult getBallWarnLists(BraceletParamsDto dto);

    /**
     * 预警信息
     * @param dto
     * @return List<WarnInfoVo>
     * @author cwchen
     * @date 2024/8/9 9:44
     */
    PageInfo<WarnInfoVo> getWarnLists(BraceletParamsDto dto);

    /**
     * 人员管控-人员树
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/9 10:36
     */
    AjaxResult getPersonsTree(BraceletParamsDto dto);

    /**
     * 今日施工班组/施工人数/安全帽信息
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/9 13:14
     */
    AjaxResult getWorkInfo(BraceletParamsDto dto);

    /**
     * 获取整个班组人员/班组临时人员的定位/杆塔的定位以及施工范围的半径
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/9 14:40
     */
    AjaxResult getPersonsInfo(BraceletParamsDto dto);

    /**
     * 根据杆塔获取班组人员-已绑定手环
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/10 13:09
     */
    AjaxResult getTeamPersonByTower(BraceletParamsDto dto);

    /**
     * 手环验证人脸抽检
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/10 14:27
     */
    AjaxResult spotCheck(BraceletParamsDto dto);

    /**
     * 自动验证配置
     * @param vo
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/10 14:58
     */
    AjaxResult checkConfig(CheckConfigVo vo);

    /**
     * 获取自动验证配置
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/10 15:38
     */
    AjaxResult getCheckConfig(BraceletParamsDto dto);

    /**
     * 人员详情
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/15 16:50
     */
    AjaxResult getPersonDetail(BraceletParamsDto dto);

    /**
     * 人员历史轨迹
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/16 9:48
     */
    AjaxResult getHistoryGj(BraceletParamsDto dto);

    /**
     * 吊装预警设备列表
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/16 15:31
     */
    AjaxResult getDzWarnList(BraceletParamsDto dto);

    /**
     * 近电感应设备预警信息
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/16 17:57
     */
    PageInfo<DevWarnVo> getJdWarnList(BraceletParamsDto dto);

    /**
     * 查询近电感应设备
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/18 13:34
     */
    AjaxResult getJdList(BraceletParamsDto dto);

    /**
     * 添加近电感应设备配置
     * @param vo
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/18 17:31
     */
    AjaxResult configJdDevice(JdConfigVo vo);

    /**
     * 添加近电感应设备配置
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/18 18:02
     */
    AjaxResult getConfigJdDevice(BraceletParamsDto dto);

    /**
     * 根据文件ID获取照片
     * @param dto
     * @return AjaxResult
     * @author cwchen
     * @date 2024/8/22 10:01
     */
    AjaxResult getPhotosById(BraceletParamsDto dto);
}
