Browse Source

组合项目折扣

master
wxd 3 months ago
parent
commit
e21bfbc95e
  1. 5
      src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs
  2. 5
      src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
  3. 22
      src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
  4. 1
      src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs
  5. 108
      src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs
  6. 3
      src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs
  7. 6
      src/Shentun.Peis.EntityFrameworkCore/CustomerOrgGroupDetails/CustomerOrgGroupDetailRepository.cs

5
src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs

@ -59,5 +59,10 @@ namespace Shentun.Peis.AppointRegisterAsbitems
public int ItemTypeDisplayOrder { get; set; } public int ItemTypeDisplayOrder { get; set; }
public int DisplayOrder { get; set; } public int DisplayOrder { get; set; }
/// <summary>
/// 是否折扣 默认Y
/// </summary>
public char IsDiscount { get; set; }
} }
} }

5
src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs

@ -76,5 +76,10 @@ namespace Shentun.Peis.Asbitems
public int DisplayOrder { get; set; } public int DisplayOrder { get; set; }
/// <summary>
/// 是否折扣 默认Y
/// </summary>
public char IsDiscount { get; set; }
} }
} }

22
src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs

@ -35,6 +35,7 @@ namespace Shentun.Peis.AppointPatientRegisters
private readonly IRepository<Patient, Guid> _patientRepository; private readonly IRepository<Patient, Guid> _patientRepository;
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository; private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository; private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly CacheService _cacheService; private readonly CacheService _cacheService;
public AppointPatientRegisterAppService( public AppointPatientRegisterAppService(
@ -43,7 +44,8 @@ namespace Shentun.Peis.AppointPatientRegisters
IRepository<Patient, Guid> patientRepository, IRepository<Patient, Guid> patientRepository,
IRepository<RegisterCheck, Guid> registerCheckRepository, IRepository<RegisterCheck, Guid> registerCheckRepository,
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository, IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository,
CacheService cacheService)
CacheService cacheService,
IRepository<Asbitem, Guid> asbitemRepository)
{ {
_thirdInterfaceRepository = thirdInterfaceRepository; _thirdInterfaceRepository = thirdInterfaceRepository;
_patientRegisterRepository = patientRegisterRepository; _patientRegisterRepository = patientRegisterRepository;
@ -51,6 +53,7 @@ namespace Shentun.Peis.AppointPatientRegisters
_registerCheckRepository = registerCheckRepository; _registerCheckRepository = registerCheckRepository;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository; _registerCheckAsbitemRepository = registerCheckAsbitemRepository;
_cacheService = cacheService; _cacheService = cacheService;
_asbitemRepository = asbitemRepository;
} }
/// <summary> /// <summary>
/// 获取网上预约数据 /// 获取网上预约数据
@ -114,6 +117,23 @@ namespace Shentun.Peis.AppointPatientRegisters
var pluginsOut = await Utilities.ReflectionHelper.InvokeAsync<List<AppointRegisterAsbitemDto>>(assemblyName, var pluginsOut = await Utilities.ReflectionHelper.InvokeAsync<List<AppointRegisterAsbitemDto>>(assemblyName,
className, [thirdInterface.Id], "GetAppointRegisterAsbitemListByIdAsync", objects); className, [thirdInterface.Id], "GetAppointRegisterAsbitemListByIdAsync", objects);
if (pluginsOut.Any())
{
var asbitemList = await _asbitemRepository.GetListAsync(m => m.IsDiscount == 'N');
foreach (var item in pluginsOut)
{
if (asbitemList.Count(c => c.Id == item.AsbitemId) > 0)
{
item.IsDiscount = 'N';
}
else
{
item.IsDiscount = 'Y';
}
}
}
return pluginsOut; return pluginsOut;
} }

1
src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs

@ -202,6 +202,7 @@ namespace Shentun.Peis.Asbitems
SimpleCode = s.SimpleCode, SimpleCode = s.SimpleCode,
ForPregnantFlag = s.ForPregnantFlag, ForPregnantFlag = s.ForPregnantFlag,
MaritalStatusId = s.MaritalStatusId, MaritalStatusId = s.MaritalStatusId,
IsDiscount = s.IsDiscount
}).OrderBy(o => o.DisplayOrder).ToList(); }).OrderBy(o => o.DisplayOrder).ToList();
return entdto; return entdto;

108
src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs

