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.

141 lines
5.3 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using Shentun.Peis.Enums;
  2. using Shentun.Peis.Models;
  3. using Shentun.Utilities;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Volo.Abp.Domain.Repositories;
  10. using Volo.Abp;
  11. using Volo.Abp.Domain.Services;
  12. using Shentun.Peis.HelperDto;
  13. using System.Reflection;
  14. namespace Shentun.Peis.ThirdInterfaces
  15. {
  16. public class ThirdInterfaceManager : DomainService
  17. {
  18. private readonly IRepository<ThirdInterface, Guid> _thirdInterfaceRepository;
  19. public ThirdInterfaceManager(
  20. IRepository<ThirdInterface, Guid> thirdInterfaceRepository
  21. )
  22. {
  23. _thirdInterfaceRepository = thirdInterfaceRepository;
  24. }
  25. /// <summary>
  26. /// 创建
  27. /// </summary>
  28. /// <param name="entity"></param>
  29. /// <returns></returns>
  30. public async Task<ThirdInterface> CreateAsync(
  31. ThirdInterface entity
  32. )
  33. {
  34. Verify(entity);
  35. return new ThirdInterface
  36. {
  37. DisplayName = entity.DisplayName,
  38. DisplayOrder = await EntityHelper.CreateMaxDisplayOrder<ThirdInterface>(_thirdInterfaceRepository),
  39. IsActive = entity.IsActive,
  40. MedicalCenterId = entity.MedicalCenterId,
  41. ParmValue = entity.ParmValue,
  42. ThirdInterfaceType = entity.ThirdInterfaceType
  43. };
  44. }
  45. /// <summary>
  46. /// 更新
  47. /// </summary>
  48. /// <param name="sourceEntity"></param>
  49. /// <param name="targetEntity"></param>
  50. /// <returns></returns>
  51. public void UpdateAsync(
  52. ThirdInterface sourceEntity,
  53. ThirdInterface targetEntity
  54. )
  55. {
  56. DataHelper.CheckEntityIsNull(targetEntity);
  57. Verify(sourceEntity);
  58. if (sourceEntity.DisplayName != targetEntity.DisplayName)
  59. {
  60. targetEntity.DisplayName = sourceEntity.DisplayName;
  61. }
  62. targetEntity.IsActive = sourceEntity.IsActive;
  63. targetEntity.MedicalCenterId = sourceEntity.MedicalCenterId;
  64. targetEntity.ParmValue = sourceEntity.ParmValue;
  65. targetEntity.ThirdInterfaceType = sourceEntity.ThirdInterfaceType;
  66. }
  67. /// <summary>
  68. /// 删除项目时,同步删除项目结果模板( item_result_template)、参考范围(reference_range)、结果匹配(item_result_match)、组合项目包含的项目(asbitem_detail),项目模板明细(ItemTemplateDetail)。
  69. /// </summary>
  70. /// <param name="id"></param>
  71. /// <returns></returns>
  72. /// <exception cref="UserFriendlyException"></exception>
  73. public async Task CheckAndDeleteAsync(Guid id)
  74. {
  75. await _thirdInterfaceRepository.DeleteAsync(id);
  76. }
  77. /// <summary>
  78. /// 修改排序 置顶,置底
  79. /// </summary>
  80. /// <param name="id">需要修改的ID</param>
  81. /// <param name="SortType">修改方式:1 置顶 2 置底</param>
  82. /// <returns></returns>
  83. public async Task UpdateManySortAsync(Guid id, int SortType)
  84. {
  85. await EntityHelper.UpdateManySortAsync(_thirdInterfaceRepository, id, SortType);
  86. }
  87. /// <summary>
  88. /// 修改排序 拖拽
  89. /// </summary>
  90. /// <typeparam name="TEntity"></typeparam>
  91. /// <param name="repository"></param>
  92. /// <param name="input"></param>
  93. /// <returns></returns>
  94. public async Task UpdateSortManyAsync(UpdateSortManyDto input)
  95. {
  96. await EntityHelper.UpdateSortManyAsync(_thirdInterfaceRepository, input);
  97. }
  98. private void Verify(ThirdInterface entity)
  99. {
  100. DataHelper.CheckEntityIsNull(entity);
  101. DataHelper.CheckStringIsNull(entity.DisplayName, "名称");
  102. DataHelper.CheckStringIsNull(entity.ParmValue, "配置参数");
  103. DataHelper.CheckCharIsYOrN(entity.IsActive, "是否启用");
  104. Type type = typeof(ThirdInterfaceTypeFlag);
  105. //从规定的约束内搜索字段
  106. //约束有是静态成员,是公共成员,和返回父级的公共静态成员,
  107. //FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy);
  108. //if (fields.Where(o=>o.GetValue(null) == entity.ThirdInterfaceType).Count() == 0)
  109. //{
  110. // throw new ArgumentException($"接口类型参数为:{entity.ThirdInterfaceType},是无效值");
  111. //}
  112. //if (entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.LisRequest
  113. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.ChargeRequest
  114. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.ImportLisResult
  115. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.ImportPacsResult
  116. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.ImportPatientRegister
  117. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.TranToWebPeis
  118. // && entity.ThirdInterfaceType != ThirdInterfaceTypeFlag.WebAppoint)
  119. //{
  120. // throw new ArgumentException($"接口类型参数为:{entity.ThirdInterfaceType},是无效值");
  121. //}
  122. }
  123. }
  124. }