ExamImport.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. using DocumentFormat.OpenXml.Spreadsheet;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace TEAMModelOS.SDK.Models.Cosmos.School
  9. {
  10. /// <summary>
  11. /// 双向细目表导入
  12. /// </summary>
  13. public class ExamImport : CosmosEntity
  14. {
  15. /// <summary>
  16. /// id:根据名称不重复的前台生成UUID,
  17. /// code:ExamImport-hbcn
  18. /// pk:ExamImport
  19. /// 评测名称
  20. /// </summary>
  21. public string name { get; set; }
  22. /// <summary>
  23. /// 评测类型 期末,期中,季考,月考,周考,测验,练习,作业,日常,课中
  24. /// </summary>
  25. public string type { get; set; }
  26. /// <summary>
  27. /// 学校id
  28. /// </summary>
  29. public string school { get; set; }
  30. /// <summary>
  31. /// 考试时间
  32. /// </summary>
  33. public long time { get; set; }
  34. /// <summary>
  35. /// 学年
  36. /// </summary>
  37. public int year { get; set; }
  38. /// <summary>
  39. /// 学期
  40. /// </summary>
  41. public string semesterId { get; set; }
  42. /// <summary>
  43. /// 学段
  44. /// </summary>
  45. public string periodId { get; set; }
  46. /// <summary>
  47. /// 科目
  48. /// </summary>
  49. public List<ExamImportSubject> subjects { get; set; }= new List<ExamImportSubject>();
  50. }
  51. /// <summary>
  52. /// 科目
  53. /// </summary>
  54. public class ExamImportSubject
  55. {
  56. /// <summary>
  57. /// 科目id
  58. /// </summary>
  59. public string id { get; set; }
  60. /// <summary>
  61. /// 科目名称
  62. /// </summary>
  63. public string name { get; set; }
  64. public List<string> point = new List<string>();
  65. /// <summary>
  66. /// 配分
  67. /// </summary>
  68. public List<ExamImportItem> items { get; set; }= new List<ExamImportItem>();
  69. /// <summary>
  70. /// 学生成绩
  71. /// </summary>
  72. public List<ExamImportStudent> students { get; set; }= new List<ExamImportStudent> ();
  73. }
  74. public class ExamImportStudent {
  75. /// <summary>
  76. /// 学生id
  77. /// </summary>
  78. public string id { get; set; }
  79. /// <summary>
  80. /// 姓名
  81. /// </summary>
  82. public string name { get; set; }
  83. /// <summary>
  84. /// 班级id
  85. /// </summary>
  86. public string classId { get; set; }
  87. /// <summary>
  88. /// 总分
  89. /// </summary>
  90. public double score { get; set; }
  91. /// <summary>
  92. /// 小题得分,下标0顺序开始 第一题....N
  93. /// </summary>
  94. public List<double> scores { get; set; }
  95. public List<ItemVlaue> items { get; set; }
  96. /// <summary>
  97. /// 日常考核类型,需要将考核时间碎片化,如德育。
  98. /// </summary>
  99. public long time { get; set; }
  100. }
  101. public class ItemVlaue
  102. {
  103. public string code { get; set; }
  104. public double value { get; set; }
  105. }
  106. /// <summary>
  107. /// 配分
  108. /// </summary>
  109. public class ExamImportItem {
  110. /// <summary>
  111. /// 从数组下标0开始
  112. /// </summary>
  113. public int index { get; set; }
  114. /// <summary>
  115. /// 认知层次
  116. /// </summary>
  117. public string filed { get; set; }
  118. /// <summary>
  119. /// 知识点
  120. /// </summary>
  121. public HashSet<string> point { get; set; } = new HashSet<string>();
  122. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  123. public string type { get; set; }
  124. /// <summary>
  125. /// 配分总分
  126. /// </summary>
  127. public double score { get; set; }
  128. }
  129. /// <summary>
  130. /// 双向细目表 前端导入结构
  131. /// </summary>
  132. public class ImportExam {
  133. [Required(ErrorMessage = "name_Required")]
  134. public string name { get; set; }
  135. [Required(ErrorMessage = "time_Required")]
  136. public string time { get; set; }
  137. [Required(ErrorMessage = "type_Required")]
  138. public string type { get; set; }
  139. [Required(ErrorMessage = "periodId_Required")]
  140. public string periodId { get; set; }
  141. [Required(ErrorMessage = "school_Required")]
  142. public string school { get; set; }
  143. public List<ImportExamSubject> subjects { get; set; } = new List<ImportExamSubject>();
  144. }
  145. /// <summary>
  146. /// 科目信息,前端导入结构
  147. /// </summary>
  148. public class ImportExamSubject
  149. {
  150. public string subject { get; set; }
  151. public List<ImportExamItem> items { get; set; } = new List<ImportExamItem>();
  152. public List<ImportExamStudent> students { get; set; } = new List<ImportExamStudent>();
  153. }
  154. public class ImportExamStudent
  155. {
  156. /// <summary>
  157. /// 学生id
  158. /// </summary>
  159. public string id { get; set; }
  160. /// <summary>
  161. /// 姓名
  162. /// </summary>
  163. public string name { get; set; }
  164. /// <summary>
  165. /// 班级id
  166. /// </summary>
  167. public string classId { get; set; }
  168. /// <summary>
  169. /// 总分
  170. /// </summary>
  171. public double score { get; set; }
  172. /// <summary>
  173. /// 小题得分,下标0顺序开始 第一题....N
  174. /// </summary>
  175. public List<double> scores { get; set; }
  176. public List<ItemVlaue> items { get; set; }
  177. /// <summary>
  178. /// 日常考核类型,需要将考核时间碎片化,如德育。
  179. /// </summary>
  180. public string time { get; set; }
  181. }
  182. /// <summary>
  183. /// 配分
  184. /// </summary>
  185. public class ImportExamItem
  186. {
  187. /// <summary>
  188. /// 从数组下标0开始
  189. /// </summary>
  190. public int index { get; set; }
  191. /// <summary>
  192. /// 认知层次
  193. /// </summary>
  194. public string filed { get; set; }
  195. /// <summary>
  196. /// 知识点
  197. /// </summary>
  198. public string point { get; set; }
  199. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  200. public string type { get; set; }
  201. /// <summary>
  202. /// 配分总分
  203. /// </summary>
  204. public double score { get; set; }
  205. }
  206. }