You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

240 lines
8.8 KiB

3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
  1. using AutoMapper.Internal.Mappers;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Shentun.Peis.ItemResultTemplates;
  4. using Shentun.Peis.GuidTypes;
  5. using Shentun.Peis.HelperDto;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using Volo.Abp.Application.Dtos;
  12. using Volo.Abp.Application.Services;
  13. using Volo.Abp.Domain.Repositories;
  14. using Volo.Abp.Identity;
  15. using Shentun.Peis.SexHormoneReferenceRanges;
  16. using Shentun.Peis.Models;
  17. using Microsoft.AspNetCore.Authorization;
  18. using Volo.Abp;
  19. using Shentun.Peis.Asbitems;
  20. using Shentun.Peis.Units;
  21. using SqlSugar;
  22. namespace Shentun.Peis.ItemResultTemplates
  23. {
  24. /// <summary>
  25. /// 项目结果模板
  26. /// </summary>
  27. [ApiExplorerSettings(GroupName = "Work")]
  28. [Authorize]
  29. public class ItemResultTemplateAppService : CrudAppService<
  30. ItemResultTemplate, //The Book entity
  31. ItemResultTemplateDto, //Used to show books
  32. Guid, //Primary key of the book entity
  33. PagedAndSortedResultRequestDto, //Used for paging/sorting
  34. CreateItemResultTemplateDto,
  35. UpdateItemResultTemplateDto>
  36. {
  37. private readonly IRepository<IdentityUser, Guid> _userRepository;
  38. private readonly ItemResultTemplateManager _manager;
  39. private readonly CacheService _cacheService;
  40. public ItemResultTemplateAppService(
  41. IRepository<ItemResultTemplate, Guid> repository,
  42. IRepository<IdentityUser, Guid> userRepository,
  43. ItemResultTemplateManager manager,
  44. CacheService cacheService)
  45. : base(repository)
  46. {
  47. this._userRepository = userRepository;
  48. _manager = manager;
  49. _cacheService = cacheService;
  50. }
  51. /// <summary>
  52. /// 获取通过主键
  53. /// </summary>
  54. /// <param name="id"></param>
  55. /// <returns></returns>
  56. public override async Task<ItemResultTemplateDto> GetAsync(Guid id)
  57. {
  58. var entity = await Repository.FindAsync(o => o.Id == id);
  59. //throw new Exception("标准异常测试");
  60. //throw new BusinessException("业务异常测试");
  61. //throw new UserFriendlyException("友好异常测试");
  62. //throw new EntityNotFoundException("未发现实体异常测试");
  63. //return null;
  64. if (entity == null)
  65. return null;
  66. return ObjectMapper.Map<ItemResultTemplate, ItemResultTemplateDto>(entity);
  67. }
  68. /// <summary>
  69. /// 获取列表 项目结果模板
  70. /// </summary>
  71. /// <param name="input"></param>
  72. /// <returns></returns>
  73. [RemoteService(false)]
  74. public override async Task<PagedResultDto<ItemResultTemplateDto>> GetListAsync(PagedAndSortedResultRequestDto input)
  75. {
  76. int totalCount = await Repository.CountAsync();
  77. var entlist = await Repository.GetPagedListAsync(input.SkipCount, input.MaxResultCount, input.Sorting);
  78. var userList = await _userRepository.GetListAsync();
  79. var entdto = entlist.Select(s => new ItemResultTemplateDto
  80. {
  81. CreationTime = s.CreationTime,
  82. CreatorId = s.CreatorId,
  83. ItemId = s.ItemId,
  84. Id = s.Id,
  85. LastModificationTime = s.LastModificationTime,
  86. LastModifierId = s.LastModifierId,
  87. DiagnosisId = s.DiagnosisId,
  88. SimpleCode = s.SimpleCode,
  89. ResultStatusId = s.ResultStatusId,
  90. Result = s.Result,
  91. IsResultIntoSummary = s.IsResultIntoSummary,
  92. DisplayOrder = s.DisplayOrder,
  93. IsNameIntoSummary = s.IsNameIntoSummary,
  94. CreatorName = EntityHelper.GetSurnameNoSql(userList, s.CreatorId),
  95. LastModifierName = EntityHelper.GetSurnameNoSql(userList, s.LastModifierId)
  96. }).ToList();
  97. return new PagedResultDto<ItemResultTemplateDto>(totalCount, entdto);
  98. }
  99. /// <summary>
  100. /// 获取项目结果模板列表
  101. /// </summary>
  102. /// <returns></returns>
  103. [HttpGet("api/app/ItemResultTemplate/GetItemResultTemplateList")]
  104. public async Task<List<ItemResultTemplateDto>> GetItemResultTemplateListAsync()
  105. {
  106. var entlist = await Repository.GetQueryableAsync();
  107. var entdto = entlist.Select(s => new ItemResultTemplateDto
  108. {
  109. CreationTime = s.CreationTime,
  110. CreatorId = s.CreatorId,
  111. ItemId = s.ItemId,
  112. Id = s.Id,
  113. LastModificationTime = s.LastModificationTime,
  114. LastModifierId = s.LastModifierId,
  115. DiagnosisId = s.DiagnosisId,
  116. SimpleCode = s.SimpleCode,
  117. ResultStatusId = s.ResultStatusId,
  118. Result = s.Result,
  119. IsResultIntoSummary = s.IsResultIntoSummary,
  120. DisplayOrder = s.DisplayOrder,
  121. IsNameIntoSummary = s.IsNameIntoSummary,
  122. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  123. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  124. }).ToList();
  125. return entdto;
  126. }
  127. /// <summary>
  128. /// 获取项目结果模板列表 根据项目ID
  129. /// </summary>
  130. /// <param name="ItemId">项目ID</param>
  131. /// <returns></returns>
  132. public async Task<List<ItemResultTemplateDto>> GetListInItemIdAsync(Guid ItemId)
  133. {
  134. var entlist = await Repository.GetListAsync(m => m.ItemId == ItemId);
  135. var entdto = entlist.Select(s => new ItemResultTemplateDto
  136. {
  137. CreationTime = s.CreationTime,
  138. CreatorId = s.CreatorId,
  139. ItemId = s.ItemId,
  140. Id = s.Id,
  141. LastModificationTime = s.LastModificationTime,
  142. LastModifierId = s.LastModifierId,
  143. DiagnosisId = s.DiagnosisId,
  144. SimpleCode = s.SimpleCode,
  145. ResultStatusId = s.ResultStatusId,
  146. Result = s.Result,
  147. IsResultIntoSummary = s.IsResultIntoSummary,
  148. DisplayOrder = s.DisplayOrder,
  149. IsNameIntoSummary = s.IsNameIntoSummary,
  150. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  151. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  152. }).ToList();
  153. return entdto;
  154. }
  155. /// <summary>
  156. /// 创建
  157. /// </summary>
  158. /// <param name="input"></param>
  159. /// <returns></returns>
  160. public override async Task<ItemResultTemplateDto> CreateAsync(CreateItemResultTemplateDto input)
  161. {
  162. var createEntity = ObjectMapper.Map<CreateItemResultTemplateDto, ItemResultTemplate>(input);
  163. var entity = await _manager.CreateAsync(createEntity);
  164. entity = await Repository.InsertAsync(entity);
  165. var dto = ObjectMapper.Map<ItemResultTemplate, ItemResultTemplateDto>(entity);
  166. return dto;
  167. }
  168. /// <summary>
  169. /// 更新
  170. /// </summary>
  171. /// <param name="id"></param>
  172. /// <param name="input"></param>
  173. /// <returns></returns>
  174. public override async Task<ItemResultTemplateDto> UpdateAsync(Guid id, UpdateItemResultTemplateDto input)
  175. {
  176. var entity = await Repository.GetAsync(id);
  177. var sourceEntity = ObjectMapper.Map<UpdateItemResultTemplateDto, ItemResultTemplate>(input);
  178. _manager.UpdateAsync(sourceEntity, entity);
  179. entity = await Repository.UpdateAsync(entity);
  180. return ObjectMapper.Map<ItemResultTemplate, ItemResultTemplateDto>(entity);
  181. }
  182. /// <summary>
  183. /// 删除
  184. /// </summary>
  185. /// <param name="id"></param>
  186. /// <returns></returns>
  187. public override Task DeleteAsync(Guid id)
  188. {
  189. return base.DeleteAsync(id);
  190. }
  191. /// <summary>
  192. /// 修改排序 置顶,置底
  193. /// </summary>
  194. /// <param name="id">需要修改的ID</param>
  195. /// <param name="SortType">修改方式:1 置顶 2 置底</param>
  196. /// <returns></returns>
  197. [HttpPut("api/app/itemresulttemplate/updatemanysort")]
  198. public async Task UpdateManySortAsync(Guid id, int SortType)
  199. {
  200. await _manager.UpdateManySortAsync(id, SortType);
  201. }
  202. /// <summary>
  203. /// 修改排序 拖拽
  204. /// </summary>
  205. /// <param name="input"></param>
  206. /// <returns></returns>
  207. [HttpPut("api/app/itemresulttemplate/updatesortmany")]
  208. public async Task UpdateSortManyAsync(UpdateSortManyDto input)
  209. {
  210. await _manager.UpdateSortManyAsync(input);
  211. }
  212. }
  213. }