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 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; }
/// <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<RegisterCheck, Guid> _registerCheckRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly CacheService _cacheService;
public AppointPatientRegisterAppService(
@ -43,7 +44,8 @@ namespace Shentun.Peis.AppointPatientRegisters
IRepository<Patient, Guid> patientRepository,
IRepository<RegisterCheck, Guid> registerCheckRepository,
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository,
CacheService cacheService)
CacheService cacheService,
IRepository<Asbitem, Guid> asbitemRepository)
{
_thirdInterfaceRepository = thirdInterfaceRepository;
_patientRegisterRepository = patientRegisterRepository;
@ -51,6 +53,7 @@ namespace Shentun.Peis.AppointPatientRegisters
_registerCheckRepository = registerCheckRepository;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository;
_cacheService = cacheService;
_asbitemRepository = asbitemRepository;
}
/// <summary>
/// 获取网上预约数据
@ -114,6 +117,23 @@ namespace Shentun.Peis.AppointPatientRegisters
var pluginsOut = await Utilities.ReflectionHelper.InvokeAsync<List<AppointRegisterAsbitemDto>>(assemblyName,
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;
}

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

@ -202,6 +202,7 @@ namespace Shentun.Peis.Asbitems
SimpleCode = s.SimpleCode,
ForPregnantFlag = s.ForPregnantFlag,
MaritalStatusId = s.MaritalStatusId,
IsDiscount = s.IsDiscount
}).OrderBy(o => o.DisplayOrder).ToList();
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<IdentityUser, Guid> _userRepository;
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._userRepository = userRepository;
this._manager = manager;
_asbitemRepository = asbitemRepository;
_itemTypeRepository = itemTypeRepository;
_cacheService = cacheService;
}
///// <summary>
@ -110,51 +123,58 @@ namespace Shentun.Peis.MedicalPackageDetails
[HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")]
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();
return entdto;
return entListDto;
}

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

@ -305,7 +305,8 @@ namespace Shentun.Peis.RegisterAsbitems
StandardPrice = s.StandardPrice,
CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).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();
//设置GroupPackageId

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

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

Loading…
Cancel
Save