package com.yeejoin.amos.boot.module.jcs.api.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.SinStaticDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.Sign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 打卡记录 Mapper 接口
 *
 * @author system_generator
 * @date 2022-08-15
 */
public interface SignMapper extends BaseMapper<Sign> {


    IPage<SignDto> queryForPage(IPage<?> page,SignDto dto);

    IPage<SinStaticDto> queryStaticForPage(IPage<?> page, SinStaticDto dto);

    List<Map<String, Object>> queryPeopleInfo(@Param("dto") SinStaticDto dto);

    List<Map<String, Object>> querySignInfo();


    int queryPersonNum(String bizOgrCode);

    List<Map<String, Object>> selectCenterSignStats(
            @Param("bizOrgCode") String bizOrgCode,
            @Param("date") String date,
            @Param("targetPassNum") Integer targetPassNum,
            @Param("stationType") String stationType
    );

    List<Map<String, Object>> selectStationSignStats(@Param("bizOrgCode") String bizOrgCode);

    IPage<Map<String, Object>> selectStationAttendanceStatsPage(
            @Param("page") IPage<?> page,
            @Param("date") String date,
            @Param("stationType") String stationType,
            @Param("bizOrgCode") String bizOrgCode,
            @Param("attendanceStatus") String attendanceStatus,
            @Param("targetPassNum") Integer targetPassNum,
            @Param("sortField") String sortField,
            @Param("sortOrder") String sortOrder
    );

    List<Map<String, String>> getStationTypeList();
}