@ -29,12 +29,25 @@ namespace Shentun.Peis.MedicalPackageDetails
private readonly IRepository<MedicalPackageDetail> _repository; private readonly IRepository<MedicalPackageDetail> _repository;
private readonly IRepository<IdentityUser, Guid> _userRepository; private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly MedicalPackageDetailManager _manager; private readonly MedicalPackageDetailManager _manager;
public MedicalPackageDetailAppService(IRepository<MedicalPackageDetail> repository, IRepository<IdentityUser, Guid> userRepository, MedicalPackageDetailManager manager)
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly IRepository<ItemType, Guid> _itemTypeRepository;
private readonly CacheService _cacheService;
public MedicalPackageDetailAppService(
IRepository<MedicalPackageDetail> repository,
IRepository<IdentityUser, Guid> userRepository,
MedicalPackageDetailManager manager,
IRepository<Asbitem, Guid> asbitemRepository,
IRepository<ItemType, Guid> itemTypeRepository,
CacheService cacheService)
{ {
this._repository = repository; this._repository = repository;
this._userRepository = userRepository; this._userRepository = userRepository;
this._manager = manager; this._manager = manager;
_asbitemRepository = asbitemRepository;
_itemTypeRepository = itemTypeRepository;
_cacheService = cacheService;
} }
///// <summary> ///// <summary>
@ -110,51 +123,58 @@ namespace Shentun.Peis.MedicalPackageDetails
[HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")] [HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")]
public async Task<List<MedicalPackageDetailDto>> GetMedicalPackageInAsbitemAsync(MedicalPackageInAsbitemDto input) public async Task<List<MedicalPackageDetailDto>> GetMedicalPackageInAsbitemAsync(MedicalPackageInAsbitemDto input)
{ {
var entlist = (await _repository.GetDbSetAsync()).Include(c => c.Asbitem)
.Where(m => m.MedicalPackageId == input.MedicalPackageId).ToList();
var userList = await _userRepository.GetListAsync();
var entdto = entlist.Select(s => new MedicalPackageDetailDto
var query = from medicalPackageDetail in await _repository.GetQueryableAsync()
join asbitem in await _asbitemRepository.GetQueryableAsync() on medicalPackageDetail.AsbitemId equals asbitem.Id
join itemType in await _itemTypeRepository.GetQueryableAsync() on asbitem.ItemTypeId equals itemType.Id
where medicalPackageDetail.MedicalPackageId == input.MedicalPackageId
select new
{
itemType,
asbitem,
medicalPackageDetail
};
var entListDto = query.ToList().Select(s => new MedicalPackageDetailDto
{ {
ClinicalMeaning = s.Asbitem.ClinicalMeaning,
CreationTime = s.Asbitem.CreationTime,
CreatorId = s.Asbitem.CreatorId,
DefaultResult = s.Asbitem.DefaultResult,
DeviceTypeId = s.Asbitem.DeviceTypeId,
DiagnosisFunction = s.Asbitem.DiagnosisFunction,
DisplayName = s.Asbitem.DisplayName,
DisplayOrder = s.Asbitem.DisplayOrder,
ForSexId = s.Asbitem.ForSexId,
Id = s.Asbitem.Id,
//InvoiceItemTypeId = s.Asbitem.InvoiceItemTypeId,
IsActive = s.Asbitem.IsActive,
IsBeforeEat = s.Asbitem.IsBeforeEat,
IsCheck = s.Asbitem.IsCheck,
IsContinueProcess = s.Asbitem.IsContinueProcess,
IsDiagnosisFunction = s.Asbitem.IsDiagnosisFunction,
IsItemResultMerger = s.Asbitem.IsItemResultMerger,
IsPictureRotate = s.Asbitem.IsPictureRotate,
ItemTypeId = s.Asbitem.ItemTypeId,
LastModificationTime = s.Asbitem.LastModificationTime,
LastModifierId = s.Asbitem.LastModifierId,
Price = s.Asbitem.Price,
QueueTime = s.Asbitem.QueueTime,
ShortName = s.Asbitem.ShortName,
SimpleCode = s.Asbitem.SimpleCode,
AsbitemMoney = s.Amount * s.Asbitem.Price,
Discount = s.Asbitem.Price == 0 ? 100 : Math.Round(s.Price * 100 / s.Asbitem.Price, 2),
MedicalPackageDetailAmount = s.Amount,
MedicalPackageDetailMoney = s.Amount * s.Price,
MedicalPackageDetailPrice = s.Price,
CreatorName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.CreatorId),
LastModifierName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.LastModifierId),
MaritalStatusId = s.Asbitem.MaritalStatusId,
IsDiscount = s.Asbitem.IsDiscount
ClinicalMeaning = s.asbitem.ClinicalMeaning,
CreationTime = s.asbitem.CreationTime,
CreatorId = s.asbitem.CreatorId,
DefaultResult = s.asbitem.DefaultResult,
DeviceTypeId = s.asbitem.DeviceTypeId,
DiagnosisFunction = s.asbitem.DiagnosisFunction,
DisplayName = (s.itemType.DisplayOrder * 3000) + s.asbitem.DisplayName,
DisplayOrder = s.asbitem.DisplayOrder,
ForSexId = s.asbitem.ForSexId,
Id = s.asbitem.Id,
//InvoiceItemTypeId = s.asbitem.InvoiceItemTypeId,
IsActive = s.asbitem.IsActive,
IsBeforeEat = s.asbitem.IsBeforeEat,
IsCheck = s.asbitem.IsCheck,
IsContinueProcess = s.asbitem.IsContinueProcess,
IsDiagnosisFunction = s.asbitem.IsDiagnosisFunction,
IsItemResultMerger = s.asbitem.IsItemResultMerger,
IsPictureRotate = s.asbitem.IsPictureRotate,
ItemTypeId = s.asbitem.ItemTypeId,
LastModificationTime = s.asbitem.LastModificationTime,
LastModifierId = s.asbitem.LastModifierId,
Price = s.asbitem.Price,
QueueTime = s.asbitem.QueueTime,
ShortName = s.asbitem.ShortName,
SimpleCode = s.asbitem.SimpleCode,
AsbitemMoney = s.medicalPackageDetail.Amount * s.asbitem.Price,
Discount = s.asbitem.Price == 0 ? 100 : Math.Round(s.medicalPackageDetail.Price * 100 / s.asbitem.Price, 2),
MedicalPackageDetailAmount = s.medicalPackageDetail.Amount,
MedicalPackageDetailMoney = s.medicalPackageDetail.Amount * s.medicalPackageDetail.Price,
MedicalPackageDetailPrice = s.medicalPackageDetail.Price,
CreatorName = _cacheService.GetSurnameAsync(s.asbitem.CreatorId).GetAwaiter().GetResult(),
LastModifierName = _cacheService.GetSurnameAsync(s.asbitem.LastModifierId).GetAwaiter().GetResult(),
MaritalStatusId = s.asbitem.MaritalStatusId,
IsDiscount = s.asbitem.IsDiscount
}).ToList(); }).ToList();
return entdto;
return entListDto;
} }

