package com.srs.routine.mapper;

import java.util.List;

import com.srs.routine.domain.RtStuDisciplinaryApplication;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.srs.routine.domain.vo.ClassStuDisciplinaryDataStatistics;
import com.srs.routine.domain.vo.StuDisciplinaryPenaltyNumber;

/**
 * 学生处分申请Mapper接口
 *
 * @author LSD
 * @date 2024-04-17
 */
public interface RtStuDisciplinaryApplicationMapper extends BaseMapper<RtStuDisciplinaryApplication> {
    /**
     * 查询学生处分申请
     *
     * @param applicationId 学生处分申请主键
     * @return 学生处分申请
     */
    public RtStuDisciplinaryApplication selectRtStuDisciplinaryApplicationByApplicationId(Long applicationId);

    /**
     * 查询学生处分申请列表
     *
     * @param rtStuDisciplinaryApplication 学生处分申请
     * @return 学生处分申请集合
     */
    List<RtStuDisciplinaryApplication> selectRtStuDisciplinaryApplicationList(RtStuDisciplinaryApplication rtStuDisciplinaryApplication);

    /**
     * 新增学生处分申请
     *
     * @param rtStuDisciplinaryApplication 学生处分申请
     * @return 结果
     */
    int insertRtStuDisciplinaryApplication(RtStuDisciplinaryApplication rtStuDisciplinaryApplication);

    /**
     * 修改学生处分申请
     *
     * @param rtStuDisciplinaryApplication 学生处分申请
     * @return 结果
     */
    int updateRtStuDisciplinaryApplication(RtStuDisciplinaryApplication rtStuDisciplinaryApplication);

    /**
     * 删除学生处分申请
     *
     * @param applicationId 学生处分申请主键
     * @return 结果
     */
    int deleteRtStuDisciplinaryApplicationByApplicationId(Long applicationId);

    /**
     * 批量删除学生处分申请
     *
     * @param applicationIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteRtStuDisciplinaryApplicationByApplicationIds(Long[] applicationIds);

    /**
     * 根据流程实例id查询学生处分申请
     *
     * @param procInsId 流程实例id
     * @return 学生处分申请
     */
    RtStuDisciplinaryApplication selectDisciplinaryApplicationByProcInsId(String procInsId);

    /**
     * 根据辅导员工号，查询所带班级处分人数情况
     *
     * @param
     * @return 学生处分申请集合
     */
    List<ClassStuDisciplinaryDataStatistics> selectClassDisciplinaryNumber(String username);

    RtStuDisciplinaryApplication selectRtStuDisciplinaryApplicationByStuNo(String stuNo);

    /**
     * 根据处分文号，查询处分相关信息
     * @param penaltyNumber
     * @return
     */
    StuDisciplinaryPenaltyNumber selectStuDisciplinaryApplicationByPenaltyNumber(Long penaltyNumber);

    /**
     * 学务查询数据
     * @param rtStuDisciplinaryApplication
     * @return
     */
    List<RtStuDisciplinaryApplication> selectRtStuDisciplinaryApplicationListXW(RtStuDisciplinaryApplication rtStuDisciplinaryApplication);
    String getviolationDate(String stuNo);
}
