123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597 |
- using DocumentFormat.OpenXml.Spreadsheet;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TEAMModelOS.SDK.Models.Cosmos.School
- {
- /// <summary>
- /// 成績計算總覽
- /// </summary>
- public class ScoreCalcBase : CosmosEntity
- {
- public ScoreCalcBase()
- {
- pk = "ScoreCalc";
- members = new List<ScoreCalcMember>();
- //scores = new List<double>();
- //scoresOrg = new List<double>();
- editScores = new List<double>();
- }
- /// <summary>
- /// 名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 課程ID
- /// </summary>
- public string courseId { get; set; }
- /// <summary>
- /// 班級ID(行政班)
- /// </summary>
- public string classId { get; set; }
- /// <summary>
- /// 班級ID(選課班、個人課程ID)
- /// </summary>
- public string grouplistId { get; set; }
- /// <summary>
- /// 成員名單
- /// </summary>
- public List<ScoreCalcMember> members { get; set; }
- /// <summary>
- /// 各成員成績總覽
- /// </summary>
- //public List<double> scores { get; set; }
- /// <summary>
- /// 各成員成績總覽最初系統計算結果
- /// </summary>
- //public List<double> scoresOrg { get; set; }
- /// <summary>
- /// 各學生最後成績的加減分
- /// </summary>
- public List<double> editScores { get; set; }
- /// <summary>
- /// 總覽分項權重類型 count:加權 | percentage:百分比
- /// </summary>
- public string rateType { get; set; }
- }
- /// <summary>
- /// 成績計算總覽分項-活動基底Class
- /// </summary>
- public class ScoreCalcActivityBase : CosmosEntity
- {
- public ScoreCalcActivityBase()
- {
- pk = "ScoreCalcAct";
- itemRates = new List<double>();
- //itemScores = new List<double>();
- //itemScoresOrg = new List<double>();
- //stuScores = new List<double>();
- }
- /// <summary>
- /// 成績計算ID
- /// </summary>
- public string scorecalcId { get; set; }
- /// <summary>
- /// 活動名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
- /// </summary>
- public string type { get; set; }
- /// <summary>
- /// 總加權數
- /// </summary>
- public double rate { get; set; }
- /// <summary>
- /// 個學生最後成績的加減分
- /// </summary>
- public List<double> editScores { get; set; }
- /// <summary>
- /// 各活動權重
- /// </summary>
- public List<double> itemRates { get; set; }
- /// <summary>
- /// 各活動權重類型 count:加權 | percentage:百分比
- /// </summary>
- //public string itemRateType { get; set; }
- /// <summary>
- /// 各活動分數最終結果 - 一門課全部學生的平均 - 編輯後
- /// </summary>
- //public List<double> itemScores { get; set; }
- /// <summary>
- /// 各活動分數最初系統計算結果 - 一門課全部學生的平均 - 原始
- /// </summary>
- //public List<double> itemScoresOrg { get; set; }
- /// <summary>
- /// 最終成績 - 一個項目總平均 - 編輯後
- /// </summary>
- //public double score { get; set; }
- /// <summary>
- /// 最終成績系統計算結果 - 一個項目總平均 - 原始
- /// </summary>
- //public double scoreOrg { get; set; }
- /// <summary>
- /// 各學生所有活動結算成績 - 此項目所有學生的計算後分數
- /// </summary>
- //public List<double> stuScores { get; set; }
-
- }
- /// <summary>
- /// 成績計算總覽分項-評量、作業
- /// </summary>
- public class ScoreCalcActivity : ScoreCalcActivityBase
- {
- public ScoreCalcActivity()
- {
- items = new List<ScoreCalcActivityItems>();
- stuActScores = new List<List<double>>();
- stuActScoresOrg = new List<List<double>>();
- }
- /// <summary>
- /// 被選取的活動列表
- /// </summary>
- public List<ScoreCalcActivityItems> items { get; set; }
- /// <summary>
- /// 各活動所屬學生成績
- /// </summary>
- public List<List<double>> stuActScores { get; set; }
- /// <summary>
- /// 各活動所屬學生成績最初系統計算結果
- /// </summary>
- public List<List<double>> stuActScoresOrg { get; set; }
- }
- /// <summary>
- /// 成績計算總覽分項-課堂紀錄
- /// </summary>
- public class ScoreCalcLsRecord : ScoreCalcActivityBase
- {
- public ScoreCalcLsRecord()
- {
- items = new List<ScoreCalcActivityItems>();
- stuActAttendOrgVals = new List<List<double>>();
- stuActAttendScores = new List<List<double>>();
- //stuAttendScores = new List<double>();
- stuActPointOrgVals = new List<List<double>>();
- stuActPointScores = new List<List<double>>();
- //stuPointScores = new List<double>();
- stuActItactOrgVals = new List<List<double>>();
- stuActItactScores = new List<List<double>>();
- //stuItactScores = new List<double>();
- }
- /// <summary>
- /// 出席加權數
- /// </summary>
- public double attendRate { get; set; }
- /// <summary>
- /// 記分板加權數
- /// </summary>
- public double pointRate { get; set; }
- /// <summary>
- /// 互動加權數
- /// </summary>
- public double itactRate { get; set; }
- /// <summary>
- /// 總加權數
- /// </summary>
- /// <summary>
- /// 被選取的課堂紀錄列表
- /// </summary>
- public List<ScoreCalcActivityItems> items { get; set; }
- #region ==========出席==========
- /// <summary>
- /// 課堂紀錄出席 採用的公式ID (依照items順序 第一個課堂紀錄公式 第二個...)
- /// </summary>
- public string stuAttendFunctionId { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄出席 系統原值
- /// </summary>
- public List<List<double>> stuActAttendOrgVals { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄出席 分數
- /// </summary>
- public List<List<double>> stuActAttendScores { get; set; }
- /// <summary>
- /// 各學生所有課堂紀錄出席 分數
- /// </summary>
- //public List<double> stuAttendScores { get; set; }
- #endregion
- #region ==========記分板==========
- /// <summary>
- /// 課堂紀錄記分板 採用的公式ID
- /// </summary>
- public string stuPointFunctionId { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄記分板 系統原值
- /// </summary>
- public List<List<double>> stuActPointOrgVals { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄記分板 分數
- /// </summary>
- public List<List<double>> stuActPointScores { get; set; }
- /// <summary>
- /// 各學生所有課堂紀錄記分板 分數
- /// </summary>
- //public List<double> stuPointScores { get; set; }
- #endregion
- #region ==========互動==========
- /// <summary>
- /// 課堂紀錄互動 採用的公式ID
- /// </summary>
- public string stuItactFunctionId { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄互動 系統原值
- /// </summary>
- public List<List<double>> stuActItactOrgVals { get; set; }
- /// <summary>
- /// 各學生各課堂紀錄互動 分數
- /// </summary>
- public List<List<double>> stuActItactScores { get; set; }
- /// <summary>
- /// 各學生所有課堂紀錄互動 分數
- /// </summary>
- //public List<double> stuItactScores { get; set; }
- #endregion
- }
- public class ScoreCalcMember
- {
- /// <summary>
- /// ID(學生ID、TMID)
- /// </summary>
- public string id { get; set; }
- public string name { get; set; }
- /// <summary>
- /// 座號
- /// </summary>
- public string no { get; set; }
- }
- /// <summary>
- /// 測驗、作業
- /// </summary>
- public class ScoreCalcActivityItems
- {
- /// <summary>
- /// 活動ID (測驗:examId 作業:homeworkId)
- /// </summary>
- public string id { get; set; }
- /// <summary>
- /// 活動分區鍵
- /// </summary>
- public string code { get; set; }
- /// <summary>
- /// 發布對象 學校(school)/個人(private)
- /// </summary>
- //public string scope { get; set; }
- /// <summary>
- /// (評量專有)擁有者 學校(school)/個人(teacher)
- /// </summary>
- //public string owner { get; set; }
- /// <summary>
- /// 活動名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 活動進度 pending 待发布 | going 已发布 | finish 已结束
- /// </summary>
- //public string progress { get; set; }
- /// <summary>
- /// 活動評分狀態(評量專用) 0未评分,1已评分
- /// </summary>
- //public int sStatus { get; set; } = 0;
- /// <summary>
- /// 評測類型(評量專用) 0:線上評量 | 1:課中評量 | 2.卷卡合一
- /// </summary>
- //public string source { get; set; }
- /// <summary>
- /// 創建時間 (milliseconds 13位數)
- /// </summary>
- public long createTime { get; set; }
- /// <summary>
- /// 是否使用(是否被勾選) true:使用
- /// </summary>
- public bool use { get; set; }
- }
- /// <summary>
- /// 老師成績計算公式 code:"ScoreCalcFunc-{TMID}"
- /// </summary>
- public class ScoreCalcFunc : CosmosEntity
- {
- public ScoreCalcFunc()
- {
- pk = "ScoreCalcActFormula";
- keyvals = new List<ScoreCalcFuncTemplateKeyval>();
- }
- public string name { get; set; }
- public string scorecalcActId { get; set; }
- /// <summary>
- /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
- /// </summary>
- public string type { get; set; }
- /// <summary>
- /// 種類 attend:出席 | point:得分版 | interaction:互動
- /// </summary>
- public string method { get; set; }
- /// <summary>
- /// 模板 simpleAttend: 簡單出席計算法 | attendRate:出席率計算法 | custom:自訂
- /// </summary>
- public string template { get; set; }
- /// <summary>
- /// 公式鍵值定義
- /// </summary>
- public List<ScoreCalcFuncTemplateKeyval> keyvals { get; set; }
- /// <summary>
- /// 公式內容
- /// </summary>
- public string content { get; set; }
- }
- public class ScoreCalcFuncTemplateKeyval
- {
- public string key { get; set; }
- public string val { get; set; }
- //public string type { get; set; }
- //public string describe { get; set; }
- }
- /// <summary>
- /// 評量活動取系統資料
- /// </summary>
- public class ExamItem
- {
- /// <summary>
- /// 評量id
- /// </summary>
- public string examId { get; set; }
- /// <summary>
- /// 評量名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 評量學生Id列表
- /// </summary>
- public List<string> studentIds { get; set; }
- /// <summary>
- /// 評量分數列表
- /// </summary>
- public List<double> sum { get; set; }
- }
- /// <summary>
- /// 取作業活動Id
- /// </summary>
- public class HomeworkItem
- {
- /// <summary>
- /// 作業id
- /// </summary>
- public string id { get; set; }
- /// <summary>
- /// 作業名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 作業代碼 包含學生座號
- /// </summary>
- public string code { get; set; }
- /// <summary>
- /// 分數
- /// </summary>
- public double score { get; set; }
- /// <summary>
- /// pk
- /// </summary>
- public string pk { get; set; }
- /// <summary>
- /// school id
- /// </summary>
- public string school { get; set; }
- }
-
- #region API回傳資料用
- #region (二)查詢成績統計首頁表資料用
- /// <summary>
- /// 查詢總表-活動資料的Base
- /// </summary>
- public class ScoreCalcActDtoBase
- {
- public ScoreCalcActDtoBase()
- {
- editScores = new List<double>();
- }
- /// <summary>
- /// 活動id
- /// </summary>
- public string id { get; set; }
- /// <summary>
- /// 活動名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
- /// </summary>
- public string type { get; set; }
- /// <summary>
- /// 活動加權數
- /// </summary>
- public double rate { get; set; }
- /// <summary>
- /// 個學生最後成績的加減分
- /// </summary>
- public List<double> editScores { get; set; }
- }
- /// <summary>
- /// 查詢總表-活動資料的詳細列表資料
- /// </summary>
- public class ScoreCalcActivityActDto : ScoreCalcActDtoBase
- {
- public ScoreCalcActivityActDto()
- {
- items = new List<SubActActivity>();
- }
- /// <summary>
- /// 活動子項目資料列表
- /// </summary>
- public List<SubActActivity> items { get; set; }
- }
- /// <summary>
- /// 查詢總表-活動資料課堂紀錄的詳細列表資料
- /// </summary>
- public class ScoreCalcLsRecordActDto : ScoreCalcActDtoBase
- {
- public ScoreCalcLsRecordActDto()
- {
- items = new List<SubActLsRecord>();
- attendStates = new List<AttendStatesCalc>();
- }
- /// <summary>
- /// 出席占比重
- /// </summary>
- public double attendRate { get; set; }
- /// <summary>
- /// 記分板占比重
- /// </summary>
- public double pointRate { get; set; }
- /// <summary>
- /// 互動占比重
- /// </summary>
- public double itactRate { get; set; }
- /// <summary>
- /// 出席公式
- /// </summary>
- public string stuAttendFunctionId { get; set; }
- /// <summary>
- /// 記分公式
- /// </summary>
- public string stuPointFunctionId { get; set; }
- /// <summary>
- /// 互動公式
- /// </summary>
- public string stuItactFunctionId { get; set; }
- /// <summary>
- /// 出席狀態統計資料
- /// </summary>
- public List<AttendStatesCalc> attendStates { get; set; }
- /// <summary>
- /// 子項目資料列表
- /// </summary>
- public List<SubActLsRecord> items { get; set; }
- }
- /// <summary>
- /// 統計出席狀態
- /// Uncall,0(未點名)
- /// Attended,1(出席)
- /// Absent,2(缺席)
- /// DayOff,3(請假)
- /// Absent_Sick,4(病假)
- /// Absent_Personal,5(事假)
- /// Absent_Official,6(公假)
- /// </summary>
- public class AttendStatesCalc
- {
- /// <summary>
- /// 病假次數
- /// </summary>
- public int Absent_Sick { get; set; }
- /// <summary>
- /// 缺席次數
- /// </summary>
- public int Absent { get; set; }
- /// <summary>
- /// 事假次數
- /// </summary>
- public int Absent_Personal { get; set; }
- /// <summary>
- /// 公假次數
- /// </summary>
- public int Absent_Official { get; set; }
- }
- /// <summary>
- /// 子項目欄位的Base
- /// </summary>
- public class SubActBase
- {
- /// <summary>
- /// 子項目id
- /// </summary>
- public string id { get; set; }
- /// <summary>
- /// 子項目名稱
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 子項目加權數
- /// </summary>
- public double rate { get; set; }
- /// <summary>
- /// 是否為勾選的項目
- /// </summary>
- public bool use { get; set; }
-
- }
- /// <summary>
- /// 活動子項目欄位
- /// </summary>
- public class SubActActivity: SubActBase
- {
- public SubActActivity()
- {
- scores = new List<double>();
- }
- public List<double> scores { get; set; }
- }
- /// <summary>
- /// 課堂紀錄子項目欄位
- /// </summary>
- public class SubActLsRecord: SubActBase
- {
- public SubActLsRecord()
- {
- stuActAttendScores = new List<double>();
- stuActPointScores = new List<double>();
- stuActItactScores = new List<double>();
- }
- /// <summary>
- /// 出席分數
- /// </summary>
- public List<double> stuActAttendScores { get; set; }
- /// <summary>
- /// 記分板分數
- /// </summary>
- public List<double> stuActPointScores { get; set; }
- /// <summary>
- /// 互動分數
- /// </summary>
- public List<double> stuActItactScores { get; set; }
- }
- /// <summary>
- /// 成績統計列表用資料
- /// </summary>
- public class Calc
- {
- /// <summary>
- /// 成績統計id
- /// </summary>
- public string id { get; set; }
- /// <summary>
- /// 成績統計名稱
- /// </summary>
- public string name { get; set; }
- }
- #endregion
- #endregion
- }
|