diff --git a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs index bb3f0ac..31d25c5 100644 --- a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs +++ b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs @@ -8,12 +8,12 @@ namespace Shentun.Peis.ColumnReferencePlugIns { interface IColumnReferencePlugIns { - public List GetColumns(); + public List GetColumnNames(); public string GetFilterColumnName(); - public List GetInterfaceColumns(); - public Task> GetCodeValues(); - public Task> GetFilterCodeValues(); - public Task> GetInterfaceCodeValues(); + public List GetInterfaceColumnNames(); + public Task> GetCodeValuesAsync(); + public Task> GetFilterCodeValuesAsync(); + public Task> GetInterfaceCodeValuesAsync(); } public class ColumnReferenceCodeValue diff --git a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs index 25fe8fb..3b78107 100644 --- a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs +++ b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs @@ -13,14 +13,16 @@ using Shentun.Utilities; namespace Shentun.Peis.ColumnReferencePlugIns { - public class ColumnReferencePlugInsBase:IColumnReferencePlugIns + public class ColumnReferencePlugInsBase : IColumnReferencePlugIns { - protected IConfiguration AppConfig; + protected IConfiguration AppConfig; protected IConfiguration InterfaceConfig; protected string? ConnctionStr; protected string AppSql; - - public ColumnReferencePlugInsBase(string configParm) + private string[] _columnNames; + private string[] _interfaceColumnNames; + + public ColumnReferencePlugInsBase(string configParm) { AppConfig = new ConfigurationBuilder() .SetBasePath(DirectoryHelper.GetAppDirectory()) // 设置基础路径为当前目录 @@ -33,26 +35,43 @@ namespace Shentun.Peis.ColumnReferencePlugIns .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(configParm))); InterfaceConfig = configurationBuilder.Build(); AppSql = InterfaceConfig.GetSection("App").GetSection("Sql").Value; - + var columnNames = InterfaceConfig.GetSection("App").GetSection("ColumnNames").Value; + columnNames = columnNames.Replace(",", ","); + _columnNames = columnNames.Split(','); + + columnNames = InterfaceConfig.GetSection("Interface").GetSection("ColumnNames").Value; + columnNames = columnNames.Replace(",", ","); + _interfaceColumnNames = columnNames.Split(','); + + } - public virtual List GetColumns() + public virtual List GetColumnNames() { - return new List + if (_columnNames == null || _columnNames.Count() == 0) { - "编码", - "名称", - }; + return new List() + { + "编码", + "名称", + }; + } + return _columnNames.ToList(); + } - public virtual List GetInterfaceColumns() + public virtual List GetInterfaceColumnNames() { - return new List + if (_interfaceColumnNames == null || _interfaceColumnNames.Count() == 0) { - "编码", - "名称", - }; + return new List() + { + "编码", + "名称", + }; + } + return _interfaceColumnNames.ToList(); } - public virtual async Task> GetCodeValues() + public virtual async Task> GetCodeValuesAsync() { using (DbConnection conn = new NpgsqlConnection(ConnctionStr)) { @@ -61,15 +80,15 @@ namespace Shentun.Peis.ColumnReferencePlugIns } } - public virtual async Task> GetInterfaceCodeValues() + public virtual async Task> GetInterfaceCodeValuesAsync() { return new List() { - + }; } - public virtual async Task> GetFilterCodeValues() + public virtual async Task> GetFilterCodeValuesAsync() { throw new NotImplementedException(); } @@ -79,6 +98,6 @@ namespace Shentun.Peis.ColumnReferencePlugIns return null; } - + } } diff --git a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs index 8ac8a76..92cb936 100644 --- a/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs +++ b/src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs @@ -2,6 +2,7 @@ using Microsoft.Data.SqlClient; using Npgsql; using Oracle.ManagedDataAccess.Client; +using Shentun.Utilities; using System; using System.Collections.Generic; using System.Data.Common; @@ -29,15 +30,16 @@ namespace Shentun.Peis.ColumnReferencePlugIns { throw new ArgumentException("数据连接设置中的DbType不能为空"); } - if (InterfaceDbType == "SqlServer") + InterfaceDbType = InterfaceDbType.ToLower(); + if (InterfaceDbType == "sqlserver") { conn = new SqlConnection(InterfaceConnctionStr); } - else if (InterfaceDbType == "PostGres") + else if (InterfaceDbType == "postgres") { conn = new NpgsqlConnection(InterfaceConnctionStr); } - else if (InterfaceDbType == "Oracle") + else if (InterfaceDbType == "oracle") { conn = new OracleConnection(InterfaceConnctionStr); } @@ -48,11 +50,15 @@ namespace Shentun.Peis.ColumnReferencePlugIns return conn; } - public override async Task> GetInterfaceCodeValues() + public override async Task> GetInterfaceCodeValuesAsync() { using (DbConnection conn = CreateInterfaceDbConnect()) { var list = (await conn.QueryAsync(InterfaceSql)).ToList(); + foreach (var item in list) + { + item.DisplayName = LanguageConverter.GetPYSimpleCode(item.DisplayName); + } return list; } } diff --git a/src/Shentun.Peis.Application.Contracts/LisRequests/LisRequestDto.cs b/src/Shentun.Peis.Application.Contracts/LisRequests/LisRequestDto.cs index 6fa3dc1..7256c64 100644 --- a/src/Shentun.Peis.Application.Contracts/LisRequests/LisRequestDto.cs +++ b/src/Shentun.Peis.Application.Contracts/LisRequests/LisRequestDto.cs @@ -15,6 +15,19 @@ namespace Shentun.Peis.LisRequests /// public string PatientName { get; set; } + /// + /// 检验申请单号 + /// + public string LisRequestNo { get; set; } + /// + /// 档案号 + /// + public string PatientNo { get; set; } + /// + /// 登记人员条码号 + /// + public string PatientRegisterNo { get; set; } + /// /// 性别 /// @@ -43,18 +56,7 @@ namespace Shentun.Peis.LisRequests /// public string? SampleContainerRemark { get; set; } - /// - /// 检验申请单号 - /// - public string LisRequestNo { get; set; } - /// - /// 档案号 - /// - public string PatientNo { get; set; } - /// - /// 登记人员条码号 - /// - public string PatientRegisterNo { get; set; } + /// /// 组合项目简称(多个“,”号隔开) diff --git a/src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs b/src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs index 28c3a86..0e41212 100644 --- a/src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs +++ b/src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Authorization; +using Azure; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Shentun.Peis.CustomerOrgs; @@ -10,6 +11,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -27,38 +29,53 @@ namespace Shentun.Peis.LisRequests public class LisRequestAppService : ApplicationService { private readonly IRepository _userRepository; + private readonly IRepository _patientRepository; private readonly IRepository _patientRegisterRepository; - private readonly IRepository _registerAsbitemRepository; + private readonly IRepository _registerCheckRepository; + private readonly IRepository _registerCheckAsbitemRepository; + private readonly IRepository _asbitemRepository; private readonly ILisRequestReportRepository _lisRequestReportRepository; private readonly LisRequestManager _lisRequestManager; private readonly CacheService _cacheService; private readonly IRepository _customerOrgRepository; private readonly CustomerOrgManager _customerOrgManager; + private readonly IRepository _sampleContainerRepository; + private readonly IRepository _sampleTypeRepository; public LisRequestAppService( IRepository userRepository, IRepository patientRegisterRepository, - IRepository registerAsbitemRepository, + IRepository registerCheckAsbitemRepository, ILisRequestReportRepository lisRequestReportRepository, IRepository customerOrgRepository, LisRequestManager lisRequestManager, CacheService cacheService, - CustomerOrgManager customerOrgManager + CustomerOrgManager customerOrgManager, + IRepository patientRepository, + IRepository registerCheckRepository, + IRepository asbitemRepository, + IRepository sampleContainerRepository, + IRepository sampleTypeRepository ) { this._userRepository = userRepository; this._patientRegisterRepository = patientRegisterRepository; - this._registerAsbitemRepository = registerAsbitemRepository; + this._registerCheckAsbitemRepository = registerCheckAsbitemRepository; this._lisRequestReportRepository = lisRequestReportRepository; this._lisRequestManager = lisRequestManager; _cacheService = cacheService; _customerOrgRepository = customerOrgRepository; _customerOrgManager = customerOrgManager; + _patientRepository = patientRepository; + _registerCheckRepository = registerCheckRepository; + _asbitemRepository = asbitemRepository; + _sampleContainerRepository = sampleContainerRepository; + _sampleTypeRepository = sampleTypeRepository; } [HttpPost("api/app/LisRequest/GetListInFilter")] public async Task> GetListInFilterAsync(GetLisRequestListDto input) { - var customerOrgList = await _customerOrgRepository.GetListAsync(); + //var customerOrgList = await _customerOrgRepository.GetListAsync(); //Stopwatch stopwatch = Stopwatch.StartNew(); //stopwatch.Start(); @@ -84,11 +101,14 @@ namespace Shentun.Peis.LisRequests if (input.SexId != null && input.SexId != ForSexFlag.All) patientRegisterQuery = patientRegisterQuery.Where(m => m.SexId == input.SexId); - if (input.StartDate!=null && input.EndDate != null) + if(input.EndDate == null) + input.EndDate = DateTime.Now; + + if (input.StartDate != null && input.EndDate != null) patientRegisterQuery = patientRegisterQuery.Where(m => m.CreationTime >= input.StartDate && m.CreationTime < ((DateTime)input.EndDate).AddDays(1)); - + if (input.CustomerOrgId != null) { var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(input.CustomerOrgId.Value); @@ -105,20 +125,72 @@ namespace Shentun.Peis.LisRequests int totalCount = patientRegisterQuery.Count(); - patientRegisterQuery = patientRegisterQuery.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount); + patientRegisterQuery = patientRegisterQuery.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount); var patientRegisterList = patientRegisterQuery.ToList(); if (patientRegisterList.Count > 10000) { throw new UserFriendlyException("选择的人员数不能超过1万条"); } //生成LIS申请数据 - foreach(var patientRegister in patientRegisterList ) + foreach (var patientRegister in patientRegisterList) { var lisRequests = await _lisRequestManager.SetLisRequestAsync(patientRegister.Id); } //返回检索到的数据 + var list = (from patient in await _patientRepository.GetQueryableAsync() + join patientRegister in patientRegisterQuery + on patient.Id equals patientRegister.PatientId + join registerCheck in await _registerCheckRepository.GetQueryableAsync() + on patientRegister.Id equals registerCheck.PatientRegisterId + join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() + on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + join asbitem in await _asbitemRepository.GetQueryableAsync() + on registerCheckAsbitem.AsbitemId equals asbitem.Id + join lisRequest in await _lisRequestReportRepository.GetQueryableAsync() + on registerCheckAsbitem.LisRequestId equals lisRequest.Id + join sampleContainer in await _sampleContainerRepository.GetQueryableAsync() + on lisRequest.SampleContainerId equals sampleContainer.Id + join sampleType in await _sampleTypeRepository.GetQueryableAsync() + on lisRequest.SampleTypeId equals sampleType.Id + select new + { + patient, + patientRegister, + asbitem, + lisRequest, + sampleContainer, + sampleType + + }).ToList(); + var lisRequestIds = list.Select(o => new { Id = o.lisRequest.Id }).Distinct().ToList(); + + var lisRequestDtoList = new List(); + foreach (var lisRequestId in lisRequestIds) + { + var patientList = list.Where(o => o.lisRequest.Id == lisRequestId.Id).Distinct().ToList(); + var patient = patientList.First(); + var lisRequestDto = new LisRequestDto() + { + Id = lisRequestId.Id, + LisRequestNo = patient.lisRequest.LisRequestNo, + PatientNo = patient.patient.PatientNo, + PatientRegisterNo = patient.patientRegister.PatientRegisterNo, + PatientName = patient.patientRegister.PatientName, + SexName = _cacheService.GetSexNameAsync(patient.patientRegister.SexId).Result, + Age = patient.patientRegister.Age, + SampleTypeName = patient.sampleType.DisplayName, + SampleContainerName = patient.sampleContainer.DisplayName, + ContainerColor = patient.sampleContainer.ContainerColor, + SampleContainerRemark = patient.sampleContainer.ContainerRemark, + AsbitemName = string.Join(",", patientList.OrderBy(o=>o.asbitem.DisplayOrder).Select(o=> o.asbitem.DisplayName ).Distinct()), + CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(patient.patientRegister.CustomerOrgId).Result.DisplayName, + DepartmentName = _cacheService.GetCustomerOrgNameAsync(patient.patientRegister.CustomerOrgId).Result + }; + lisRequestDtoList.Add(lisRequestDto); + } + lisRequestDtoList = lisRequestDtoList.OrderBy(o=>o.PatientNo).ToList(); + var result = new PagedResultDto(patientRegisterList.Count,lisRequestDtoList); - var result = new PagedResultDto(); return result; } @@ -147,7 +219,7 @@ namespace Shentun.Peis.LisRequests LastModifierId = s.LastModifierId, LastModifierName = _cacheService.GetUserNameAsync(s.LastModifierId).Result, LisRequestNo = s.LisRequestNo, - SamplerName = _cacheService.GetUserNameAsync( s.SamplerId).Result, + SamplerName = _cacheService.GetUserNameAsync(s.SamplerId).Result, SamplingTime = s.SamplingTime, SignInOrder = s.SignInOrder, SignInPerson = s.SignInPerson, @@ -172,7 +244,7 @@ namespace Shentun.Peis.LisRequests { await _lisRequestManager.AppendLisRequestAsync(item.LisRequestId, item.RegisterCheckAsbitemIds); } - + } else { @@ -191,7 +263,7 @@ namespace Shentun.Peis.LisRequests { if (RegisterAsbitemIds.Any()) { - var lisRequests = await _lisRequestManager.AddLisRequestAsync(RegisterAsbitemIds); + var lisRequests = await _lisRequestManager.AddLisRequestAsync(RegisterAsbitemIds); } else { @@ -229,7 +301,7 @@ namespace Shentun.Peis.LisRequests throw new UserFriendlyException("未正式登记,不能打印"); } //按人员登记批量修改 - var LisRequestIds = (await _registerAsbitemRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId && m.LisRequestId != null)).Select(s => s.LisRequestId); + var LisRequestIds = (await _registerCheckAsbitemRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId && m.LisRequestId != null)).Select(s => s.LisRequestId); if (LisRequestIds.Count() > 0) { var oldlist = await _lisRequestReportRepository.GetListAsync(m => LisRequestIds.Contains(m.Id)); @@ -248,7 +320,7 @@ namespace Shentun.Peis.LisRequests var oldent = await _lisRequestReportRepository.FirstOrDefaultAsync(m => m.Id == input.LisRequestId); if (oldent != null) { - var registerAsbitem = (await _registerAsbitemRepository.GetListAsync(o => o.LisRequestId == input.LisRequestId)).FirstOrDefault(); + var registerAsbitem = (await _registerCheckAsbitemRepository.GetListAsync(o => o.LisRequestId == input.LisRequestId)).FirstOrDefault(); var _patientRegister = await _patientRegisterRepository.GetAsync(registerAsbitem.PatientRegisterId); if (_patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PreRegistration) { diff --git a/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs b/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs index 24a01a0..933cb26 100644 --- a/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs +++ b/src/Shentun.Peis.Domain/Asbitems/Asbitem.cs @@ -151,6 +151,10 @@ namespace Shentun.Peis.Models public virtual ICollection AsbitemDetails { get; set; } [InverseProperty(nameof(ChargeAsbitem.Asbitem))] public virtual ICollection ChargeAsbitems { get; set; } + + [InverseProperty(nameof(ChargeRequestAsbitem.Asbitem))] + public virtual ICollection ChargeRequestAsbitems { get; set; } + [InverseProperty(nameof(CustomerOrgGroupDetail.Asbitem))] public virtual ICollection CustomerOrgGroupDetails { get; set; } [InverseProperty(nameof(MedicalPackageDetail.Asbitem))] diff --git a/src/Shentun.Peis.Domain/ChargeRequestAsbitems/ChargeRequestAsbitem.cs b/src/Shentun.Peis.Domain/ChargeRequestAsbitems/ChargeRequestAsbitem.cs new file mode 100644 index 0000000..c43ad3b --- /dev/null +++ b/src/Shentun.Peis.Domain/ChargeRequestAsbitems/ChargeRequestAsbitem.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.Domain.Entities; +using Microsoft.EntityFrameworkCore; +using Shentun.Peis.Models; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Shentun.Peis.Models +{ + /// + /// 收费申请组合项目 + /// + public class ChargeRequestAsbitem : AuditedEntity, IHasConcurrencyStamp + { + public ChargeRequestAsbitem() + { + + } + + public ChargeRequestAsbitem(Guid id):base(id) + { + + } + + /// + /// 收费申请单ID + /// + [Column("charge_request_id")] + public Guid ChargeRequestId { get; set; } + /// + /// 组合项目 + /// + [Column("asbitem_id")] + public Guid AsbitemId { get; set; } + /// + /// 价格 + /// + [Column("charge_price")] + [Precision(10, 2)] + public decimal ChargePrice { get; set; } + [Column("amount")] + public short Amount { get; set; } + + [Column("register_asbitem_id")] + public Guid RegisterAsbitemId { get; set; } + + [Column("is_charge")] + public char IsCharge { get; set; } + + [Column("concurrency_stamp")] + public string ConcurrencyStamp { get; set; } + + [ForeignKey(nameof(AsbitemId))] + [InverseProperty("ChargeRequestAsbitem")] + public virtual Asbitem Asbitem { get; set; } = null!; + + [ForeignKey(nameof(ChargeRequestId))] + [InverseProperty("ChargeRequestAsbitem")] + public virtual ChargeRequest ChargeRequest { get; set; } = null!; + + + } +} diff --git a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequest.cs b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequest.cs new file mode 100644 index 0000000..a23d015 --- /dev/null +++ b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequest.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.Domain.Entities; +using Shentun.Peis.Models; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace Shentun.Peis.Models +{ + /// + /// 收费申请主档 + /// + public class ChargeRequest : AuditedEntity, IHasConcurrencyStamp + { + public ChargeRequest() + { + + } + + public ChargeRequest(Guid id):base(id) + { + + } + /// + /// 登记流水号 + /// + [Column("patient_register_id")] + public Guid PatientRegisterId { get; set; } + + /// + /// 病人号 + /// + [Column("patient_id")] + public Guid PatientId { get; set; } + + /// + /// his 病人号 + /// + [Column("his_patient_id")] + public string HisPatientId { get; set; } + + /// + /// HIS收费单号 + /// + [Column("his_charge_no")] + public string HisChargeNo { get; set; } + + /// + /// 0、申请 1-收费,2-退费 + /// + [Column("charge_reguest_flag")] + [MaxLength(1)] + public char ChargeRequestFlag { get; set; } + + /// + + [Column("concurrency_stamp")] + public string ConcurrencyStamp { get; set; } + + //[ForeignKey(nameof(PatientRegisterId))] + //[InverseProperty("Charges")] + //public virtual PatientRegister PatientRegister { get; set; } = null!; + [InverseProperty(nameof(ChargeRequestAsbitem.ChargeRequest))] + public virtual ICollection ChargeRequestAsbitems { get; set; } + //[InverseProperty(nameof(ChargeBack.Charge))] + //public virtual ICollection ChargeBacks { get; set; } + //[InverseProperty(nameof(ChargePay.Charge))] + //public virtual ICollection ChargePays { get; set; } + + } +} diff --git a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs new file mode 100644 index 0000000..61ac79c --- /dev/null +++ b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs @@ -0,0 +1,45 @@ +using Shentun.Peis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; + +namespace Shentun.Peis.ChargeRequests +{ + public class ChargeRequestManager : DomainService + { + private readonly IRepository _repository; + public ChargeRequestManager(IRepository repository) + { + _repository = repository; + + } + /// + /// 创建 + /// + /// + /// + public async Task CreateAsync( + ChargeRequest entity + ) + { + + return new ChargeRequest( + GuidGenerator.Create() + ) + { + PatientRegisterId = entity.PatientRegisterId, + PatientId = entity.PatientId, + HisPatientId = entity.HisPatientId, + HisChargeNo = entity.HisChargeNo, + ChargeRequestFlag = entity.ChargeRequestFlag, + + }; + } + + } +} diff --git a/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequestAsbitems/ChargeRequestAsbitemDbMapping.cs b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequestAsbitems/ChargeRequestAsbitemDbMapping.cs new file mode 100644 index 0000000..2bfa449 --- /dev/null +++ b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequestAsbitems/ChargeRequestAsbitemDbMapping.cs @@ -0,0 +1,43 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using Shentun.Peis.EntityFrameworkCore; +using Shentun.Peis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.DbMapping.ChargeRequestAsbitems +{ + public class ChargeRequestAsbitemDbMapping : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder entity) + { + entity.HasComment("收费申请包含组合项目"); + + entity.Property(e => e.Id).ValueGeneratedNever(); + + entity.Property(e => e.AsbitemId) + .IsFixedLength() + .HasComment("组合项目").IsRequired(); + + entity.Property(e => e.ChargeRequestId).HasComment("收费申请单号"); + + entity.Property(e => e.ChargePrice).HasComment("价格").IsRequired(); + + entity.HasOne(d => d.Asbitem) + .WithMany(p => p.ChargeRequestAsbitems) + .HasForeignKey(d => d.AsbitemId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_charge_request_asbitem_asbitem"); + + entity.HasOne(d => d.ChargeRequest) + .WithMany(p => p.ChargeRequestAsbitems) + .HasForeignKey(d => d.ChargeRequestId) + .HasConstraintName("fk_charge_request_asbitem_charge"); + + entity.ConfigureByConvention(); + } + } +} diff --git a/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequests/ChargeRequestDbMapping.cs b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequests/ChargeRequestDbMapping.cs new file mode 100644 index 0000000..7369001 --- /dev/null +++ b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/ChargeRequests/ChargeRequestDbMapping.cs @@ -0,0 +1,33 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using Shentun.Peis.EntityFrameworkCore; +using Shentun.Peis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.DbMapping.ChargeRequests +{ + public class ChargeRequestDbMapping : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder entity) + { + entity.HasComment("收费申请单主档"); + + entity.Property(e => e.Id) + .ValueGeneratedNever() + .HasComment("收据申请单号").IsRequired(); + + entity.Property(e => e.ChargeRequestFlag).HasDefaultValueSql("0").IsRequired(); + + entity.Property(e => e.PatientRegisterId).HasComment("登记流水号").IsRequired(); + entity.Property(e => e.PatientId).HasComment("档案号").IsRequired(); + + + + entity.ConfigureByConvention(); + } + } +} diff --git a/src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs b/src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs index 163c25b..5079ec9 100644 --- a/src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs +++ b/src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs @@ -321,6 +321,11 @@ public class PeisDbContext : #endregion + #region 收费申请 + public DbSet ChargeRequests { get; set; } = null!; + public DbSet ChargeRequestAsbitems { get; set; } = null!; + #endregion + public PeisDbContext(DbContextOptions options) : base(options) { diff --git a/test/Shentun.Peis.Application.Tests/LisRequestAppServiceTest.cs b/test/Shentun.Peis.Application.Tests/LisRequestAppServiceTest.cs new file mode 100644 index 0000000..2b57784 --- /dev/null +++ b/test/Shentun.Peis.Application.Tests/LisRequestAppServiceTest.cs @@ -0,0 +1,54 @@ +using Shentun.Peis.CustomerOrgs; +using Shentun.Peis.LisRequests; +using Shentun.Peis.Models; +using Shentun.Peis.PatientRegisters; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Uow; +using Xunit; +using Xunit.Abstractions; + +namespace Shentun.Peis +{ + public class LisRequestAppServiceTest:PeisApplicationTestBase + { + private readonly IRepository _repository; + private readonly LisRequestAppService _appService; + private readonly ITestOutputHelper _output; + private readonly IUnitOfWorkManager _unitOfWorkManager; + public LisRequestAppServiceTest(ITestOutputHelper testOutputHelper) + { + _output = testOutputHelper; + _unitOfWorkManager = GetRequiredService(); + _repository = GetRequiredService>(); + _appService = GetRequiredService(); + } + + [Fact] + public async Task GetListInFilterAsync() + { + using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) + { + + + + PagedResultDto pagedResultDto = await _appService.GetListInFilterAsync(new GetLisRequestListDto() + { + StartDate = DateTime.Now.Date.AddDays(-30), + MaxResultCount = 1000 + }); + foreach (var item in pagedResultDto.Items) + { + _output.WriteLine(item.PatientName + "," + item.AsbitemName); + } + + await unitOfWork.CompleteAsync(); + } + } + } +} diff --git a/test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs b/test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs index 18a2c7a..28f9998 100644 --- a/test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs +++ b/test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs @@ -27,7 +27,7 @@ namespace Shentun.Peis.ColumnReferencePlugIns.Tests configParm = File.ReadAllText(filePath); var columnReferencePlugInsBase = new ColumnReferencePlugInsBase(configParm); - var items = await columnReferencePlugInsBase.GetCodeValues(); + var items = await columnReferencePlugInsBase.GetCodeValuesAsync(); foreach ( var item in items ) { _output.WriteLine(item.Code + item.DisplayName); @@ -43,7 +43,7 @@ namespace Shentun.Peis.ColumnReferencePlugIns.Tests configParm = File.ReadAllText(filePath); var columnReferencePlugInsBase = new ColumnReferencePlugInsDbBase(configParm); - var items = await columnReferencePlugInsBase.GetInterfaceCodeValues(); + var items = await columnReferencePlugInsBase.GetInterfaceCodeValuesAsync(); foreach (var item in items) { _output.WriteLine(item.Code + item.DisplayName); diff --git a/test/Shentun.Peis.ColumnReference.Tests/appsettings.json b/test/Shentun.Peis.ColumnReference.Tests/appsettings.json index a63b2da..2146bd8 100644 --- a/test/Shentun.Peis.ColumnReference.Tests/appsettings.json +++ b/test/Shentun.Peis.ColumnReference.Tests/appsettings.json @@ -5,7 +5,8 @@ "ClientUrl": "http://localhost:9530", "CorsOrigins": "https://*.Peis.com,http://localhost:4200,http://localhost:9530,http://192.168.1.108:9530,http://localhost:8080,http://localhost:8081", "RedirectAllowedUrls": "http://localhost:9530", - "Sql": "select id::varchar as Code ,display_name as DisplayName ,simple_code as SimpleCode ,display_order as DisplayOrder from asbitem" + "Sql": "select id::varchar as Code ,display_name as DisplayName ,simple_code as SimpleCode ,display_order as DisplayOrder from asbitem", + "ColumnNames": "编码,名称" }, "Interface": { //"DbType": "SqlServer", @@ -13,7 +14,8 @@ //"ConnectionStrings": "Server=.;Database=mypeis_wyy;User ID=sa;Password=shentun;Application Name=mypeis;Encrypt=False;TrustServerCertificate=True", "ConnectionStrings": "User ID=TJ_LIS;Password=TJ_LIS;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.12.34)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = HIS56)))", - "Sql": "select ZHID as Code ,ZHMC as DisplayName from PORTAL56_LIS.vi_tj_testitemgroup" + "Sql": "select ZHID as Code ,ZHMC as DisplayName from PORTAL56_LIS.vi_tj_testitemgroup", + "ColumnNames": "编码,名称" }, "ConnectionStrings": { "Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123;" diff --git a/test/Shentun.Peis.EntityFrameworkCore.Tests/EntityFrameworkCore/PeisEntityFrameworkCoreTestModule.cs b/test/Shentun.Peis.EntityFrameworkCore.Tests/EntityFrameworkCore/PeisEntityFrameworkCoreTestModule.cs index 199c37d..c4c6915 100644 --- a/test/Shentun.Peis.EntityFrameworkCore.Tests/EntityFrameworkCore/PeisEntityFrameworkCoreTestModule.cs +++ b/test/Shentun.Peis.EntityFrameworkCore.Tests/EntityFrameworkCore/PeisEntityFrameworkCoreTestModule.cs @@ -40,8 +40,8 @@ public class PeisEntityFrameworkCoreTestModule : AbpModule } private void ConfigurePostGress(IServiceCollection services) { - //string connectStr = "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123"; - string connectStr = "Host=10.1.12.140;Port=5432;Database=ShentunPeis;User ID=postgres;Password=st123;"; + string connectStr = "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123"; + //string connectStr = "Host=10.1.12.140;Port=5432;Database=ShentunPeis;User ID=postgres;Password=st123;"; services.Configure(options => {