package com.securitycontrol.background.service;

import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.background.dto.ParamDto;
import com.securitycontrol.entity.background.vo.HumanManageVo;
import com.securitycontrol.entity.background.vo.UserAccessVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 人员管理-业务层
 *
 * @author 10488
 */
public interface HumanService {

    /**
     * 获取人员列表
     *
     * @param dto
     * @return List<HumanManageVo>
     * @description
     * @author cwchen
     * @date 2024/3/21 16:10
     */
    List<HumanManageVo> getHumanLists(ParamDto dto);

    /**
     * 新增/修改 用户
     *
     * @param file
     * @param params
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 17:02
     */
    AjaxResult addOrUpdatePersonnel(MultipartFile file, String params);


    /**
     * 人员详情
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 20:34
     */
    AjaxResult getPersonnelById(ParamDto dto);

    /**
     * 删除人员
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 20:35
     */
    AjaxResult delPersonnelById(ParamDto dto);

    /**
     * 人员图片预览
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/22 9:18
     */
    AjaxResult viewPersonnelFile(ParamDto dto);

    /**
     * 获取人员出入记录
     * @param dto
     * @return List<UserAccessVo>
     * @description
     * @author cwchen
     * @date 2024/3/22 9:33
     */
    List<UserAccessVo> getPersonnelAccessLists(ParamDto dto);

    /**
     * 人员绑定安全膜
     * @param dto
     * @return
     */
    AjaxResult bindDev(ParamDto dto);

    /**
     * 接触绑定
     * @param dto
     * @return
     */
    AjaxResult delBind(ParamDto dto);

    /**
     * 人员绑定安全帽记录
     * @param dto
     * @return
     */
    AjaxResult getBindDetail(ParamDto dto);
}
