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.

161 lines
6.4 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using AutoMapper.Internal.Mappers;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Shentun.Peis.Asbitems;
  4. using Shentun.Peis.Models;
  5. using Shentun.Peis.MedicalPackageDetails;
  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.Services;
  12. using Volo.Abp.Domain.Repositories;
  13. using Volo.Abp.Identity;
  14. using Volo.Abp;
  15. using Microsoft.EntityFrameworkCore;
  16. using Microsoft.AspNetCore.Authorization;
  17. using Shentun.Peis.CustomerOrgGroupDetails;
  18. namespace Shentun.Peis.MedicalPackageDetails
  19. {
  20. /// <summary>
  21. /// 体检套餐包含的组合项目
  22. /// </summary>
  23. [ApiExplorerSettings(GroupName = "Work")]
  24. [Authorize]
  25. public class MedicalPackageDetailAppService : ApplicationService
  26. {
  27. private readonly IRepository<MedicalPackageDetail> _repository;
  28. private readonly IRepository<IdentityUser, Guid> _userRepository;
  29. private readonly MedicalPackageDetailManager _manager;
  30. public MedicalPackageDetailAppService(IRepository<MedicalPackageDetail> repository, IRepository<IdentityUser, Guid> userRepository, MedicalPackageDetailManager manager)
  31. {
  32. this._repository = repository;
  33. this._userRepository = userRepository;
  34. this._manager = manager;
  35. }
  36. ///// <summary>
  37. ///// 创建
  38. ///// </summary>
  39. ///// <param name="input"></param>
  40. ///// <returns></returns>
  41. //[HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetail")]
  42. //public async Task<MedicalPackageDetailDto> CreateMedicalPackageDetailAsync(CreateMedicalPackageDetailDto input)
  43. //{
  44. // var createEntity = ObjectMapper.Map<CreateMedicalPackageDetailDto, MedicalPackageDetail>(input);
  45. // var entity = await _repository.InsertAsync(createEntity);
  46. // var dto = ObjectMapper.Map<MedicalPackageDetail, MedicalPackageDetailDto>(entity);
  47. // return dto;
  48. //}
  49. /// <summary>
  50. /// 批量创建 先删除
  51. /// </summary>
  52. /// <param name="input"></param>
  53. /// <returns></returns>
  54. /// <exception cref="UserFriendlyException"></exception>
  55. [HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetailmany")]
  56. public async Task CreateMedicalPackageDetailManyAsync(CreateMedicalPackageDetailManyDto input)
  57. {
  58. //删除套餐明细 按套餐ID
  59. await _manager.CheckAndDeleteAsync(input.MedicalPackageId);
  60. if (input.Details.Any())
  61. {
  62. List<MedicalPackageDetail> medicalPackageDetails = new List<MedicalPackageDetail>();
  63. foreach (var details in input.Details)
  64. {
  65. var entity = new MedicalPackageDetail
  66. {
  67. Amount = details.Amount,
  68. Price = details.Price,
  69. MedicalPackageId = input.MedicalPackageId,
  70. AsbitemId = details.AsbitemId
  71. };
  72. medicalPackageDetails.Add(_manager.CreateAsync(entity));
  73. }
  74. if (medicalPackageDetails.Count > 0)
  75. {
  76. await _repository.InsertManyAsync(medicalPackageDetails);
  77. }
  78. }
  79. }
  80. ///// <summary>
  81. ///// 删除
  82. ///// </summary>
  83. ///// <param name="MedicalPackageId">体检套餐ID</param>
  84. ///// <param name="AsbitemId">组合项目ID</param>
  85. ///// <returns></returns>
  86. //public async Task DeleteAsync(Guid MedicalPackageId, Guid AsbitemId)
  87. //{
  88. // await _repository.DeleteAsync(d => d.AsbitemId == AsbitemId && d.MedicalPackageId == MedicalPackageId);
  89. //}
  90. /// <summary>
  91. /// 获取列表 体检套餐包含的组合项目
  92. /// </summary>
  93. /// <param name="input"></param>
  94. /// <returns></returns>
  95. [HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")]
  96. public async Task<List<MedicalPackageDetailDto>> GetMedicalPackageInAsbitemAsync(MedicalPackageInAsbitemDto input)
  97. {
  98. var entlist = (await _repository.GetDbSetAsync()).Include(c => c.Asbitem)
  99. .Where(m => m.MedicalPackageId == input.MedicalPackageId).ToList();
  100. var userList = await _userRepository.GetListAsync();
  101. var entdto = entlist.Select(s => new MedicalPackageDetailDto
  102. {
  103. ClinicalMeaning = s.Asbitem.ClinicalMeaning,
  104. CreationTime = s.Asbitem.CreationTime,
  105. CreatorId = s.Asbitem.CreatorId,
  106. DefaultResult = s.Asbitem.DefaultResult,
  107. DeviceTypeId = s.Asbitem.DeviceTypeId,
  108. DiagnosisFunction = s.Asbitem.DiagnosisFunction,
  109. DisplayName = s.Asbitem.DisplayName,
  110. DisplayOrder = s.Asbitem.DisplayOrder,
  111. ForSexId = s.Asbitem.ForSexId,
  112. Id = s.Asbitem.Id,
  113. //InvoiceItemTypeId = s.Asbitem.InvoiceItemTypeId,
  114. IsActive = s.Asbitem.IsActive,
  115. IsBeforeEat = s.Asbitem.IsBeforeEat,
  116. IsCheck = s.Asbitem.IsCheck,
  117. IsContinueProcess = s.Asbitem.IsContinueProcess,
  118. IsDiagnosisFunction = s.Asbitem.IsDiagnosisFunction,
  119. IsItemResultMerger = s.Asbitem.IsItemResultMerger,
  120. IsPictureRotate = s.Asbitem.IsPictureRotate,
  121. ItemTypeId = s.Asbitem.ItemTypeId,
  122. LastModificationTime = s.Asbitem.LastModificationTime,
  123. LastModifierId = s.Asbitem.LastModifierId,
  124. Price = s.Asbitem.Price,
  125. QueueTime = s.Asbitem.QueueTime,
  126. ShortName = s.Asbitem.ShortName,
  127. SimpleCode = s.Asbitem.SimpleCode,
  128. AsbitemMoney = s.Amount * s.Asbitem.Price,
  129. Discount = s.Asbitem.Price == 0 ? 100 : Math.Round(s.Price * 100 / s.Asbitem.Price, 2),
  130. MedicalPackageDetailAmount = s.Amount,
  131. MedicalPackageDetailMoney = s.Amount * s.Price,
  132. MedicalPackageDetailPrice = s.Price,
  133. CreatorName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.CreatorId),
  134. LastModifierName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.LastModifierId)
  135. }).ToList();
  136. return entdto;
  137. }
  138. }
  139. }