From e21bfbc95e156b2a4e58eca3cf064d1c0211c5dd Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Fri, 9 Jan 2026 11:27:12 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E5=90=88=E9=A1=B9=E7=9B=AE=E6=8A=98?=
=?UTF-8?q?=E6=89=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AppointRegisterAsbitemDto.cs | 5 +
.../Asbitems/BasicAsbitemDto.cs | 5 +
.../AppointPatientRegisterAppService.cs | 22 +++-
.../Asbitems/AsbitemAppService.cs | 1 +
.../MedicalPackageDetailAppService.cs | 108 +++++++++++-------
.../RegisterCheckAsbitemAppService.cs | 3 +-
.../CustomerOrgGroupDetailRepository.cs | 6 +-
7 files changed, 101 insertions(+), 49 deletions(-)
diff --git a/src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs b/src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs
index 2fa9e878..5263860d 100644
--- a/src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs
+++ b/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; }
+
+ ///
+ /// 是否折扣 默认Y
+ ///
+ public char IsDiscount { get; set; }
}
}
diff --git a/src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs b/src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
index a484155b..ab853b80 100644
--- a/src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
@@ -76,5 +76,10 @@ namespace Shentun.Peis.Asbitems
public int DisplayOrder { get; set; }
+
+ ///
+ /// 是否折扣 默认Y
+ ///
+ public char IsDiscount { get; set; }
}
}
diff --git a/src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs b/src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
index 30bdf74e..5f5d598c 100644
--- a/src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
+++ b/src/Shentun.Peis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
@@ -35,6 +35,7 @@ namespace Shentun.Peis.AppointPatientRegisters
private readonly IRepository _patientRepository;
private readonly IRepository _registerCheckRepository;
private readonly IRepository _registerCheckAsbitemRepository;
+ private readonly IRepository _asbitemRepository;
private readonly CacheService _cacheService;
public AppointPatientRegisterAppService(
@@ -43,7 +44,8 @@ namespace Shentun.Peis.AppointPatientRegisters
IRepository patientRepository,
IRepository registerCheckRepository,
IRepository registerCheckAsbitemRepository,
- CacheService cacheService)
+ CacheService cacheService,
+ IRepository asbitemRepository)
{
_thirdInterfaceRepository = thirdInterfaceRepository;
_patientRegisterRepository = patientRegisterRepository;
@@ -51,6 +53,7 @@ namespace Shentun.Peis.AppointPatientRegisters
_registerCheckRepository = registerCheckRepository;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository;
_cacheService = cacheService;
+ _asbitemRepository = asbitemRepository;
}
///
/// 获取网上预约数据
@@ -114,6 +117,23 @@ namespace Shentun.Peis.AppointPatientRegisters
var pluginsOut = await Utilities.ReflectionHelper.InvokeAsync>(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;
}
diff --git a/src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs b/src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs
index 3f655709..35edf51c 100644
--- a/src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs
+++ b/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;
diff --git a/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs b/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs
index 17302c32..5e5a2aed 100644
--- a/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs
+++ b/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs
@@ -29,12 +29,25 @@ namespace Shentun.Peis.MedicalPackageDetails
private readonly IRepository _repository;
private readonly IRepository _userRepository;
private readonly MedicalPackageDetailManager _manager;
-
- public MedicalPackageDetailAppService(IRepository repository, IRepository userRepository, MedicalPackageDetailManager manager)
+ private readonly IRepository _asbitemRepository;
+ private readonly IRepository _itemTypeRepository;
+ private readonly CacheService _cacheService;
+
+
+ public MedicalPackageDetailAppService(
+ IRepository repository,
+ IRepository userRepository,
+ MedicalPackageDetailManager manager,
+ IRepository asbitemRepository,
+ IRepository itemTypeRepository,
+ CacheService cacheService)
{
this._repository = repository;
this._userRepository = userRepository;
this._manager = manager;
+ _asbitemRepository = asbitemRepository;
+ _itemTypeRepository = itemTypeRepository;
+ _cacheService = cacheService;
}
/////
@@ -110,51 +123,58 @@ namespace Shentun.Peis.MedicalPackageDetails
[HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")]
public async Task> 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;
}
diff --git a/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs b/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs
index 0fc2e08b..daa9c47d 100644
--- a/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs
+++ b/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
diff --git a/src/Shentun.Peis.EntityFrameworkCore/CustomerOrgGroupDetails/CustomerOrgGroupDetailRepository.cs b/src/Shentun.Peis.EntityFrameworkCore/CustomerOrgGroupDetails/CustomerOrgGroupDetailRepository.cs
index a6ab0ef2..b90e400d 100644
--- a/src/Shentun.Peis.EntityFrameworkCore/CustomerOrgGroupDetails/CustomerOrgGroupDetailRepository.cs
+++ b/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();
}