diff --git a/src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs b/src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs index baa13c6..bbb2df3 100644 --- a/src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs +++ b/src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs @@ -29,11 +29,13 @@ namespace Shentun.Peis.AsbitemDetails { private readonly IRepository _repository; private readonly IRepository _userRepository; + private readonly AsbitemDetailManager _manager; - public AsbitemDetailAppService(IRepository repository, IRepository userRepository) + public AsbitemDetailAppService(IRepository repository, IRepository userRepository, AsbitemDetailManager manager) { this._repository = repository; this._userRepository = userRepository; + this._manager = manager; } /// @@ -59,27 +61,31 @@ namespace Shentun.Peis.AsbitemDetails [HttpPost("api/app/asbitemdetail/createasbitemdetailmany")] public async Task CreateAsbitemDetailManyAsync(CreateAsbitemDetailDto input) { - - await _repository.DeleteAsync(d => d.AsbitemId == input.AsbitemId); + await _manager.CheckAndDeleteAsync(input.AsbitemId); if (input.Details.Any()) { - var createEntity = ObjectMapper.Map, List>(input.Details); - await _repository.InsertManyAsync(createEntity); + List asbitemDetails = new List(); + foreach (var details in input.Details) + { + var entity = new AsbitemDetail + { + AsbitemId = input.AsbitemId, + ItemId = details.ItemId + }; + asbitemDetails.Add(_manager.CreateAsbitemAsync(entity)); + } + + if (asbitemDetails.Count > 0) + { + await _repository.InsertManyAsync(asbitemDetails); + } + } } - /// - /// 删除 - /// - /// - /// - /// - public async Task DeleteAsync(Guid AsbitemId, Guid ItemId) - { - await _repository.DeleteAsync(d => d.AsbitemId == AsbitemId && d.ItemId == ItemId); - } + /// diff --git a/src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs b/src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs index 26421da..928206a 100644 --- a/src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs +++ b/src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs @@ -22,11 +22,17 @@ namespace Shentun.Peis.AsbitemGuides { private readonly IRepository _repository; private readonly IRepository _userRepository; + private readonly AsbitemGuideManager _manager; - public AsbitemGuideAppService(IRepository repository, IRepository userRepository) + public AsbitemGuideAppService( + IRepository repository, + IRepository userRepository, + AsbitemGuideManager manager + ) { this._repository = repository; this._userRepository = userRepository; + this._manager = manager; } @@ -39,7 +45,8 @@ namespace Shentun.Peis.AsbitemGuides [HttpPost("api/app/asbitemguide/createasbitemguidemany")] public async Task CreateAsbitemGuideManyAsync(CreateAsbitemGuideManyDto input) { - await _repository.DeleteAsync(d => d.AsbitemId == input.AsbitemId); //先删除组合项目下的所有信息 + await _manager.CheckAndDeleteAsync(input.AsbitemId); //先删除组合项目下的所有信息 + if (input.Deatils.Any()) { List asbitemGuides = new List(); @@ -55,8 +62,8 @@ namespace Shentun.Peis.AsbitemGuides Guide = item.Guide, OrganizationUnitId = item.OrganizationUnitId }; - - asbitemGuides.Add(entity); + asbitemGuides.Add(_manager.CreateAsbitemAsync(entity)); + } await _repository.InsertManyAsync(asbitemGuides); diff --git a/src/Shentun.Peis.Domain/AsbitemDetails/AsbitemDetailManager.cs b/src/Shentun.Peis.Domain/AsbitemDetails/AsbitemDetailManager.cs index ac6d054..42e3600 100644 --- a/src/Shentun.Peis.Domain/AsbitemDetails/AsbitemDetailManager.cs +++ b/src/Shentun.Peis.Domain/AsbitemDetails/AsbitemDetailManager.cs @@ -1,4 +1,5 @@ -using Shentun.Peis.MedicalPackageDetails; +using AutoMapper.Internal.Mappers; +using Shentun.Peis.MedicalPackageDetails; using Shentun.Peis.Models; using System; using System.Collections.Generic; @@ -22,6 +23,20 @@ namespace Shentun.Peis.AsbitemDetails this._repository = repository; } + /// + /// 创建 + /// + /// + /// + public AsbitemDetail CreateAsbitemAsync(AsbitemDetail entity) + { + DataHelper.CheckGuidIsDefaultValue(entity.AsbitemId, "组合项目编号"); + DataHelper.CheckGuidIsDefaultValue(entity.ItemId, "项目编号"); + + return entity; + } + + /// /// 删除组合项目明细 /// diff --git a/src/Shentun.Peis.Domain/AsbitemGuides/AsbitemGuideManager.cs b/src/Shentun.Peis.Domain/AsbitemGuides/AsbitemGuideManager.cs index 66b4e4d..cf19f56 100644 --- a/src/Shentun.Peis.Domain/AsbitemGuides/AsbitemGuideManager.cs +++ b/src/Shentun.Peis.Domain/AsbitemGuides/AsbitemGuideManager.cs @@ -5,6 +5,8 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TencentCloud.Ame.V20190916.Models; +using Volo.Abp; using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; @@ -22,6 +24,48 @@ namespace Shentun.Peis.AsbitemGuides } + /// + /// 创建 + /// + /// + /// + public AsbitemGuide CreateAsbitemAsync(AsbitemGuide entity) + { + DataHelper.CheckGuidIsDefaultValue(entity.AsbitemId, "组合项目编号"); + DataHelper.CheckGuidIsDefaultValue(entity.OrganizationUnitId, "体检中心"); + if (entity.ForSexId != ForSexFlag.All + && entity.ForSexId != ForSexFlag.Male + && entity.ForSexId != ForSexFlag.Female + ) + { + throw new ArgumentException($"适用性别参数为:{entity.ForSexId},是无效值,只能为'{ForSexFlag.All}','{ForSexFlag.Male}','{ForSexFlag.Female}'"); + } + DataHelper.CheckStringIsNull(entity.Guide, "指引单内容"); + + return entity; + } + + + /// + /// 删除指引信息 根据组合项目ID + /// + /// 组合项目ID + /// + /// + public async Task CheckAndDeleteAsync(Guid AsbitemId) + { + var asbitemGuideList = await _asbitemGuideRepository.GetListAsync(m => m.AsbitemId == AsbitemId); + if (asbitemGuideList.Any()) + { + + //删除指引信息 + await _asbitemGuideRepository.DeleteManyAsync(asbitemGuideList); + + } + + } + + /// /// 获取指引单内容(根据体检中心、组合项目ID、性别ID) /// diff --git a/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs b/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs index f908c27..ca95c57 100644 --- a/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs +++ b/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs @@ -118,13 +118,13 @@ namespace Shentun.Peis.Models [MaxLength(1)] public char IsPictureRotate { get; set; } /// - /// 是检查项目 + /// 是否为检查项目 /// [Column("is_check")] [MaxLength(1)] public char IsCheck { get; set; } /// - /// 是启用 + /// 是否启用 /// [Column("is_active")] [MaxLength(1)] diff --git a/src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs b/src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs index ba7d6ee..1092b3f 100644 --- a/src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs +++ b/src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs @@ -1,6 +1,7 @@ using Microsoft.EntityFrameworkCore; using Shentun.Peis.AsbitemDetails; using Shentun.Peis.CustomerOrgGroupDetails; +using Shentun.Peis.Enums; using Shentun.Peis.HelperDto; using Shentun.Peis.MedicalPackageDetails; using Shentun.Peis.Models; @@ -74,7 +75,7 @@ namespace Shentun.Peis.Asbitems Asbitem entity ) { - DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + Verify(entity); await EntityHelper.CheckSameName(_repository, entity.DisplayName); return new Asbitem { @@ -111,10 +112,10 @@ namespace Shentun.Peis.Asbitems Asbitem targetEntity ) { - DataHelper.CheckStringIsNull(sourceEntity.DisplayName, "名称"); + DataHelper.CheckEntityIsNull(targetEntity); + Verify(sourceEntity); if (sourceEntity.DisplayName != targetEntity.DisplayName) { - await EntityHelper.CheckSameName(_repository, sourceEntity.DisplayName, targetEntity); targetEntity.DisplayName = sourceEntity.DisplayName; targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.DisplayName); @@ -143,8 +144,33 @@ namespace Shentun.Peis.Asbitems } + /// + /// 验证新增、修改字段 + /// + /// + /// + private void Verify(Asbitem entity) + { + DataHelper.CheckEntityIsNull(entity); + DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + if (entity.ForSexId != ForSexFlag.All + && entity.ForSexId != ForSexFlag.Male + && entity.ForSexId != ForSexFlag.Female + ) + { + throw new ArgumentException($"适用性别参数为:{entity.ForSexId},是无效值,只能为'{ForSexFlag.All}','{ForSexFlag.Male}','{ForSexFlag.Female}'"); + } + DataHelper.CheckGuidIsDefaultValue(entity.ItemTypeId, "项目类别"); + DataHelper.CheckGuidIsDefaultValue(entity.InvoiceItemTypeId, "发票类别"); + DataHelper.CheckCharIsYOrN(entity.IsItemResultMerger, "是否合并项目结果"); + DataHelper.CheckCharIsYOrN(entity.IsBeforeEat, "是否餐前项目"); + DataHelper.CheckCharIsYOrN(entity.IsDiagnosisFunction, "是否启用诊断函数"); + DataHelper.CheckCharIsYOrN(entity.IsContinueProcess, "诊断函数处理完毕后继续处理"); + DataHelper.CheckCharIsYOrN(entity.IsPictureRotate, "体检报告图片旋转90°"); + DataHelper.CheckCharIsYOrN(entity.IsCheck, "是否为检查项目"); + DataHelper.CheckCharIsYOrN(entity.IsActive, "是否启用"); + } - /// /// 修改排序 置顶,置底 diff --git a/src/Shentun.Peis.Domain/Items/ItemManager.cs b/src/Shentun.Peis.Domain/Items/ItemManager.cs index bfa3d0f..4041e81 100644 --- a/src/Shentun.Peis.Domain/Items/ItemManager.cs +++ b/src/Shentun.Peis.Domain/Items/ItemManager.cs @@ -149,7 +149,7 @@ namespace Shentun.Peis.Items && entity.ReferenceRangeTypeFlag != ItemReferenceRangeTypeFlag.Character && entity.ReferenceRangeTypeFlag != ItemReferenceRangeTypeFlag.SexHormone) { - throw new ArgumentException($"参考范围类别参数为:{entity.ReferenceRangeTypeFlag},是无效值,只能为'0','1','2','3'"); + throw new ArgumentException($"参考范围类别参数为:{entity.ReferenceRangeTypeFlag},是无效值,只能为'{ItemReferenceRangeTypeFlag.None}','{ItemReferenceRangeTypeFlag.Number}','{ItemReferenceRangeTypeFlag.Character}','{ItemReferenceRangeTypeFlag.SexHormone}'"); } } diff --git a/src/Shentun.Peis.Domain/ReferenceRanges/ReferenceRangeManager.cs b/src/Shentun.Peis.Domain/ReferenceRanges/ReferenceRangeManager.cs index 4f55ec7..f4ecd0e 100644 --- a/src/Shentun.Peis.Domain/ReferenceRanges/ReferenceRangeManager.cs +++ b/src/Shentun.Peis.Domain/ReferenceRanges/ReferenceRangeManager.cs @@ -117,7 +117,7 @@ namespace Shentun.Peis.ReferenceRanges && entity.ReferenceRangeTypeFlag != ItemReferenceRangeTypeFlag.SexHormone ) { - throw new ArgumentException($"参考范围类别参数为:{entity.ReferenceRangeTypeFlag},是无效值,只能为'0','1','2','3'"); + throw new ArgumentException($"参考范围类别参数为:{entity.ReferenceRangeTypeFlag},是无效值,只能为'{ItemReferenceRangeTypeFlag.None}','{ItemReferenceRangeTypeFlag.Number}','2{ItemReferenceRangeTypeFlag.Character}','{ItemReferenceRangeTypeFlag.SexHormone}'"); } if (entity.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Character)