ScoreCalc.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. using DocumentFormat.OpenXml.Spreadsheet;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace TEAMModelOS.SDK.Models.Cosmos.School
  8. {
  9. /// <summary>
  10. /// 成績計算總覽
  11. /// </summary>
  12. public class ScoreCalcBase : CosmosEntity
  13. {
  14. public ScoreCalcBase()
  15. {
  16. pk = "ScoreCalc";
  17. members = new List<ScoreCalcMember>();
  18. //scores = new List<double>();
  19. //scoresOrg = new List<double>();
  20. editScores = new List<double>();
  21. }
  22. /// <summary>
  23. /// 名稱
  24. /// </summary>
  25. public string name { get; set; }
  26. /// <summary>
  27. /// 課程ID
  28. /// </summary>
  29. public string courseId { get; set; }
  30. /// <summary>
  31. /// 班級ID(行政班)
  32. /// </summary>
  33. public string classId { get; set; }
  34. /// <summary>
  35. /// 班級ID(選課班、個人課程ID)
  36. /// </summary>
  37. public string grouplistId { get; set; }
  38. /// <summary>
  39. /// 成員名單
  40. /// </summary>
  41. public List<ScoreCalcMember> members { get; set; }
  42. /// <summary>
  43. /// 各成員成績總覽
  44. /// </summary>
  45. //public List<double> scores { get; set; }
  46. /// <summary>
  47. /// 各成員成績總覽最初系統計算結果
  48. /// </summary>
  49. //public List<double> scoresOrg { get; set; }
  50. /// <summary>
  51. /// 各學生最後成績的加減分
  52. /// </summary>
  53. public List<double> editScores { get; set; }
  54. /// <summary>
  55. /// 總覽分項權重類型 count:加權 | percentage:百分比
  56. /// </summary>
  57. public string rateType { get; set; }
  58. /// <summary>
  59. /// 排序
  60. /// </summary>
  61. public int sort { get; set; }
  62. }
  63. /// <summary>
  64. /// 成績計算總覽分項-活動基底Class
  65. /// </summary>
  66. public class ScoreCalcActivityBase : CosmosEntity
  67. {
  68. public ScoreCalcActivityBase()
  69. {
  70. pk = "ScoreCalcAct";
  71. itemRates = new List<double>();
  72. //itemScores = new List<double>();
  73. //itemScoresOrg = new List<double>();
  74. //stuScores = new List<double>();
  75. }
  76. /// <summary>
  77. /// 成績計算ID
  78. /// </summary>
  79. public string scorecalcId { get; set; }
  80. /// <summary>
  81. /// 活動名稱
  82. /// </summary>
  83. public string name { get; set; }
  84. /// <summary>
  85. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  86. /// </summary>
  87. public string type { get; set; }
  88. /// <summary>
  89. /// 總加權數
  90. /// </summary>
  91. public double rate { get; set; }
  92. /// <summary>
  93. /// 個學生最後成績的加減分
  94. /// </summary>
  95. public List<double> editScores { get; set; }
  96. /// <summary>
  97. /// 各活動權重
  98. /// </summary>
  99. public List<double> itemRates { get; set; }
  100. /// <summary>
  101. /// 排序
  102. /// </summary>
  103. public int sort { get; set; }
  104. /// <summary>
  105. /// 各活動權重類型 count:加權 | percentage:百分比
  106. /// </summary>
  107. //public string itemRateType { get; set; }
  108. /// <summary>
  109. /// 各活動分數最終結果 - 一門課全部學生的平均 - 編輯後
  110. /// </summary>
  111. //public List<double> itemScores { get; set; }
  112. /// <summary>
  113. /// 各活動分數最初系統計算結果 - 一門課全部學生的平均 - 原始
  114. /// </summary>
  115. //public List<double> itemScoresOrg { get; set; }
  116. /// <summary>
  117. /// 最終成績 - 一個項目總平均 - 編輯後
  118. /// </summary>
  119. //public double score { get; set; }
  120. /// <summary>
  121. /// 最終成績系統計算結果 - 一個項目總平均 - 原始
  122. /// </summary>
  123. //public double scoreOrg { get; set; }
  124. /// <summary>
  125. /// 各學生所有活動結算成績 - 此項目所有學生的計算後分數
  126. /// </summary>
  127. //public List<double> stuScores { get; set; }
  128. }
  129. /// <summary>
  130. /// 成績計算總覽分項-評量、作業
  131. /// </summary>
  132. public class ScoreCalcActivity : ScoreCalcActivityBase
  133. {
  134. public ScoreCalcActivity()
  135. {
  136. items = new List<ScoreCalcActivityItems>();
  137. stuActScores = new List<List<double>>();
  138. stuActScoresOrg = new List<List<double>>();
  139. }
  140. /// <summary>
  141. /// 被選取的活動列表
  142. /// </summary>
  143. public List<ScoreCalcActivityItems> items { get; set; }
  144. /// <summary>
  145. /// 各活動所屬學生成績
  146. /// </summary>
  147. public List<List<double>> stuActScores { get; set; }
  148. /// <summary>
  149. /// 各活動所屬學生成績最初系統計算結果
  150. /// </summary>
  151. public List<List<double>> stuActScoresOrg { get; set; }
  152. }
  153. /// <summary>
  154. /// 成績計算總覽分項-課堂紀錄
  155. /// </summary>
  156. public class ScoreCalcLsRecord : ScoreCalcActivityBase
  157. {
  158. public ScoreCalcLsRecord()
  159. {
  160. items = new List<ScoreCalcActivityItems>();
  161. stuActAttendOrgVals = new List<List<double>>();
  162. stuActAttendScores = new List<List<double>>();
  163. //stuAttendScores = new List<double>();
  164. stuActPointOrgVals = new List<List<double>>();
  165. stuActPointScores = new List<List<double>>();
  166. //stuPointScores = new List<double>();
  167. stuActItactOrgVals = new List<List<double>>();
  168. stuActItactScores = new List<List<double>>();
  169. //stuItactScores = new List<double>();
  170. }
  171. /// <summary>
  172. /// 出席加權數
  173. /// </summary>
  174. public double attendRate { get; set; }
  175. /// <summary>
  176. /// 記分板加權數
  177. /// </summary>
  178. public double pointRate { get; set; }
  179. /// <summary>
  180. /// 互動加權數
  181. /// </summary>
  182. public double itactRate { get; set; }
  183. /// <summary>
  184. /// 總加權數
  185. /// </summary>
  186. /// <summary>
  187. /// 被選取的課堂紀錄列表
  188. /// </summary>
  189. public List<ScoreCalcActivityItems> items { get; set; }
  190. #region ==========出席==========
  191. /// <summary>
  192. /// 課堂紀錄出席 採用的公式ID (依照items順序 第一個課堂紀錄公式 第二個...)
  193. /// </summary>
  194. public string stuAttendFunctionId { get; set; }
  195. /// <summary>
  196. /// 各學生各課堂紀錄出席 系統原值
  197. /// </summary>
  198. public List<List<double>> stuActAttendOrgVals { get; set; }
  199. /// <summary>
  200. /// 各學生各課堂紀錄出席 分數
  201. /// </summary>
  202. public List<List<double>> stuActAttendScores { get; set; }
  203. /// <summary>
  204. /// 各學生所有課堂紀錄出席 分數
  205. /// </summary>
  206. //public List<double> stuAttendScores { get; set; }
  207. #endregion
  208. #region ==========記分板==========
  209. /// <summary>
  210. /// 課堂紀錄記分板 採用的公式ID
  211. /// </summary>
  212. public string stuPointFunctionId { get; set; }
  213. /// <summary>
  214. /// 各學生各課堂紀錄記分板 系統原值
  215. /// </summary>
  216. public List<List<double>> stuActPointOrgVals { get; set; }
  217. /// <summary>
  218. /// 各學生各課堂紀錄記分板 分數
  219. /// </summary>
  220. public List<List<double>> stuActPointScores { get; set; }
  221. /// <summary>
  222. /// 各學生所有課堂紀錄記分板 分數
  223. /// </summary>
  224. //public List<double> stuPointScores { get; set; }
  225. #endregion
  226. #region ==========互動==========
  227. /// <summary>
  228. /// 課堂紀錄互動 採用的公式ID
  229. /// </summary>
  230. public string stuItactFunctionId { get; set; }
  231. /// <summary>
  232. /// 各學生各課堂紀錄互動 系統原值
  233. /// </summary>
  234. public List<List<double>> stuActItactOrgVals { get; set; }
  235. /// <summary>
  236. /// 各學生各課堂紀錄互動 分數
  237. /// </summary>
  238. public List<List<double>> stuActItactScores { get; set; }
  239. /// <summary>
  240. /// 各學生所有課堂紀錄互動 分數
  241. /// </summary>
  242. //public List<double> stuItactScores { get; set; }
  243. #endregion
  244. }
  245. public class ScoreCalcMember
  246. {
  247. /// <summary>
  248. /// ID(學生ID、TMID)
  249. /// </summary>
  250. public string id { get; set; }
  251. public string name { get; set; }
  252. /// <summary>
  253. /// 座號
  254. /// </summary>
  255. public string no { get; set; }
  256. }
  257. /// <summary>
  258. /// 測驗、作業
  259. /// </summary>
  260. public class ScoreCalcActivityItems
  261. {
  262. /// <summary>
  263. /// 活動ID (測驗:examId 作業:homeworkId)
  264. /// </summary>
  265. public string id { get; set; }
  266. /// <summary>
  267. /// 活動分區鍵
  268. /// </summary>
  269. public string code { get; set; }
  270. /// <summary>
  271. /// 發布對象 學校(school)/個人(private)
  272. /// </summary>
  273. //public string scope { get; set; }
  274. /// <summary>
  275. /// (評量專有)擁有者 學校(school)/個人(teacher)
  276. /// </summary>
  277. //public string owner { get; set; }
  278. /// <summary>
  279. /// 活動名稱
  280. /// </summary>
  281. public string name { get; set; }
  282. /// <summary>
  283. /// 活動進度 pending 待发布 | going 已发布 | finish 已结束
  284. /// </summary>
  285. //public string progress { get; set; }
  286. /// <summary>
  287. /// 活動評分狀態(評量專用) 0未评分,1已评分
  288. /// </summary>
  289. //public int sStatus { get; set; } = 0;
  290. /// <summary>
  291. /// 評測類型(評量專用) 0:線上評量 | 1:課中評量 | 2.卷卡合一
  292. /// </summary>
  293. //public string source { get; set; }
  294. /// <summary>
  295. /// 創建時間 (milliseconds 13位數)
  296. /// </summary>
  297. public long createTime { get; set; }
  298. /// <summary>
  299. /// 是否使用(是否被勾選) true:使用
  300. /// </summary>
  301. public bool use { get; set; }
  302. /// <summary>
  303. /// 排序
  304. /// </summary>
  305. public int sort { get; set; }
  306. }
  307. /// <summary>
  308. /// 老師成績計算公式 code:"ScoreCalcFunc-{TMID}"
  309. /// </summary>
  310. public class ScoreCalcFunc : CosmosEntity
  311. {
  312. public ScoreCalcFunc()
  313. {
  314. pk = "ScoreCalcActFormula";
  315. keyvals = new List<ScoreCalcFuncTemplateKeyval>();
  316. }
  317. public string name { get; set; }
  318. public string scorecalcActId { get; set; }
  319. /// <summary>
  320. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  321. /// </summary>
  322. public string type { get; set; }
  323. /// <summary>
  324. /// 種類 attend:出席 | point:得分版 | interaction:互動
  325. /// </summary>
  326. public string method { get; set; }
  327. /// <summary>
  328. /// 模板 simpleAttend: 簡單出席計算法 | attendRate:出席率計算法 | custom:自訂
  329. /// </summary>
  330. public string template { get; set; }
  331. /// <summary>
  332. /// 公式鍵值定義
  333. /// </summary>
  334. public List<ScoreCalcFuncTemplateKeyval> keyvals { get; set; }
  335. /// <summary>
  336. /// 公式內容
  337. /// </summary>
  338. public string content { get; set; }
  339. }
  340. public class ScoreCalcFuncTemplateKeyval
  341. {
  342. public string key { get; set; }
  343. public string val { get; set; }
  344. //public string type { get; set; }
  345. //public string describe { get; set; }
  346. }
  347. /// <summary>
  348. /// 評量活動取系統資料
  349. /// </summary>
  350. public class ExamItem
  351. {
  352. /// <summary>
  353. /// 評量id
  354. /// </summary>
  355. public string examId { get; set; }
  356. /// <summary>
  357. /// 評量名稱
  358. /// </summary>
  359. public string name { get; set; }
  360. /// <summary>
  361. /// 評量學生Id列表
  362. /// </summary>
  363. public List<string> studentIds { get; set; }
  364. /// <summary>
  365. /// 評量分數列表
  366. /// </summary>
  367. public List<double> sum { get; set; }
  368. }
  369. /// <summary>
  370. /// 取作業活動Id
  371. /// </summary>
  372. public class HomeworkItem
  373. {
  374. /// <summary>
  375. /// 作業id
  376. /// </summary>
  377. public string id { get; set; }
  378. /// <summary>
  379. /// 作業名稱
  380. /// </summary>
  381. public string name { get; set; }
  382. /// <summary>
  383. /// 作業代碼 包含學生座號
  384. /// </summary>
  385. public string code { get; set; }
  386. /// <summary>
  387. /// 分數
  388. /// </summary>
  389. public double score { get; set; }
  390. /// <summary>
  391. /// pk
  392. /// </summary>
  393. public string pk { get; set; }
  394. /// <summary>
  395. /// school id
  396. /// </summary>
  397. public string school { get; set; }
  398. }
  399. #region (四)更新成績統計首頁表資料用
  400. /// <summary>
  401. /// 更新成績統計首頁表資料 參數
  402. /// </summary>
  403. public class UpdateSscoreCalcRq
  404. {
  405. public UpdateSscoreCalcRq()
  406. {
  407. ScoreCalcAct = new List<ScoreCalcAct>();
  408. editScores = new List<double>();
  409. }
  410. /// <summary>
  411. /// 成績統計id
  412. /// </summary>
  413. public string id { get; set; }
  414. /// <summary>
  415. /// teammodelId
  416. /// </summary>
  417. public string teammodelId { get; set; }
  418. /// <summary>
  419. /// 成績統計名稱
  420. /// </summary>
  421. public string name { get; set; }
  422. /// <summary>
  423. /// 成績統計名稱
  424. /// </summary>
  425. public List<ScoreCalcAct> ScoreCalcAct { get; set; }
  426. /// <summary>
  427. /// 成績統計的加減分
  428. /// </summary>
  429. public List<double> editScores { get; set; }
  430. }
  431. /// <summary>
  432. /// 更新成績統計首頁表資料 參數ScoreCalcAct
  433. /// </summary>
  434. public class ScoreCalcAct
  435. {
  436. public ScoreCalcAct()
  437. {
  438. editScores = new List<double>();
  439. }
  440. /// <summary>
  441. /// 項目id
  442. /// </summary>
  443. public string id { get; set; }
  444. /// <summary>
  445. /// 項目類別
  446. /// </summary>
  447. public string type { get; set; }
  448. /// <summary>
  449. /// 出席比重
  450. /// </summary>
  451. public double attendRate { get; set; }
  452. /// <summary>
  453. /// 記分比重
  454. /// </summary>
  455. public double pointRate { get; set; }
  456. /// <summary>
  457. /// 互動比重
  458. /// </summary>
  459. public double itactRate { get; set; }
  460. /// <summary>
  461. /// 總比重
  462. /// </summary>
  463. public double rate { get; set; }
  464. /// <summary>
  465. /// 項目成績的加減分
  466. /// </summary>
  467. public List<double> editScores { get; set; }
  468. }
  469. #endregion
  470. // 取物件Id用
  471. public class ItemId
  472. {
  473. /// <summary>
  474. /// id
  475. /// </summary>
  476. public string id { get; set; }
  477. }
  478. #region (六)更新公式設定(一次可以處理多個公式)資料用
  479. /// <summary>
  480. /// 更新公式資料 參數
  481. /// </summary>
  482. public class UpdateFormulaRq
  483. {
  484. public UpdateFormulaRq()
  485. {
  486. scoreCalcFunc = new List<ScoreCalcFuncRq>();
  487. }
  488. /// <summary>
  489. /// 項目id
  490. /// </summary>
  491. public string scoreCalcActId { get; set; }
  492. /// <summary>
  493. /// teammodelId
  494. /// </summary>
  495. public string teammodelId { get; set; }
  496. /// <summary>
  497. /// 種類 attend:出席 | point:得分版 | interaction:互動
  498. /// </summary>
  499. public string method { get; set; }
  500. /// <summary>
  501. /// 公式資料列表
  502. /// </summary>
  503. public List<ScoreCalcFuncRq> scoreCalcFunc { get; set; }
  504. }
  505. /// <summary>
  506. /// 更新公式資料用的 細項參數
  507. /// </summary>
  508. public class ScoreCalcFuncRq: ScoreCalcFunc
  509. {
  510. /// <summary>
  511. /// 是否為使用中的公式
  512. /// </summary>
  513. public bool use { get; set; }
  514. }
  515. #endregion
  516. #region (九)更新項目及子項目資料
  517. /// <summary>
  518. /// Request 參數
  519. /// </summary>
  520. public class UpdateScoreCalcActRqBase
  521. {
  522. /// <summary>
  523. /// 活動id
  524. /// </summary>
  525. public string scoreCalcActId { get; set; }
  526. /// <summary>
  527. /// 活動名稱
  528. /// </summary>
  529. public string name { get; set; }
  530. /// <summary>
  531. /// 活動加權數
  532. /// </summary>
  533. public double rate { get; set; }
  534. }
  535. public class UpdateActivityActRq : UpdateScoreCalcActRqBase
  536. {
  537. public UpdateActivityActRq()
  538. {
  539. items = new List<SubActActivity>();
  540. }
  541. /// <summary>
  542. /// 活動子項目資料列表
  543. /// </summary>
  544. public List<SubActActivity> items { get; set; }
  545. }
  546. public class UpdateLsRecordActRq : UpdateScoreCalcActRqBase
  547. {
  548. public UpdateLsRecordActRq()
  549. {
  550. items = new List<SubActLsRecord>();
  551. }
  552. /// <summary>
  553. /// 子項目資料列表
  554. /// </summary>
  555. public List<SubActLsRecord> items { get; set; }
  556. }
  557. #endregion
  558. #region(十三)匯出原始成績資料
  559. /// <summary>
  560. /// 原始成績Base
  561. /// </summary>
  562. public class ExportOrgDataBase
  563. {
  564. /// <summary>
  565. /// 名稱
  566. /// </summary>
  567. public string name { get; set; }
  568. }
  569. /// <summary>
  570. /// 活動成績大項
  571. /// </summary>
  572. public class ExportOrgActivityData : ExportOrgDataBase
  573. {
  574. public ExportOrgActivityData()
  575. {
  576. data = new List<ActivityScores>();
  577. }
  578. /// <summary>
  579. /// 活動子項目資料列表
  580. /// </summary>
  581. public List<ActivityScores> data { get; set; }
  582. }
  583. /// <summary>
  584. /// 課堂成績大項
  585. /// </summary>
  586. public class ExportOrgLsRecordData : ExportOrgDataBase
  587. {
  588. public ExportOrgLsRecordData()
  589. {
  590. data = new List<LessonScores>();
  591. }
  592. /// <summary>
  593. /// 課程原始分數資料
  594. /// </summary>
  595. public List<LessonScores> data { get; set; }
  596. }
  597. /// <summary>
  598. /// 課堂分數欄位
  599. /// </summary>
  600. public class LessonScores
  601. {
  602. /// <summary>
  603. /// 學生id
  604. /// </summary>
  605. public string id { get; set; }
  606. /// <summary>
  607. /// 名稱
  608. /// </summary>
  609. public string name { get; set; }
  610. /// <summary>
  611. /// 座號
  612. /// </summary>
  613. public string no { get; set; }
  614. /// <summary>
  615. /// 出席
  616. /// </summary>
  617. public double attend { get; set; }
  618. /// <summary>
  619. /// 記分板
  620. /// </summary>
  621. public double point { get; set; }
  622. /// <summary>
  623. ///互動
  624. /// </summary>
  625. public double interaction { get; set; }
  626. }
  627. /// <summary>
  628. /// 活動分數欄位
  629. /// </summary>
  630. public class ActivityScores
  631. {
  632. /// <summary>
  633. /// 學生id
  634. /// </summary>
  635. public string id { get; set; }
  636. /// <summary>
  637. /// 名稱
  638. /// </summary>
  639. public string name { get; set; }
  640. /// <summary>
  641. /// 座號
  642. /// </summary>
  643. public string no { get; set; }
  644. /// <summary>
  645. /// 分數
  646. /// </summary>
  647. public double score { get; set; }
  648. }
  649. #endregion
  650. #region (十二)登錄指定子項目成績資料用
  651. /// <summary>
  652. /// 更新成績 參數
  653. /// </summary>
  654. public class UpdateScoreBase
  655. {
  656. /// <summary>
  657. /// 活動項目id
  658. /// </summary>
  659. public string scoreCalcActId { get; set; }
  660. /// <summary>
  661. /// teammodelId
  662. /// </summary>
  663. public string teammodelId { get; set; }
  664. /// <summary>
  665. /// 子項目id
  666. /// </summary>
  667. public string id { get; set; }
  668. }
  669. /// <summary>
  670. /// 更新課堂子項目成績 參數
  671. /// </summary>
  672. public class UpdateScoreLessonRq: UpdateScoreBase
  673. {
  674. public UpdateScoreLessonRq()
  675. {
  676. stuActAttendScores = new List<double>();
  677. stuActPointScores = new List<double>();
  678. stuActItactScores = new List<double>();
  679. }
  680. /// <summary>
  681. /// 出席分數
  682. /// </summary>
  683. public List<double> stuActAttendScores { get; set; }
  684. /// <summary>
  685. /// 記分板分數
  686. /// </summary>
  687. public List<double> stuActPointScores { get; set; }
  688. /// <summary>
  689. /// 互動分數
  690. /// </summary>
  691. public List<double> stuActItactScores { get; set; }
  692. }
  693. /// <summary>
  694. /// 更新活動子項目成績 參數
  695. /// </summary>
  696. public class UpdateScoreActivityRq : UpdateScoreBase
  697. {
  698. public UpdateScoreActivityRq()
  699. {
  700. scores = new List<double>();
  701. }
  702. /// <summary>
  703. /// 分數
  704. /// </summary>
  705. public List<double> scores { get; set; }
  706. }
  707. #endregion
  708. #region API回傳資料用
  709. #region (二)查詢成績統計首頁表資料用
  710. /// <summary>
  711. /// 查詢總表-活動資料的Base
  712. /// </summary>
  713. public class ScoreCalcActDtoBase
  714. {
  715. public ScoreCalcActDtoBase()
  716. {
  717. editScores = new List<double>();
  718. }
  719. /// <summary>
  720. /// 活動id
  721. /// </summary>
  722. public string id { get; set; }
  723. /// <summary>
  724. /// 活動名稱
  725. /// </summary>
  726. public string name { get; set; }
  727. /// <summary>
  728. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  729. /// </summary>
  730. public string type { get; set; }
  731. /// <summary>
  732. /// 活動加權數
  733. /// </summary>
  734. public double rate { get; set; }
  735. /// <summary>
  736. /// 排序
  737. /// </summary>
  738. public int sort { get; set; }
  739. /// <summary>
  740. /// 個學生最後成績的加減分
  741. /// </summary>
  742. public List<double> editScores { get; set; }
  743. }
  744. /// <summary>
  745. /// 查詢總表-活動資料的詳細列表資料
  746. /// </summary>
  747. public class ScoreCalcActivityActDto : ScoreCalcActDtoBase
  748. {
  749. public ScoreCalcActivityActDto()
  750. {
  751. items = new List<SubActActivity>();
  752. }
  753. /// <summary>
  754. /// 活動子項目資料列表
  755. /// </summary>
  756. public List<SubActActivity> items { get; set; }
  757. }
  758. /// <summary>
  759. /// 查詢總表-活動資料課堂紀錄的詳細列表資料
  760. /// </summary>
  761. public class ScoreCalcLsRecordActDto : ScoreCalcActDtoBase
  762. {
  763. public ScoreCalcLsRecordActDto()
  764. {
  765. items = new List<SubActLsRecord>();
  766. attendStates = new List<AttendStatesCalc>();
  767. }
  768. /// <summary>
  769. /// 出席占比重
  770. /// </summary>
  771. public double attendRate { get; set; }
  772. /// <summary>
  773. /// 記分板占比重
  774. /// </summary>
  775. public double pointRate { get; set; }
  776. /// <summary>
  777. /// 互動占比重
  778. /// </summary>
  779. public double itactRate { get; set; }
  780. /// <summary>
  781. /// 出席公式
  782. /// </summary>
  783. public string stuAttendFunctionId { get; set; }
  784. /// <summary>
  785. /// 記分公式
  786. /// </summary>
  787. public string stuPointFunctionId { get; set; }
  788. /// <summary>
  789. /// 互動公式
  790. /// </summary>
  791. public string stuItactFunctionId { get; set; }
  792. /// <summary>
  793. /// 出席狀態統計資料
  794. /// </summary>
  795. public List<AttendStatesCalc> attendStates { get; set; }
  796. /// <summary>
  797. /// 子項目資料列表
  798. /// </summary>
  799. public List<SubActLsRecord> items { get; set; }
  800. /// <summary>
  801. /// 排序
  802. /// </summary>
  803. public int sort { get; set; }
  804. }
  805. /// <summary>
  806. /// 統計出席狀態
  807. /// Uncall,0(未點名)
  808. /// Attended,1(出席)
  809. /// Absent,2(缺席)
  810. /// DayOff,3(請假)
  811. /// Absent_Sick,4(病假)
  812. /// Absent_Personal,5(事假)
  813. /// Absent_Official,6(公假)
  814. /// </summary>
  815. public class AttendStatesCalc
  816. {
  817. /// <summary>
  818. /// 病假次數
  819. /// </summary>
  820. public int Absent_Sick { get; set; }
  821. /// <summary>
  822. /// 缺席次數
  823. /// </summary>
  824. public int Absent { get; set; }
  825. /// <summary>
  826. /// 事假次數
  827. /// </summary>
  828. public int Absent_Personal { get; set; }
  829. /// <summary>
  830. /// 公假次數
  831. /// </summary>
  832. public int Absent_Official { get; set; }
  833. }
  834. /// <summary>
  835. /// 子項目欄位的Base
  836. /// </summary>
  837. public class SubActBase
  838. {
  839. /// <summary>
  840. /// 子項目id
  841. /// </summary>
  842. public string id { get; set; }
  843. /// <summary>
  844. /// 子項目名稱
  845. /// </summary>
  846. public string name { get; set; }
  847. /// <summary>
  848. /// 子項目加權數
  849. /// </summary>
  850. public double rate { get; set; }
  851. /// <summary>
  852. /// 是否為勾選的項目
  853. /// </summary>
  854. public bool use { get; set; }
  855. /// <summary>
  856. /// 排序
  857. /// </summary>
  858. public int sort { get; set; }
  859. }
  860. /// <summary>
  861. /// 活動子項目欄位
  862. /// </summary>
  863. public class SubActActivity : SubActBase
  864. {
  865. public SubActActivity()
  866. {
  867. scores = new List<double>();
  868. }
  869. public List<double> scores { get; set; }
  870. }
  871. /// <summary>
  872. /// 課堂紀錄子項目欄位
  873. /// </summary>
  874. public class SubActLsRecord : SubActBase
  875. {
  876. public SubActLsRecord()
  877. {
  878. stuActAttendScores = new List<double>();
  879. stuActPointScores = new List<double>();
  880. stuActItactScores = new List<double>();
  881. }
  882. /// <summary>
  883. /// 出席分數
  884. /// </summary>
  885. public List<double> stuActAttendScores { get; set; }
  886. /// <summary>
  887. /// 記分板分數
  888. /// </summary>
  889. public List<double> stuActPointScores { get; set; }
  890. /// <summary>
  891. /// 互動分數
  892. /// </summary>
  893. public List<double> stuActItactScores { get; set; }
  894. }
  895. /// <summary>
  896. /// 成績統計列表用資料
  897. /// </summary>
  898. public class Calc
  899. {
  900. /// <summary>
  901. /// 成績統計id
  902. /// </summary>
  903. public string id { get; set; }
  904. /// <summary>
  905. /// 成績統計名稱
  906. /// </summary>
  907. public string name { get; set; }
  908. /// <summary>
  909. /// 排序
  910. /// </summary>
  911. public int sort { get; set; }
  912. }
  913. #region (十四)更新成績統計順序 (十五)更新活動項目順序
  914. /// <summary>
  915. /// 更新成績統計順序Request
  916. /// </summary>
  917. public class UpdateCalcSortRq
  918. {
  919. /// <summary>
  920. /// teammodelId
  921. /// </summary>
  922. public string teammodelId { get; set; }
  923. /// <summary>
  924. /// 成績統計要更新的資料list
  925. /// </summary>
  926. public List<sortItem> sortItems { get; set; }
  927. }
  928. /// <summary>
  929. /// 更新活動項目順序Request
  930. /// </summary>
  931. public class UpdateActSortRq
  932. {
  933. /// <summary>
  934. /// teammodelId
  935. /// </summary>
  936. public string teammodelId { get; set; }
  937. /// <summary>
  938. /// 成績統計Id
  939. /// </summary>
  940. public string scoreCalcId { get; set; }
  941. /// <summary>
  942. /// 成績統計要更新的資料list
  943. /// </summary>
  944. public List<sortItem> sortItems { get; set; }
  945. }
  946. public class sortItem
  947. {
  948. /// <summary>
  949. /// 成績統計id
  950. /// </summary>
  951. public string id { get; set; }
  952. /// <summary>
  953. /// 排序
  954. /// </summary>
  955. public int sort { get; set; }
  956. }
  957. #endregion
  958. #endregion
  959. #endregion
  960. }