ExamSampleAppService.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. using YBEE.EQM.Core;
  2. namespace YBEE.EQM.Application;
  3. /// <summary>
  4. /// 监测抽样方案管理服务
  5. /// </summary>
  6. [ApiDescriptionSettings(Name = "exam-sample")]
  7. [Route("exam/sample")]
  8. public class ExamSampleAppService(IExamSampleService examSampleService) : IDynamicApiController
  9. {
  10. /// <summary>
  11. /// 添加监测抽样方案
  12. /// </summary>
  13. /// <param name="input"></param>
  14. /// <returns></returns>
  15. public async Task Add(AddExamSampleInput input)
  16. {
  17. await examSampleService.Add(input);
  18. }
  19. /// <summary>
  20. /// 更新监测抽样方案
  21. /// </summary>
  22. /// <param name="input"></param>
  23. /// <returns></returns>
  24. public async Task Update(UpdateExamSampleInput input)
  25. {
  26. await examSampleService.Update(input);
  27. }
  28. /// <summary>
  29. /// 复制抽样方案信息
  30. /// </summary>
  31. /// <param name="input"></param>
  32. /// <returns></returns>
  33. public async Task Duplicate(BaseId input)
  34. {
  35. await examSampleService.Duplicate(input);
  36. }
  37. /// <summary>
  38. /// 删除监测抽样方案
  39. /// </summary>
  40. /// <param name="input"></param>
  41. /// <returns></returns>
  42. public async Task Del(BaseId input)
  43. {
  44. await examSampleService.Del(input);
  45. }
  46. /// <summary>
  47. /// 保存全抽班级ID列表
  48. /// </summary>
  49. /// <param name="input"></param>
  50. /// <returns></returns>
  51. public async Task SaveExamSampleAllClasses(SaveExamSampleAllClasses input)
  52. {
  53. await examSampleService.SaveExamSampleAllClasses(input);
  54. }
  55. /// <summary>
  56. /// 切换全抽班级
  57. /// </summary>
  58. /// <param name="input"></param>
  59. /// <returns></returns>
  60. public async Task SwitchExamSampleAllClass(SwitchExamSampleAllClassInput input)
  61. {
  62. await examSampleService.SwitchExamSampleAllClass(input);
  63. }
  64. /// <summary>
  65. /// 选定方案
  66. /// </summary>
  67. /// <param name="input"></param>
  68. /// <returns></returns>
  69. public async Task SelectSample(BaseId input)
  70. {
  71. await examSampleService.SelectSample(input);
  72. }
  73. /// <summary>
  74. /// 取消选定
  75. /// </summary>
  76. /// <param name="input"></param>
  77. /// <returns></returns>
  78. public async Task UnselectSample(BaseId input)
  79. {
  80. await examSampleService.UnselectSample(input);
  81. }
  82. /// <summary>
  83. /// 更新机构是否需要上报校考成绩状态
  84. /// </summary>
  85. /// <param name="examPlanId">监测计划ID</param>
  86. /// <returns></returns>
  87. public async Task UpdateOrgReportSchoolExamScoreStatus(int examPlanId)
  88. {
  89. await examSampleService.UpdateOrgReportSchoolExamScoreStatus(examPlanId);
  90. }
  91. /// <summary>
  92. /// 执行抽样
  93. /// </summary>
  94. /// <param name="input">抽样方案ID</param>
  95. /// <returns></returns>
  96. /// <exception cref="Exception"></exception>
  97. public async Task ExecuteSample(BaseId input)
  98. {
  99. await examSampleService.ExecuteSample(input);
  100. }
  101. /// <summary>
  102. /// 导出抽样方案存档文件
  103. /// </summary>
  104. /// <param name="input"></param>
  105. /// <returns></returns>
  106. public async Task<IActionResult> ExportToArchived(BaseId input)
  107. {
  108. var (fileName, fileBytes) = await examSampleService.ExportToArchived(input.Id, false, true);
  109. return new FileContentResult(fileBytes, "application/octet-stream")
  110. {
  111. FileDownloadName = fileName,
  112. };
  113. }
  114. /// <summary>
  115. /// 导出给印刷厂和网阅机构文件
  116. /// </summary>
  117. /// <param name="input"></param>
  118. /// <returns></returns>
  119. public async Task<IActionResult> ExportToPrintshop(BaseId input)
  120. {
  121. var (fileName, fileBytes) = await examSampleService.ExportToPrintshop(input.Id);
  122. return new FileContentResult(fileBytes, "application/octet-stream")
  123. {
  124. FileDownloadName = fileName,
  125. };
  126. }
  127. /// <summary>
  128. /// 导出给学校
  129. /// </summary>
  130. /// <param name="input"></param>
  131. /// <returns></returns>
  132. public async Task<IActionResult> ExportToOrg(BaseId input)
  133. {
  134. var (fileName, fileBytes) = await examSampleService.ExportToOrg(input.Id);
  135. return new FileContentResult(fileBytes, "application/octet-stream")
  136. {
  137. FileDownloadName = fileName,
  138. };
  139. }
  140. /// <summary>
  141. /// 导出抽样统计表
  142. /// </summary>
  143. /// <param name="input"></param>
  144. /// <returns></returns>
  145. public async Task<IActionResult> ExportSampleCount(BaseId input)
  146. {
  147. var (fileName, fileBytes) = await examSampleService.ExportSampleCount(input.Id, true);
  148. return new FileContentResult(fileBytes, "application/octet-stream")
  149. {
  150. FileDownloadName = fileName,
  151. };
  152. }
  153. /// <summary>
  154. /// 导出学校抽样统计表
  155. /// </summary>
  156. /// <param name="input"></param>
  157. /// <returns></returns>
  158. public async Task<IActionResult> ExportSampleCountToOrg(BaseId input)
  159. {
  160. var (fileName, fileBytes) = await examSampleService.ExportSampleCountToOrg(input.Id);
  161. return new FileContentResult(fileBytes, "application/octet-stream")
  162. {
  163. FileDownloadName = fileName,
  164. };
  165. }
  166. /// <summary>
  167. /// 根据ID获取抽样方案
  168. /// </summary>
  169. /// <param name="id">抽样方案ID</param>
  170. /// <returns></returns>
  171. public async Task<ExamSampleOutput> GetById([FromQuery][Required] int id)
  172. {
  173. return await examSampleService.GetById(id);
  174. }
  175. /// <summary>
  176. /// 根据监测计划ID获取全部抽样方案
  177. /// </summary>
  178. /// <param name="examPlanId"></param>
  179. /// <returns></returns>
  180. public async Task<List<ExamSampleOutput>> GetListByExamPlanId([FromQuery][Required] int examPlanId)
  181. {
  182. return await examSampleService.GetListByExamPlanId(examPlanId);
  183. }
  184. /// <summary>
  185. /// 根据监测计划ID获取全部抽样方案的状态
  186. /// </summary>
  187. /// <param name="examPlanId"></param>
  188. /// <returns></returns>
  189. public async Task<List<ExamSampleStatusOutput>> GetStatusListByExamPlanId([FromQuery][Required] int examPlanId)
  190. {
  191. return await examSampleService.GetStatusListByExamPlanId(examPlanId);
  192. }
  193. /// <summary>
  194. /// 查询已发布抽样
  195. /// </summary>
  196. /// <param name="examDataPublishId">监测发布内容ID</param>
  197. /// <param name="type">抽样数据发布类型</param>
  198. /// <returns></returns>
  199. public async Task<ExamSamplePlanOutput> GetByExamDataPublishId([FromQuery][Required] int examDataPublishId, [FromQuery][Required] DataPublishType type)
  200. {
  201. return await examSampleService.GetByExamDataPublishId(examDataPublishId, type);
  202. }
  203. /// <summary>
  204. /// 获取抽样统计表
  205. /// </summary>
  206. /// <param name="id">抽样方案ID</param>
  207. /// <returns></returns>
  208. public async Task<List<ExamSampleCountOutput>> GetSampleCountListById([FromQuery][Required] int id)
  209. {
  210. return await examSampleService.GetSampleCountListById(id);
  211. }
  212. /// <summary>
  213. /// 获取学校抽样统计表
  214. /// </summary>
  215. /// <param name="id"></param>
  216. /// <returns></returns>
  217. public async Task<List<ExamSampleCountOutput>> GetOrgSampleCountListById([FromQuery][Required] int id)
  218. {
  219. return await examSampleService.GetOrgSampleCountListById(id);
  220. }
  221. }