diff --git a/src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs b/src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs index b23add0..010a38d 100644 --- a/src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs +++ b/src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs @@ -31,11 +31,17 @@ namespace Shentun.Peis.DiagnosisTemplateDetails { private readonly IRepository _repository; private readonly IRepository _userRepository; + private readonly DiagnosisTemplateDetailManager _manager; - public DiagnosisTemplateDetailAppService(IRepository repository, IRepository userRepository) + public DiagnosisTemplateDetailAppService( + IRepository repository, + IRepository userRepository, + DiagnosisTemplateDetailManager manager + ) { this._repository = repository; this._userRepository = userRepository; + this._manager = manager; } @@ -49,13 +55,27 @@ namespace Shentun.Peis.DiagnosisTemplateDetails [HttpPost("api/app/diagnosistemplatedetail/creatediagnosistemplatedetailmany")] public async Task CreateDiagnosisTemplateDetailManyAsync(CreateDiagnosisTemplateDetailDto input) { - - await _repository.DeleteAsync(d => d.DiagnosisTemplateId == input.DiagnosisTemplateId); + //按诊断模板ID删除诊断模板包含的诊断明细 + await _manager.CheckAndDeleteInDiagnosisTemplateIdAsync(input.DiagnosisTemplateId); if (input.Details.Any()) { - var createEntity = ObjectMapper.Map, List>(input.Details); - await _repository.InsertManyAsync(createEntity); + List diagnosisTemplateDetails = new List(); + foreach (var details in input.Details) + { + var entity = new DiagnosisTemplateDetail + { + DiagnosisId = details.DiagnosisId, + DiagnosisTemplateId = input.DiagnosisTemplateId + }; + diagnosisTemplateDetails.Add(_manager.CreateAsbitemAsync(entity)); + } + + if (diagnosisTemplateDetails.Count > 0) + { + await _repository.InsertManyAsync(diagnosisTemplateDetails); + } + } } @@ -72,7 +92,7 @@ namespace Shentun.Peis.DiagnosisTemplateDetails { - var entlist =(await _repository.GetDbSetAsync()).Include(c => c.Diagnosis) + var entlist = (await _repository.GetDbSetAsync()).Include(c => c.Diagnosis) .Where(m => m.DiagnosisTemplateId == input.DiagnosisTemplateId).ToList(); var userList = await _userRepository.GetListAsync(); diff --git a/src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs b/src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs index 8b51878..80b53bc 100644 --- a/src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs +++ b/src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs @@ -63,6 +63,7 @@ namespace Shentun.Peis.DiagnosisTemplates /// /// /// + [RemoteService(false)] public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) { return await base.GetListAsync(input); @@ -135,6 +136,7 @@ namespace Shentun.Peis.DiagnosisTemplates entity = await Repository.UpdateAsync(entity); return ObjectMapper.Map(entity); } + /// /// 删除 /// @@ -145,10 +147,7 @@ namespace Shentun.Peis.DiagnosisTemplates await _manager.CheckAndDeleteAsync(id); } - - - - + /// /// 修改排序 置顶,置底 /// diff --git a/src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs b/src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs index d73ffea..ac9057e 100644 --- a/src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs +++ b/src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TencentCloud.Ame.V20190916.Models; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; @@ -20,12 +21,15 @@ namespace Shentun.Peis.Suggestions public class SuggestionAppService : ApplicationService { private readonly IRepository _suggestionRepository; + private readonly SuggestionManager _manager; public SuggestionAppService( - IRepository suggestionRepository + IRepository suggestionRepository, + SuggestionManager manager ) { this._suggestionRepository = suggestionRepository; + this._manager = manager; } /// @@ -36,29 +40,31 @@ namespace Shentun.Peis.Suggestions [HttpPost("api/app/suggestion/createsuggestionmany")] public async Task CreateSuggestionManyAsync(CreateSuggestionManyDto input) { - - await _suggestionRepository.DeleteAsync(d => d.DiagnosisId == input.DiagnosisId); + //先按诊断ID删除所有建议 + await _manager.CheckAndDeleteInDiagnosisIdAsync(input.DiagnosisId); if (input.Details.Any()) { - List suggestionList = new List(); - + List suggestions = new List(); foreach (var item in input.Details) { - - var suggestionEntity = new Suggestion + var entity = new Suggestion { - DiagnosisId = item.DiagnosisId, - SuggestionContent = item.SuggestionContent, - DisplayOrder = input.Details.IndexOf(item) + 1 + DiagnosisId = input.DiagnosisId, + DisplayOrder = input.Details.IndexOf(item) + 1, + SuggestionContent = item.SuggestionContent }; - suggestionList.Add(suggestionEntity); + suggestions.Add(_manager.CreateAsbitemAsync(entity)); + } + if (suggestions.Count > 0) + { + await _suggestionRepository.InsertManyAsync(suggestions); } - await _suggestionRepository.InsertManyAsync(suggestionList); } + } diff --git a/src/Shentun.Peis.Domain/DiagnosisTemplateDetails/DiagnosisTemplateDetailManager.cs b/src/Shentun.Peis.Domain/DiagnosisTemplateDetails/DiagnosisTemplateDetailManager.cs index f0a0e8e..2f8d2f5 100644 --- a/src/Shentun.Peis.Domain/DiagnosisTemplateDetails/DiagnosisTemplateDetailManager.cs +++ b/src/Shentun.Peis.Domain/DiagnosisTemplateDetails/DiagnosisTemplateDetailManager.cs @@ -1,12 +1,58 @@ -using System; +using Shentun.Peis.Models; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; namespace Shentun.Peis.DiagnosisTemplateDetails { - public class DiagnosisTemplateDetailManager + public class DiagnosisTemplateDetailManager : DomainService { + + private readonly IRepository _repository; + + public DiagnosisTemplateDetailManager( + IRepository repository + ) + { + _repository = repository; + } + + + /// + /// 创建 + /// + /// + /// + public DiagnosisTemplateDetail CreateAsbitemAsync(DiagnosisTemplateDetail entity) + { + DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisTemplateId, "诊断模板编号"); + DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisId, "诊断编号"); + + return entity; + } + + + /// + /// 删除诊断模板包含的明细 按诊断模板ID + /// + /// 诊断模板ID + /// + /// + public async Task CheckAndDeleteInDiagnosisTemplateIdAsync(Guid DiagnosisTemplateId) + { + var diagnosisTemplateDetailList = await _repository.GetListAsync(m => m.DiagnosisTemplateId == DiagnosisTemplateId); + if (diagnosisTemplateDetailList.Any()) + { + //删除诊断模板包含的明细 + await _repository.DeleteManyAsync(diagnosisTemplateDetailList); + + } + + } + } } diff --git a/src/Shentun.Peis.Domain/DiagnosisTemplates/DiagnosisTemplateManager.cs b/src/Shentun.Peis.Domain/DiagnosisTemplates/DiagnosisTemplateManager.cs index 9115146..158acbe 100644 --- a/src/Shentun.Peis.Domain/DiagnosisTemplates/DiagnosisTemplateManager.cs +++ b/src/Shentun.Peis.Domain/DiagnosisTemplates/DiagnosisTemplateManager.cs @@ -9,6 +9,7 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; using Volo.Abp; +using Shentun.Peis.Enums; namespace Shentun.Peis.DiagnosisTemplates { @@ -36,13 +37,8 @@ namespace Shentun.Peis.DiagnosisTemplates DiagnosisTemplate entity ) { - DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + Verify(entity); await EntityHelper.CheckSameName(_repository, entity.DisplayName); - //if (entity.DisplayName.Length > 1) - //{ - - // throw new UserFriendlyException($"DisplayName:'{entity.DisplayName}'字符超出长度"); - //} return new DiagnosisTemplate { DisplayName = entity.DisplayName, @@ -61,26 +57,29 @@ namespace Shentun.Peis.DiagnosisTemplates DiagnosisTemplate targetEntity ) { - DataHelper.CheckStringIsNull(sourceEntity.DisplayName, "名称"); - - //if (sourceEntity.DisplayName.Length > 1) - //{ - // throw new UserFriendlyException($"DisplayName:'{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); } + } - + /// + /// 验证新增、修改字段 + /// + /// + /// + private void Verify(DiagnosisTemplate entity) + { + DataHelper.CheckEntityIsNull(entity); + DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + + } - } - /// /// 修改排序 置顶,置底 diff --git a/src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs b/src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs index 2ba94c3..5464f71 100644 --- a/src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs +++ b/src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs @@ -24,6 +24,39 @@ namespace Shentun.Peis.Suggestions } + /// + /// 创建 + /// + /// + /// + public Suggestion CreateAsbitemAsync(Suggestion entity) + { + DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisId, "诊断ID"); + DataHelper.CheckStringIsNull(entity.SuggestionContent, "建议内容"); + + return entity; + } + + /// + /// 按诊断删除建议 + /// + /// 诊断ID + /// + /// + public async Task CheckAndDeleteInDiagnosisIdAsync(Guid DiagnosisId) + { + var suggestionList = await _repository.GetListAsync(m => m.DiagnosisId == DiagnosisId); + if (suggestionList.Any()) + { + + //删除删除建议 + await _repository.DeleteManyAsync(suggestionList); + + } + + } + + /// ///删除 ///