ZhiYeJianKang_PeiXun/Song.ServiceInterfaces/IExamination.cs
2025-02-20 15:41:53 +08:00

309 lines
11 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Text;
using Song.Entities;
using System.Data;
namespace Song.ServiceInterfaces
{
/// <summary>
/// 考试管理
/// </summary>
public interface IExamination : WeiSha.Common.IBusinessInterface
{
#region
/// 添加
/// </summary>
/// <param name="entity">业务实体</param>
int ExamAdd(Examination entity);
/// <summary>
/// 整体添加
/// </summary>
/// <param name="theme">考试主题</param>
/// <param name="items">考试的场次</param>
/// <param name="groups">参考人员的范围</param>
void ExamAdd(Examination theme, List<Examination> items, List<ExamGroup> groups);
/// <summary>
/// 修改
/// </summary>
/// <param name="entity">业务实体</param>
void ExamSave(Examination entity);
/// <summary>
/// 整体修改
/// </summary>
/// <param name="theme">考试主题</param>
/// <param name="items">考试的场次</param>
/// <param name="groups">参考人员的范围</param>
void ExamSave(Examination theme, List<Examination> items, List<ExamGroup> groups);
/// <summary>
/// 删除按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
void ExamDelete(int identify);
/// <summary>
/// 获取单一实体对象按主键ID此处获取的是考试主题或场次
/// </summary>
/// <param name="identify">实体的主键</param>
/// <returns></returns>
Examination ExamSingle(int identify);
/// <summary>
/// 获取单一实体对象,通过全局唯一值,此处获取的是考试主题
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
Examination ExamSingle(string uid);
/// <summary>
/// 获取单一实体对象,取最近一次考试;此处获取的是考试主题或场次
/// </summary>
/// <returns></returns>
Examination ExamLast();
/// <summary>
/// 获取当前考试的考试项目
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
Examination[] ExamItem(string uid);
Examination[] ExamItem(int id);
/// <summary>
/// 当前考试主题关联的学生分类
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
StudentSort[] GroupForStudentSort(string uid);
/// <summary>
/// 获取考试,不分页
/// </summary>
/// <param name="isUse"></param>
/// <param name="count"></param>
/// <returns></returns>
List<Examination> ExamCount(int orgid, bool? isUse, int count);
/// <summary>
/// 获取当前学生要参加的考试
/// </summary>
/// <param name="start">时间范围查询的开始时间</param>
/// <param name="end">时间范围查询的结束时间</param>
/// <returns></returns>
List<Examination> GetSelfExam(int stid, DateTime? start, DateTime? end);
List<Examination> GetCountExam(int stid, DateTime? start, DateTime? end, bool? isUse, int count);
/// <summary>
/// 判断某个考试是否允许某个学生参加
/// </summary>
/// <param name="examid">考试id</param>
/// <param name="stid">学生id</param>
/// <returns></returns>
bool ExamIsForStudent(int examid, int stid);
/// <summary>
/// 获取指定时间内容的考试
/// </summary>
/// <param name="start">时间区间检索的开始时间</param>
/// <param name="end">时间区间检索的末尾时间</param>
/// <param name="isUse"></param>
/// <param name="searName"></param>
/// <param name="size"></param>
/// <param name="index"></param>
/// <param name="countSum"></param>
/// <returns></returns>
Examination[] GetPager(int orgid, DateTime? start, DateTime? end, bool? isUse, string searName, int size, int index, out int countSum);
/// <summary>
/// 获取当前学生参加的的考试
/// </summary>
/// <param name="stid"></param>
/// <param name="sbjid">学科id</param>
/// <param name="orgid"></param>
/// <param name="sear"></param>
/// <param name="size"></param>
/// <param name="index"></param>
/// <param name="countSum"></param>
/// <returns></returns>
ExamResults[] GetAttendPager(int stid, int sbjid, int orgid, string sear, int size, int index, out int countSum);
#endregion
#region
/// <summary>
/// 添加考试答题信息
/// </summary>
/// <param name="result"></param>
ExamResults ResultAdd(ExamResults result);
/// <summary>
/// 保存考试答题信息
/// </summary>
/// <param name="result"></param>
void ResultSave(ExamResults result);
/// <summary>
/// 成绩提交
/// </summary>
/// <param name="result"></param>
void ResultSubmit(ExamResults result);
/// <summary>
/// 计算成绩并保存
/// </summary>
/// <param name="result"></param>
/// <returns></returns>
Song.Entities.ExamResults ClacScore(ExamResults result);
/// <summary>
/// 删除考试成绩
/// </summary>
/// <param name="id">成绩记录的id</param>
void ResultDelete(int id);
/// <summary>
/// 删除某个学生的某个考试的成绩
/// </summary>
/// <param name="stid">学员账号id</param>
/// <param name="examid">考试id</param>
void ResultDelete(int stid, int examid);
/// <summary>
/// 获取最新的答题信息(临时信息)
/// </summary>
/// <param name="examid">考试id</param>
/// <param name="tpid">试卷id</param>
/// <param name="stid">考生id</param>
/// <returns></returns>
ExamResultsTemp ExamResultsTempSingle(int examid, int tpid, int stid);
/// <summary>
/// 获取最新的答题信息(正式答题信息)
/// </summary>
/// <param name="examid">考试id</param>
/// <param name="tpid">试卷id</param>
/// <param name="acid">考生id</param>
/// <returns></returns>
ExamResults ResultSingle(int examid, int tpid, int acid);
/// <summary>
/// 从缓存中获取考试答题信息
/// </summary>
/// <param name="examid"></param>
/// <param name="tpid"></param>
/// <param name="acid"></param>
/// <returns></returns>
ExamResults ResultSingleForCache(int examid, int tpid, int acid);
/// <summary>
/// 获取当前考试的所有考生答题信息
/// </summary>
/// <param name="examid"></param>
/// <param name="count"></param>
/// <returns></returns>
ExamResults[] ResultCount(int examid, int count);
/// <summary>
/// 当前考试信息中,下一个
/// </summary>
/// <param name="examid"></param>
/// <param name="stid"></param>
/// <param name="isCorrect">是否是人工判卷过的false下一个未判卷的信息</param>
/// <returns></returns>
ExamResults ResultSingleNext(int examid, int stid, bool? isCorrect);
/// <summary>
/// 通过答案id获取答题信息正式答题信息
/// </summary>
/// <param name="exrid"></param>
/// <returns></returns>
ExamResults ResultSingle(int exrid);
/// <summary>
/// 通过学员ID与考试ID获取成绩最好成绩
/// </summary>
/// <param name="accid"></param>
/// <param name="examid"></param>
/// <returns></returns>
ExamResults ResultSingle(int accid, int examid);
/// <summary>
/// 计算当前考试结果的成绩
/// </summary>
/// <param name="resu"></param>
/// <returns></returns>
ExamResults ResultClacScore(ExamResults resu);
/// <summary>
/// 根据答题信息,获取试题(针对答题过程中死机,又上线时)
/// </summary>
/// <param name="results"></param>
/// <returns></returns>
List<Questions> QuesForResults(string results);
#endregion
#region
/// <summary>
/// 考试主题下的所有参考人员成绩
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
DataTable Result4Theme(int id);
/// <summary>
/// 考试主题下的所有参考人员的班组
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
StudentSort[] StudentSort4Theme(int id);
/// <summary>
/// 考试主题下的所有参考人员成绩
/// </summary>
/// <param name="id">当前考试主题的ID</param>
/// <param name="stsid">学生分组的id为0时取所有为-1时取不在组的学员大于0则取当前组学员</param>
/// <returns></returns>
DataTable Result4Theme(int examid, int stsid);
/// <summary>
/// 考试主题下的所有参考人员成绩
/// </summary>
/// <param name="id">当前考试主题的ID</param>
/// <param name="stsid">学生分组的id为0时取所有为-1时取不在组的学员大于0则取当前组学员</param>
/// <returns></returns>
DataTable Result4Theme(int examid, string stsid);
/// <summary>
/// 考试主题下的所有参考人员成绩
/// </summary>
/// <param name="id"></param>
/// <param name="stsid">学生分组的id为0时取所有为-1时取不在组的学员大于0则取当前组学员</param>
/// <param name="isAll">是否取所有人员(含缺考人员),false为仅参考人员</param>
/// <returns></returns>
DataTable Result4Theme(int id, int stsid, bool isAll);
/// <summary>
/// 当前考试主题下的各学员分组成绩排行
/// </summary>
/// <param name="examid"></param>
/// <returns></returns>
DataTable Result4StudentSort(int examid);
/// <summary>
/// 计算某个考试主题的及格率
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
double PassRate4Theme(string uid);
/// <summary>
/// 计算某场考试的及极率
/// </summary>
/// <param name="exam"></param>
/// <returns></returns>
double PassRate4Exam(Examination exam);
/// <summary>
/// 计算某个考试主题的平均分
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
double Avg4Theme(string uid);
/// <summary>
/// 计算某场考试的平均分
/// </summary>
/// <param name="examid"></param>
/// <returns></returns>
double Avg4Exam(int examid);
/// <summary>
/// 当前考试的参考人数
/// </summary>
/// <param name="examid"></param>
/// <returns></returns>
int Number4Exam(int examid);
/// <summary>
/// 当前考试场次下的所有人员成绩
/// </summary>
/// <param name="examid"></param>
/// <returns></returns>
ExamResults[] Results(int examid, int size, int index, out int countSum);
ExamResults[] Results(string examuid, int size, int index, out int countSum);
/// <summary>
/// 当前考试场次下的所有人员成绩
/// </summary>
/// <param name="examid">考试场次id</param>
/// <param name="count">取多少条</param>
/// <returns></returns>
ExamResults[] Results(int examid, int count);
#endregion
}
}