3
src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs

@ -305,7 +305,8 @@ namespace Shentun.Peis.RegisterAsbitems
StandardPrice = s.StandardPrice, StandardPrice = s.StandardPrice,
CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).GetAwaiter().GetResult(), CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).GetAwaiter().GetResult(),
LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).GetAwaiter().GetResult(), LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).GetAwaiter().GetResult(),
DisplayOrder = s.Asbitem.ItemType.DisplayOrder * 3000 + s.Asbitem.DisplayOrder
DisplayOrder = s.Asbitem.ItemType.DisplayOrder * 3000 + s.Asbitem.DisplayOrder,
IsDiscount = s.Asbitem.IsDiscount
}).ToList(); }).ToList();
//设置GroupPackageId //设置GroupPackageId

6
src/Shentun.Peis.EntityFrameworkCore/CustomerOrgGroupDetails/CustomerOrgGroupDetailRepository.cs

@ -38,6 +38,7 @@ namespace Shentun.Peis.CustomerOrgGroupDetails
var query = from a in dbContext.CustomerOrgGroupDetails var query = from a in dbContext.CustomerOrgGroupDetails
join b in dbContext.Asbitems on a.AsbitemId equals b.Id join b in dbContext.Asbitems on a.AsbitemId equals b.Id
join itemType in dbContext.ItemTypes on b.ItemTypeId equals itemType.Id
join c in userQueryable on a.CreatorId equals c.Id into cc join c in userQueryable on a.CreatorId equals c.Id into cc
from ac in cc.DefaultIfEmpty() from ac in cc.DefaultIfEmpty()
join d in userQueryable on a.LastModifierId equals d.Id into dd join d in userQueryable on a.LastModifierId equals d.Id into dd
@ -59,9 +60,8 @@ namespace Shentun.Peis.CustomerOrgGroupDetails
DeviceTypeId = b.DeviceTypeId, DeviceTypeId = b.DeviceTypeId,
DiagnosisFunction = b.DiagnosisFunction, DiagnosisFunction = b.DiagnosisFunction,
DisplayName = b.DisplayName, DisplayName = b.DisplayName,
DisplayOrder = b.DisplayOrder,
DisplayOrder = (itemType.DisplayOrder * 3000) + b.DisplayOrder,
ForSexId = b.ForSexId, ForSexId = b.ForSexId,
//InvoiceItemTypeId = b.InvoiceItemTypeId,
IsActive = b.IsActive, IsActive = b.IsActive,
IsBeforeEat = b.IsBeforeEat, IsBeforeEat = b.IsBeforeEat,
IsCheck = b.IsCheck, IsCheck = b.IsCheck,
@ -83,7 +83,7 @@ namespace Shentun.Peis.CustomerOrgGroupDetails
MaritalStatusId = b.MaritalStatusId MaritalStatusId = b.MaritalStatusId
}; };
return query.ToList();
return query.OrderBy(o => o.DisplayOrder).ToList();
} }

Loading…
Cancel
Save