Browse Source

组合项目、组合项目明细、组合项目指引内容

bjmzak
wxd 2 years ago
parent
commit
38eb70798d
  1. 36
      src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs
  2. 15
      src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs
  3. 17
      src/Shentun.Peis.Domain/AsbitemDetails/AsbitemDetailManager.cs
  4. 44
      src/Shentun.Peis.Domain/AsbitemGuides/AsbitemGuideManager.cs
  5. 4
      src/Shentun.Peis.Domain/Asbitems/Asbitem.cs
  6. 34
      src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs
  7. 2
      src/Shentun.Peis.Domain/Items/ItemManager.cs
  8. 2
      src/Shentun.Peis.Domain/ReferenceRanges/ReferenceRangeManager.cs

36
src/Shentun.Peis.Application/AsbitemDetails/AsbitemDetailAppService.cs

@ -29,11 +29,13 @@ namespace Shentun.Peis.AsbitemDetails
{
private readonly IRepository<AsbitemDetail> _repository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly AsbitemDetailManager _manager;
public AsbitemDetailAppService(IRepository<AsbitemDetail> repository, IRepository<IdentityUser, Guid> userRepository)
public AsbitemDetailAppService(IRepository<AsbitemDetail> repository, IRepository<IdentityUser, Guid> userRepository, AsbitemDetailManager manager)
{
this._repository = repository;
this._userRepository = userRepository;
this._manager = manager;
}
/// <summary>
@ -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<CreateAsbitemDetail_Detail>, List<AsbitemDetail>>(input.Details);
await _repository.InsertManyAsync(createEntity);
List<AsbitemDetail> asbitemDetails = new List<AsbitemDetail>();
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);
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="AsbitemId"></param>
/// <param name="ItemId"></param>
/// <returns></returns>
public async Task DeleteAsync(Guid AsbitemId, Guid ItemId)
{
await _repository.DeleteAsync(d => d.AsbitemId == AsbitemId && d.ItemId == ItemId);
}
/// <summary>

15
src/Shentun.Peis.Application/AsbitemGuides/AsbitemGuideAppService.cs

@ -22,11 +22,17 @@ namespace Shentun.Peis.AsbitemGuides
{
private readonly IRepository<AsbitemGuide> _repository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly AsbitemGuideManager _manager;
public AsbitemGuideAppService(IRepository<AsbitemGuide> repository, IRepository<IdentityUser, Guid> userRepository)
public AsbitemGuideAppService(
IRepository<AsbitemGuide> repository,
IRepository<IdentityUser, Guid> 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<AsbitemGuide> asbitemGuides = new List<AsbitemGuide>();
@ -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);

17
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;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public AsbitemDetail CreateAsbitemAsync(AsbitemDetail entity)
{
DataHelper.CheckGuidIsDefaultValue(entity.AsbitemId, "组合项目编号");
DataHelper.CheckGuidIsDefaultValue(entity.ItemId, "项目编号");
return entity;
}
/// <summary>
/// 删除组合项目明细
/// </summary>

44
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
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 删除指引信息 根据组合项目ID
/// </summary>
/// <param name="AsbitemId">组合项目ID</param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public async Task CheckAndDeleteAsync(Guid AsbitemId)
{
var asbitemGuideList = await _asbitemGuideRepository.GetListAsync(m => m.AsbitemId == AsbitemId);
if (asbitemGuideList.Any())
{
//删除指引信息
await _asbitemGuideRepository.DeleteManyAsync(asbitemGuideList);
}
}
/// <summary>
/// 获取指引单内容(根据体检中心、组合项目ID、性别ID)
/// </summary>

4
src/Shentun.Peis.Domain/Asbitems/Asbitem.cs

@ -118,13 +118,13 @@ namespace Shentun.Peis.Models
[MaxLength(1)]
public char IsPictureRotate { get; set; }
/// <summary>
/// 是检查项目
/// 是否为检查项目
/// </summary>
[Column("is_check")]
[MaxLength(1)]
public char IsCheck { get; set; }
/// <summary>
/// 是启用
/// 是启用
/// </summary>
[Column("is_active")]
[MaxLength(1)]

34
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<Asbitem, Guid>(_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<Asbitem, Guid>(_repository, sourceEntity.DisplayName, targetEntity);
targetEntity.DisplayName = sourceEntity.DisplayName;
targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.DisplayName);
@ -143,8 +144,33 @@ namespace Shentun.Peis.Asbitems
}
/// <summary>
/// 验证新增、修改字段
/// </summary>
/// <param name="entity"></param>
/// <exception cref="ArgumentException"></exception>
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, "是否启用");
}
/// <summary>
/// 修改排序 置顶,置底

2
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}'");
}
}

2
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)

Loading…
Cancel
Save