package jnpf.personnels.service;

import jnpf.model.personnels.vo.mcp.OnboardingThisMonthStatsVO;
import jnpf.model.personnels.vo.mcp.StaffBirthdayVO;
import jnpf.model.personnels.vo.mcp.StaffNotSignContractVO;
import jnpf.model.personnels.po.FtbPersonnelsStaffEmploymentApply;

import java.util.List;


public interface FtbPersonStaffMCPService {

    /**
     * 查询已提交登记表但未办理入职的人员
     * @return 已提交登记表但未办理入职的人员列表
     */
    List<FtbPersonnelsStaffEmploymentApply> getSubmittedButNotOnboarded();

    /**
     * 入职统计：入职管理表在指定时间段内新增人数 + 指定时间段内已完成入职流程人数（花名册口径）
     * @param startTime 开始时间（格式：yyyy-MM-dd），为空时默认本月第一天
     * @param endTime 结束时间（格式：yyyy-MM-dd），为空时默认本月最后一天
     */
    OnboardingThisMonthStatsVO getOnboardingThisMonthStats(String startTime, String endTime);

    /**
     * 查询未提交登记表的员工列表
     * @return 未提交登记表的员工列表
     */
    List<FtbPersonnelsStaffEmploymentApply> getListOfNotSubmittedForm();

    /**
     * 查询本月生日的员工列表
     * @return 本月生日员工列表（包含姓名、组织、岗位）
     */
    List<StaffBirthdayVO> getStaffBirthdayList();

    /**
     * 根据手机号查询是否在黑名单中
     * @param phone 手机号
     * @return true为在黑名单中，false为不在黑名单中
     */
    Boolean isInBlacklist(String phone);

    /**
     * 查询入职半月还未签署合同的员工列表
     * @return 未签署合同的已入职员工列表
     */
    List<StaffNotSignContractVO> getListNotSignedContractHalfMonth();
}
