ExamImport.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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. public class VirtueImport : CosmosEntity {
  11. /// <summary>
  12. /// id:根据名称不重复的前台生成UUID,
  13. /// code:ExamImport-hbcn
  14. /// pk:ExamImport
  15. /// 评测名称
  16. /// </summary>
  17. public string name { get; set; }
  18. /// <summary>
  19. /// 评测类型 期末,期中,季考,月考,周考,测验,练习,作业,日常,课中
  20. /// </summary>
  21. public string type { get; set; }
  22. /// <summary>
  23. /// 学校id
  24. /// </summary>
  25. public string school { get; set; }
  26. /// <summary>
  27. /// 考试时间
  28. /// </summary>
  29. public long time { get; set; }
  30. /// <summary>
  31. /// 学年
  32. /// </summary>
  33. public int year { get; set; }
  34. /// <summary>
  35. /// 学期
  36. /// </summary>
  37. public string semesterId { get; set; }
  38. /// <summary>
  39. /// 学段
  40. /// </summary>
  41. public string periodId { get; set; }
  42. /// <summary>
  43. /// 班级id
  44. /// </summary>
  45. public string classId { get;set; }
  46. /// <summary>
  47. /// 学生成绩
  48. /// </summary>
  49. public List<ResultImportStudent> students { get; set; } = new List<ResultImportStudent>();
  50. }
  51. /// <summary>
  52. /// 双向细目表导入
  53. /// </summary>
  54. public class ExamImport : CosmosEntity
  55. {
  56. /// <summary>
  57. /// id:根据名称不重复的前台生成UUID,
  58. /// code:ExamImport-hbcn
  59. /// pk:ExamImport
  60. /// 评测名称
  61. /// </summary>
  62. public string name { get; set; }
  63. /// <summary>
  64. /// 评测类型 期末,期中,季考,月考,周考,测验,练习,作业,日常,课中
  65. /// </summary>
  66. public string type { get; set; }
  67. /// <summary>
  68. /// 学校id
  69. /// </summary>
  70. public string school { get; set; }
  71. /// <summary>
  72. /// 考试时间
  73. /// </summary>
  74. public long time { get; set; }
  75. /// <summary>
  76. /// 学年
  77. /// </summary>
  78. public int year { get; set; }
  79. /// <summary>
  80. /// 学期
  81. /// </summary>
  82. public string semesterId { get; set; }
  83. /// <summary>
  84. /// 学段
  85. /// </summary>
  86. public string periodId { get; set; }
  87. /// <summary>
  88. /// 科目
  89. /// </summary>
  90. public List<ExamImportSubject> subjects { get; set; }= new List<ExamImportSubject>();
  91. }
  92. /// <summary>
  93. /// 科目
  94. /// </summary>
  95. public class ExamImportSubject
  96. {
  97. /// <summary>
  98. /// 科目id
  99. /// </summary>
  100. public string id { get; set; }
  101. /// <summary>
  102. /// 科目名称
  103. /// </summary>
  104. public string name { get; set; }
  105. public List<string> point = new List<string>();
  106. /// <summary>
  107. /// 配分
  108. /// </summary>
  109. public List<ExamImportItem> items { get; set; }= new List<ExamImportItem>();
  110. /// <summary>
  111. /// 学生成绩
  112. /// </summary>
  113. public List<ResultImportStudent> students { get; set; }= new List<ResultImportStudent> ();
  114. }
  115. public class ResultImportStudent {
  116. /// <summary>
  117. /// 学生id
  118. /// </summary>
  119. public string id { get; set; }
  120. /// <summary>
  121. /// 姓名
  122. /// </summary>
  123. public string name { get; set; }
  124. /// <summary>
  125. /// 班级id
  126. /// </summary>
  127. public string classId { get; set; }
  128. /// <summary>
  129. /// 总分
  130. /// </summary>
  131. public double score { get; set; }
  132. /// <summary>
  133. /// 小题得分,下标0顺序开始 第一题....N
  134. /// </summary>
  135. public List<double> scores { get; set; }
  136. public List<ItemVlaue> items { get; set; }
  137. /// <summary>
  138. /// 日常考核类型,需要将考核时间碎片化,如德育。
  139. /// </summary>
  140. public long time { get; set; }
  141. public string date { get; set; }
  142. //学生入学年
  143. public int stuYear { get; set; }
  144. }
  145. public class ItemVlaue
  146. {
  147. /// <summary>
  148. /// 细项名称
  149. /// </summary>
  150. public string code { get; set; }
  151. /// <summary>
  152. /// 细项分数
  153. /// </summary>
  154. public double value { get; set; }
  155. }
  156. /// <summary>
  157. /// 配分
  158. /// </summary>
  159. public class ExamImportItem {
  160. /// <summary>
  161. /// 从数组下标0开始
  162. /// </summary>
  163. public int index { get; set; }
  164. /// <summary>
  165. /// 认知层次
  166. /// </summary>
  167. public string filed { get; set; }
  168. /// <summary>
  169. /// 知识点
  170. /// </summary>
  171. public HashSet<string> point { get; set; } = new HashSet<string>();
  172. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  173. public string type { get; set; }
  174. /// <summary>
  175. /// 配分总分
  176. /// </summary>
  177. public double score { get; set; }
  178. }
  179. /// <summary>
  180. /// 双向细目表 前端导入结构
  181. /// </summary>
  182. public class ImportExam {
  183. [Required(ErrorMessage = "name_Required")]
  184. public string name { get; set; }
  185. [Required(ErrorMessage = "time_Required")]
  186. public string time { get; set; }
  187. [Required(ErrorMessage = "type_Required")]
  188. public string type { get; set; }
  189. [Required(ErrorMessage = "periodId_Required")]
  190. public string periodId { get; set; }
  191. [Required(ErrorMessage = "school_Required")]
  192. public string school { get; set; }
  193. public List<ImportExamSubject> subjects { get; set; } = new List<ImportExamSubject>();
  194. }
  195. /// <summary>
  196. /// 科目信息,前端导入结构
  197. /// </summary>
  198. public class ImportExamSubject
  199. {
  200. public string subject { get; set; }
  201. public List<ImportExamItem> items { get; set; } = new List<ImportExamItem>();
  202. public List<ImportResultStudent> students { get; set; } = new List<ImportResultStudent>();
  203. }
  204. public class ImportResultStudent
  205. {
  206. /// <summary>
  207. /// 学生id
  208. /// </summary>
  209. public string id { get; set; }
  210. /// <summary>
  211. /// 姓名
  212. /// </summary>
  213. public string name { get; set; }
  214. /// <summary>
  215. /// 班级id
  216. /// </summary>
  217. public string classId { get; set; }
  218. /// <summary>
  219. /// 总分
  220. /// </summary>
  221. public double score { get; set; }
  222. /// <summary>
  223. /// 小题得分,下标0顺序开始 第一题....N
  224. /// </summary>
  225. public List<double> scores { get; set; }
  226. /// <summary>
  227. /// 德育细项
  228. /// </summary>
  229. public List<ItemVlaue> items { get; set; }
  230. /// <summary>
  231. /// 日常考核类型,需要将考核时间碎片化,如德育。
  232. /// </summary>
  233. public string time { get; set; }
  234. }
  235. /// <summary>
  236. /// 配分
  237. /// </summary>
  238. public class ImportExamItem
  239. {
  240. /// <summary>
  241. /// 从数组下标0开始
  242. /// </summary>
  243. public int index { get; set; }
  244. /// <summary>
  245. /// 认知层次
  246. /// </summary>
  247. public string filed { get; set; }
  248. /// <summary>
  249. /// 知识点
  250. /// </summary>
  251. public string point { get; set; }
  252. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  253. public string type { get; set; }
  254. /// <summary>
  255. /// 配分总分
  256. /// </summary>
  257. public double score { get; set; }
  258. }
  259. }