package com.securitycontrol.screen.service;

import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.screen.dto.PersonnelControlDto;
import com.securitycontrol.entity.screen.vo.PersonnelControlVo;

import java.util.List;

/**
 * @author Lenovo
 */
public interface PersonnelControlService {


    /**
     * 人员管控-穿戴装备
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> getWearEquipmentList(PersonnelControlDto dto);


    /**
     * 人员管控-人员列表
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> getPersonnelList(PersonnelControlDto dto);

    /**
     * 人员管控-人员运动趋预警
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> getPersonnelMovementList(PersonnelControlDto dto);

    /**
     * 人员管控-围栏新增
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    int addNewFence(PersonnelControlDto dto);

    /**
     * 人员管控-围栏列表
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> getNewFenceList(PersonnelControlDto dto);

    /**
     * 人员管控-状态更新
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    AjaxResult subcontractorSwitchListen(PersonnelControlDto dto);

    /**
     * 人员管控-删除围栏
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    AjaxResult delSubcontractorById(PersonnelControlDto dto);

    /**
     * 人员管控-复现围栏
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> getReplicaFence(PersonnelControlDto dto);

    /**
     * 人员管控-人员坐标点
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> personnelCoordinatePoint(PersonnelControlDto dto);

    /**
     * 人员管控-人员历史坐标点
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author jjLV
     * @date 2024/3/27 17:23
     */
    List<PersonnelControlVo> PersonnelHistoricalCoordinates(PersonnelControlDto dto);
}
