Browse Source

诊断建议、诊断模板、诊断模板明细

bjmzak
wxd 2 years ago
parent
commit
26c3f0468a
  1. 32
      src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs
  2. 7
      src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs
  3. 30
      src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs
  4. 50
      src/Shentun.Peis.Domain/DiagnosisTemplateDetails/DiagnosisTemplateDetailManager.cs
  5. 33
      src/Shentun.Peis.Domain/DiagnosisTemplates/DiagnosisTemplateManager.cs
  6. 33
      src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs

32
src/Shentun.Peis.Application/DiagnosisTemplateDetails/DiagnosisTemplateDetailAppService.cs

@ -31,11 +31,17 @@ namespace Shentun.Peis.DiagnosisTemplateDetails
{
private readonly IRepository<DiagnosisTemplateDetail> _repository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly DiagnosisTemplateDetailManager _manager;
public DiagnosisTemplateDetailAppService(IRepository<DiagnosisTemplateDetail> repository, IRepository<IdentityUser, Guid> userRepository)
public DiagnosisTemplateDetailAppService(
IRepository<DiagnosisTemplateDetail> repository,
IRepository<IdentityUser, Guid> 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<CreateDiagnosisTemplateDetail_Detail>, List<DiagnosisTemplateDetail>>(input.Details);
await _repository.InsertManyAsync(createEntity);
List<DiagnosisTemplateDetail> diagnosisTemplateDetails = new List<DiagnosisTemplateDetail>();
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();

7
src/Shentun.Peis.Application/DiagnosisTemplates/DiagnosisTemplateAppService.cs

@ -63,6 +63,7 @@ namespace Shentun.Peis.DiagnosisTemplates
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[RemoteService(false)]
public override async Task<PagedResultDto<DiagnosisTemplateDto>> GetListAsync(PagedAndSortedResultRequestDto input)
{
return await base.GetListAsync(input);
@ -135,6 +136,7 @@ namespace Shentun.Peis.DiagnosisTemplates
entity = await Repository.UpdateAsync(entity);
return ObjectMapper.Map<DiagnosisTemplate, DiagnosisTemplateDto>(entity);
}
/// <summary>
/// 删除
/// </summary>
@ -145,10 +147,7 @@ namespace Shentun.Peis.DiagnosisTemplates
await _manager.CheckAndDeleteAsync(id);
}
/// <summary>
/// 修改排序 置顶,置底
/// </summary>

30
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<Suggestion, Guid> _suggestionRepository;
private readonly SuggestionManager _manager;
public SuggestionAppService(
IRepository<Suggestion, Guid> suggestionRepository
IRepository<Suggestion, Guid> suggestionRepository,
SuggestionManager manager
)
{
this._suggestionRepository = suggestionRepository;
this._manager = manager;
}
/// <summary>
@ -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<Suggestion> suggestionList = new List<Suggestion>();
List<Suggestion> suggestions = new List<Suggestion>();
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);
}
}

50
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<DiagnosisTemplateDetail> _repository;
public DiagnosisTemplateDetailManager(
IRepository<DiagnosisTemplateDetail> repository
)
{
_repository = repository;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public DiagnosisTemplateDetail CreateAsbitemAsync(DiagnosisTemplateDetail entity)
{
DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisTemplateId, "诊断模板编号");
DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisId, "诊断编号");
return entity;
}
/// <summary>
/// 删除诊断模板包含的明细 按诊断模板ID
/// </summary>
/// <param name="AsbitemId">诊断模板ID</param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public async Task CheckAndDeleteInDiagnosisTemplateIdAsync(Guid DiagnosisTemplateId)
{
var diagnosisTemplateDetailList = await _repository.GetListAsync(m => m.DiagnosisTemplateId == DiagnosisTemplateId);
if (diagnosisTemplateDetailList.Any())
{
//删除诊断模板包含的明细
await _repository.DeleteManyAsync(diagnosisTemplateDetailList);
}
}
}
}

33
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<DiagnosisTemplate, Guid>(_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<DiagnosisTemplate, Guid>(_repository, sourceEntity.DisplayName, targetEntity);
targetEntity.DisplayName = sourceEntity.DisplayName;
targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.DisplayName);
}
}
/// <summary>
/// 验证新增、修改字段
/// </summary>
/// <param name="entity"></param>
/// <exception cref="ArgumentException"></exception>
private void Verify(DiagnosisTemplate entity)
{
DataHelper.CheckEntityIsNull(entity);
DataHelper.CheckStringIsNull(entity.DisplayName, "名称");
}
}
/// <summary>
/// 修改排序 置顶,置底

33
src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs

@ -24,6 +24,39 @@ namespace Shentun.Peis.Suggestions
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public Suggestion CreateAsbitemAsync(Suggestion entity)
{
DataHelper.CheckGuidIsDefaultValue(entity.DiagnosisId, "诊断ID");
DataHelper.CheckStringIsNull(entity.SuggestionContent, "建议内容");
return entity;
}
/// <summary>
/// 按诊断删除建议
/// </summary>
/// <param name="DiagnosisId">诊断ID</param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public async Task CheckAndDeleteInDiagnosisIdAsync(Guid DiagnosisId)
{
var suggestionList = await _repository.GetListAsync(m => m.DiagnosisId == DiagnosisId);
if (suggestionList.Any())
{
//删除删除建议
await _repository.DeleteManyAsync(suggestionList);
}
}
/// <summary>
///删除
/// </summary>

Loading…
Cancel
Save