ExamImport.cs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. using DocumentFormat.OpenXml.Spreadsheet;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Configuration;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace TEAMModelOS.SDK.Models.Cosmos.School
  10. {
  11. public class VirtueImport : CosmosEntity {
  12. /// <summary>
  13. /// id:根据名称不重复的前台生成UUID,
  14. /// code:VirtueImport-hbcn
  15. /// pk:VirtueImport
  16. /// 评测名称
  17. /// </summary>
  18. public string name { get; set; }
  19. /// <summary>
  20. /// 评测类型 期末,期中,季考,月考,周考,测验,练习,作业,日常,课中
  21. /// </summary>
  22. public string type { get; set; }
  23. /// <summary>
  24. /// 学校id
  25. /// </summary>
  26. public string school { get; set; }
  27. /// <summary>
  28. /// 考试时间
  29. /// </summary>
  30. public long time { get; set; }
  31. /// <summary>
  32. /// 学年
  33. /// </summary>
  34. public int year { get; set; }
  35. /// <summary>
  36. /// 学期
  37. /// </summary>
  38. public string semesterId { get; set; }
  39. /// <summary>
  40. /// 学段
  41. /// </summary>
  42. public string periodId { get; set; }
  43. /// <summary>
  44. /// 班级id
  45. /// </summary>
  46. public string classId { get;set; }
  47. /// <summary>
  48. /// 学生成绩
  49. /// </summary>
  50. public List<ResultImportStudent> students { get; set; } = new List<ResultImportStudent>();
  51. }
  52. /// <summary>
  53. /// 德育,体育,劳动教育类似需要评价指标的导入模板。
  54. /// </summary>
  55. public class QuotaImport :CosmosEntity{
  56. /// <summary>
  57. /// id:根据名称不重复的前台生成UUID,
  58. /// code:QuotaImport-hbcn
  59. /// pk:QuotaImport
  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. /// 班级id
  89. /// </summary>
  90. public string classId { get; set; }
  91. /// <summary>
  92. /// 学生成绩
  93. /// </summary>
  94. public List<ResultImportStudent> students { get; set; } = new List<ResultImportStudent>();
  95. public IdName subject { get; set; } = new IdName();
  96. public string dimension { get; set; }
  97. }
  98. /// <summary>
  99. /// 双向细目表导入
  100. /// </summary>
  101. public class ExamImport : CosmosEntity
  102. {
  103. /// <summary>
  104. /// id:根据名称不重复的前台生成UUID,
  105. /// code:ExamImport-hbcn
  106. /// pk:ExamImport
  107. /// 评测名称
  108. /// </summary>
  109. public string name { get; set; }
  110. /// <summary>
  111. /// 评测类型 期末,期中,季考,月考,周考,测验,练习,作业,日常,课中
  112. /// </summary>
  113. public string type { get; set; }
  114. /// <summary>
  115. /// 学校id
  116. /// </summary>
  117. public string school { get; set; }
  118. /// <summary>
  119. /// 考试时间
  120. /// </summary>
  121. public long time { get; set; }
  122. /// <summary>
  123. /// 学年
  124. /// </summary>
  125. public int year { get; set; }
  126. /// <summary>
  127. /// 学期
  128. /// </summary>
  129. public string semesterId { get; set; }
  130. /// <summary>
  131. /// 学段
  132. /// </summary>
  133. public string periodId { get; set; }
  134. /// <summary>
  135. /// 科目
  136. /// </summary>
  137. public List<ExamImportSubject> subjects { get; set; }= new List<ExamImportSubject>();
  138. }
  139. /// <summary>
  140. /// 科目
  141. /// </summary>
  142. public class ExamImportSubject
  143. {
  144. /// <summary>
  145. /// 科目id
  146. /// </summary>
  147. public string id { get; set; }
  148. /// <summary>
  149. /// 科目名称
  150. /// </summary>
  151. public string name { get; set; }
  152. public List<string> point = new List<string>();
  153. /// <summary>
  154. /// 配分
  155. /// </summary>
  156. public List<ExamImportItem> items { get; set; }= new List<ExamImportItem>();
  157. /// <summary>
  158. /// 学生成绩
  159. /// </summary>
  160. public List<ResultImportStudent> students { get; set; }= new List<ResultImportStudent> ();
  161. }
  162. public class ResultImportStudent {
  163. /// <summary>
  164. /// 学生id
  165. /// </summary>
  166. public string id { get; set; }
  167. /// <summary>
  168. /// 姓名
  169. /// </summary>
  170. public string name { get; set; }
  171. /// <summary>
  172. /// 班级id
  173. /// </summary>
  174. public string classId { get; set; }
  175. /// <summary>
  176. /// 总分
  177. /// </summary>
  178. public double score { get; set; }
  179. /// <summary>
  180. /// 小题得分,下标0顺序开始 第一题....N
  181. /// </summary>
  182. public List<double> scores { get; set; }
  183. public List<ItemVlaue> items { get; set; }
  184. /// <summary>
  185. /// 日常考核类型,需要将考核时间碎片化,如德育。
  186. /// </summary>
  187. public long time { get; set; }
  188. public string date { get; set; }
  189. //学生入学年
  190. public int stuYear { get; set; }
  191. }
  192. public class ItemVlaue
  193. {
  194. /// <summary>
  195. /// 细项名称
  196. /// </summary>
  197. public string code { get; set; }
  198. /// <summary>
  199. /// 细项分数
  200. /// </summary>
  201. public double value { get; set; }
  202. }
  203. /// <summary>
  204. /// 配分
  205. /// </summary>
  206. public class ExamImportItem {
  207. /// <summary>
  208. /// 从数组下标0开始
  209. /// </summary>
  210. public int index { get; set; }
  211. /// <summary>
  212. /// 认知层次
  213. /// </summary>
  214. public string filed { get; set; }
  215. /// <summary>
  216. /// 知识点
  217. /// </summary>
  218. public HashSet<string> point { get; set; } = new HashSet<string>();
  219. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  220. public string type { get; set; }
  221. /// <summary>
  222. /// 配分总分
  223. /// </summary>
  224. public double score { get; set; }
  225. }
  226. /// <summary>
  227. /// 双向细目表 前端导入结构
  228. /// </summary>
  229. public class ImportExam {
  230. [Required(ErrorMessage = "name_Required")]
  231. public string name { get; set; }
  232. [Required(ErrorMessage = "time_Required")]
  233. public string time { get; set; }
  234. [Required(ErrorMessage = "type_Required")]
  235. public string type { get; set; }
  236. [Required(ErrorMessage = "periodId_Required")]
  237. public string periodId { get; set; }
  238. [Required(ErrorMessage = "school_Required")]
  239. public string school { get; set; }
  240. public List<ImportExamSubject> subjects { get; set; } = new List<ImportExamSubject>();
  241. }
  242. /// <summary>
  243. /// 科目信息,前端导入结构
  244. /// </summary>
  245. public class ImportExamSubject
  246. {
  247. public string subject { get; set; }
  248. public List<ImportExamItem> items { get; set; } = new List<ImportExamItem>();
  249. public List<ImportResultStudent> students { get; set; } = new List<ImportResultStudent>();
  250. }
  251. public class ImportResultStudent
  252. {
  253. /// <summary>
  254. /// 学生id
  255. /// </summary>
  256. public string id { get; set; }
  257. /// <summary>
  258. /// 姓名
  259. /// </summary>
  260. public string name { get; set; }
  261. /// <summary>
  262. /// 班级id
  263. /// </summary>
  264. public string classId { get; set; }
  265. /// <summary>
  266. /// 总分
  267. /// </summary>
  268. public double score { get; set; }
  269. /// <summary>
  270. /// 小题得分,下标0顺序开始 第一题....N
  271. /// </summary>
  272. public List<double> scores { get; set; }
  273. /// <summary>
  274. /// 德育细项
  275. /// </summary>
  276. public List<ItemVlaue> items { get; set; }
  277. /// <summary>
  278. /// 日常考核类型,需要将考核时间碎片化,如德育。
  279. /// </summary>
  280. public string time { get; set; }
  281. }
  282. /// <summary>
  283. /// 配分
  284. /// </summary>
  285. public class ImportExamItem
  286. {
  287. /// <summary>
  288. /// 从数组下标0开始
  289. /// </summary>
  290. public int index { get; set; }
  291. /// <summary>
  292. /// 认知层次
  293. /// </summary>
  294. public string filed { get; set; }
  295. /// <summary>
  296. /// 知识点
  297. /// </summary>
  298. public string point { get; set; }
  299. //compose--综合题,single--单选题,multiple--多选题,judge--判断题,complete--填空题,subjective--问答题,connector--连线题,correct--改错题
  300. public string type { get; set; }
  301. /// <summary>
  302. /// 配分总分
  303. /// </summary>
  304. public double score { get; set; }
  305. }
  306. }