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.

142 lines
5.0 KiB

3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 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
3 years ago
3 years ago
3 years ago
  1. using AutoMapper.Internal.Mappers;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Shentun.Peis.Diagnosises;
  4. using Shentun.Peis.AsbitemDetails;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using Volo.Abp.Application.Services;
  11. using Volo.Abp.Domain.Repositories;
  12. using Volo.Abp.Identity;
  13. using TencentCloud.Ame.V20190916.Models;
  14. using Microsoft.EntityFrameworkCore;
  15. using Shentun.Peis.Items;
  16. using Volo.Abp;
  17. using Shentun.Peis.Models;
  18. using Microsoft.AspNetCore.Authorization;
  19. namespace Shentun.Peis.AsbitemDetails
  20. {
  21. /// <summary>
  22. /// 组合项目包含的小项目
  23. /// </summary>
  24. [ApiExplorerSettings(GroupName = "Work")]
  25. [Authorize]
  26. public class AsbitemDetailAppService : ApplicationService
  27. {
  28. private readonly IRepository<AsbitemDetail> _repository;
  29. private readonly IRepository<IdentityUser, Guid> _userRepository;
  30. private readonly AsbitemDetailManager _manager;
  31. public AsbitemDetailAppService(IRepository<AsbitemDetail> repository, IRepository<IdentityUser, Guid> userRepository, AsbitemDetailManager manager)
  32. {
  33. this._repository = repository;
  34. this._userRepository = userRepository;
  35. this._manager = manager;
  36. }
  37. /// <summary>
  38. /// 创建
  39. /// </summary>
  40. /// <param name="input"></param>
  41. /// <returns></returns>
  42. [RemoteService(false)]
  43. public async Task<AsbitemDetailDto> CreateAsync(CreateAsbitemDetailDto input)
  44. {
  45. var createEntity = ObjectMapper.Map<CreateAsbitemDetailDto, AsbitemDetail>(input);
  46. var entity = await _repository.InsertAsync(createEntity);
  47. var dto = ObjectMapper.Map<AsbitemDetail, AsbitemDetailDto>(entity);
  48. return dto;
  49. }
  50. /// <summary>
  51. /// 批量创建 先删除
  52. /// </summary>
  53. /// <param name="input"></param>
  54. /// <returns></returns>
  55. [HttpPost("api/app/asbitemdetail/createasbitemdetailmany")]
  56. public async Task CreateAsbitemDetailManyAsync(CreateAsbitemDetailDto input)
  57. {
  58. await _manager.CheckAndDeleteAsync(input.AsbitemId);
  59. if (input.Details.Any())
  60. {
  61. List<AsbitemDetail> asbitemDetails = new List<AsbitemDetail>();
  62. foreach (var details in input.Details)
  63. {
  64. var entity = new AsbitemDetail
  65. {
  66. AsbitemId = input.AsbitemId,
  67. ItemId = details.ItemId
  68. };
  69. asbitemDetails.Add(_manager.CreateAsbitemAsync(entity));
  70. }
  71. if (asbitemDetails.Count > 0)
  72. {
  73. await _repository.InsertManyAsync(asbitemDetails);
  74. }
  75. }
  76. }
  77. /// <summary>
  78. /// 获取列表 组合项目包含的小项目
  79. /// </summary>
  80. /// <param name="input"></param>
  81. /// <returns></returns>
  82. public async Task<List<ItemDto>> GetAsbitemDetailInItemAsync(AsbitemDetailInItemDto input)
  83. {
  84. var entlist = _repository.GetDbSetAsync().Result.Include(c => c.Item)
  85. .Where(m => m.AsbitemId == input.AsbitemId).ToList();
  86. var userList = await _userRepository.GetListAsync();
  87. var entdto = entlist.Select(s => new ItemDto
  88. {
  89. CreationTime = s.Item.CreationTime,
  90. CreatorId = s.Item.CreatorId,
  91. DisplayName = s.Item.DisplayName,
  92. DisplayOrder = s.Item.DisplayOrder,
  93. Id = s.Item.Id,
  94. ItemTypeId = s.Item.ItemTypeId,
  95. LastModificationTime = s.Item.LastModificationTime,
  96. LastModifierId = s.Item.LastModifierId,
  97. SimpleCode = s.Item.SimpleCode,
  98. CalculationFunction = s.Item.CalculationFunction,
  99. DefaultResult = s.Item.DefaultResult,
  100. DiagnosisFunction = s.Item.DiagnosisFunction,
  101. EnglishShortName = s.Item.EnglishShortName,
  102. InputCheck = s.Item.InputCheck,
  103. IsActive = s.Item.IsActive,
  104. IsCalculationItem = s.Item.IsCalculationItem,
  105. IsContinueProcess = s.Item.IsContinueProcess,
  106. IsDiagnosisFunction = s.Item.IsDiagnosisFunction,
  107. IsNameIntoSummary = s.Item.IsNameIntoSummary,
  108. IsProduceSummary = s.Item.IsProduceSummary,
  109. Price = s.Item.Price,
  110. PriceItemId = s.Item.PriceItemId,
  111. ReferenceRangeTypeFlag = s.Item.ReferenceRangeTypeFlag,
  112. ResultTemplateTypeFlag = s.Item.ResultTemplateTypeFlag,
  113. UnitId = s.Item.UnitId,
  114. CreatorName = EntityHelper.GetUserNameNoSql(userList, s.Item.CreatorId),
  115. LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.Item.LastModifierId)
  116. }).ToList();
  117. return entdto;
  118. }
  119. }
  120. }