package com.srs.flowable.mapper;


import com.srs.common.doman.vo.TeacherVo;
import com.srs.flowable.domain.NotificationManage;
import com.srs.flowable.domain.StuLeaveApplication;

import java.util.List;

/**
 * 考勤mapper
 */
public interface LeaveMapper {


    /**
     * 根据学生学号，获取辅导员在sys_user表信息
     * @param stuId
     * @return
     */
    TeacherVo getCounselorInfo(Long stuId);

    /**
     * 获取二级学院书记信息
     * @param deptId
     * @return
     */
    //TeacherVo getSecondaryLeaderInfo(String deptId);
    List<TeacherVo> getSecondaryLeaderInfo(String deptId);

    /**
     * 查询学生请假申请
     *
     * @param leaveApplicationId 学生请假申请主键
     * @return 学生请假申请
     */
    StuLeaveApplication selectRtStuLeaveApplicationByLeaveApplicationId(String leaveApplicationId);

    /**
     * 修改学生请假申请
     *
     * @param rtStuLeaveApplication 学生请假申请
     * @return 结果
     */
    int updateRtStuLeaveApplication(StuLeaveApplication rtStuLeaveApplication);

    /**
     * 新增消息
     * @param notificationManage 消息
     * @return 结果
     * 邵政文
     */
    int insertCphMsg(NotificationManage notificationManage);

    /**
     * 查询指定发送人所对应的消息
     * @param notificationManage 消息
     * @return 结果
     * 邵政文
     */
    NotificationManage selectCphMsgListForFlowable(NotificationManage notificationManage);

    /**
     * 根据id删除指定通知
     *
     * @param id
     * @return 结果
     * 邵政文
     */
    int deleteCphMsgById(Long id);

    /**
     * 根据审批人工号查询部门id
     *
     * @param userId 审批人id
     * @return 结果
     * 邵政文
     */
    TeacherVo getUpdateDeptId(String userId);

    /**
     * 获取学工信息
     * @param deptId
     * @return
     * 邵政文
     */
    List<TeacherVo> getUpdateDeptIdInfo(Long deptId);

    /**
     * 获取审批用户信息
     * @param roleKey
     * @return
     * 邵政文
     */
    List<TeacherVo> getShenDataInfo(String roleKey);

    /**
     * 获取请假申请人信息
     * @param stuId
     * @return
     * 邵政文
     */
    TeacherVo getShenUserInfo(Long stuId);

}
