diff --git a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs index 00f91bc..1abc198 100644 --- a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs +++ b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs @@ -32,6 +32,7 @@ using System.Text; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Services; +using Volo.Abp.Auditing; using Volo.Abp.Caching; using Volo.Abp.Data; using Volo.Abp.Domain.Entities; @@ -172,6 +173,8 @@ namespace Shentun.Peis.CCTJExportDatas private readonly IRepository _roomRepository; private readonly IRepository _roomDetailRepository; private readonly IRepository _userItemTypeRepository; + private readonly IDataFilter _dataFilter; + public CCTJExportDataAppService( UnitOfWorkManager unitOfWorkManager, IRepository deviceTypeRepository, @@ -248,7 +251,8 @@ namespace Shentun.Peis.CCTJExportDatas IRepository commonTableRepository, IRepository roomRepository, IRepository roomDetailRepository, - IRepository userItemTypeRepository) + IRepository userItemTypeRepository, + IDataFilter dataFilter) { _unitOfWorkManager = unitOfWorkManager; _deviceTypeRepository = deviceTypeRepository; @@ -326,6 +330,7 @@ namespace Shentun.Peis.CCTJExportDatas _roomRepository = roomRepository; _roomDetailRepository = roomDetailRepository; _userItemTypeRepository = userItemTypeRepository; + _dataFilter = dataFilter; } @@ -3147,7 +3152,7 @@ namespace Shentun.Peis.CCTJExportDatas } } - // Guid autoPatientId = GuidGenerator.Create(); //档案ID + // Guid autoPatientId = GuidGenerator.Create(); //档案ID Guid autoPatientId = StringConvertGuidHelper.GenerateURLUUID(row["patient_id"].ToString()); var dataPatient = new Patient(autoPatientId) @@ -3354,7 +3359,31 @@ namespace Shentun.Peis.CCTJExportDatas SummaryDoctorId = summaryDoctorId, ThirdInfo = row["third_info"].ToString(), }; - await _patientRegisterRepository.InsertAsync(data, true); + + + #region 修改创建者日期跟id + Guid registerDoctorId = Guid.Parse(_configuration.GetValue("AdminId")); + var registerDoctorEnt = userList.Where(m => m.Name == row["register_doctor"].ToString().Trim() + || m.Surname == row["register_doctor"].ToString().Trim() + || m.UserName == row["register_doctor"].ToString().Trim()).FirstOrDefault(); + if (registerDoctorEnt != null) + { + registerDoctorId = registerDoctorEnt.Id; + } + + data.UpdateCreatorId(registerDoctorId); + data.UpdateCreationTime(Convert.ToDateTime(row["register_date"])); + + #endregion + + + // 关键:临时禁用审计过滤器 + using (_dataFilter.Disable()) + { + await _patientRegisterRepository.InsertAsync(data, true); + } + + //await _patientRegisterRepository.InsertAsync(data, true); //stopwatch31.Stop(); //_logger.LogInformation($"{row["patient_register_id"]}_第31片段耗时:{stopwatch31.ElapsedMilliseconds}"); @@ -3782,18 +3811,18 @@ namespace Shentun.Peis.CCTJExportDatas await uow.CompleteAsync(); - #region 修改创建者日期跟id - Guid registerDoctorId = Guid.Parse(_configuration.GetValue("AdminId")); - var registerDoctorEnt = userList.Where(m => m.Name == row["register_doctor"].ToString().Trim()).FirstOrDefault(); - if (registerDoctorEnt != null) - { - registerDoctorId = registerDoctorEnt.Id; - } - string sql_update = $"update patient_register set creator_id='{registerDoctorId}',creation_time='{Convert.ToDateTime(row["register_date"]).ToString("yyyy-MM-dd HH:mm:ss")}'"; - sql_update += $" where id='{patientRegisterId}' "; - await newDb.Ado.ExecuteCommandAsync(sql_update); - #endregion - ; + //#region 修改创建者日期跟id + //Guid registerDoctorId = Guid.Parse(_configuration.GetValue("AdminId")); + //var registerDoctorEnt = userList.Where(m => m.Name == row["register_doctor"].ToString().Trim()).FirstOrDefault(); + //if (registerDoctorEnt != null) + //{ + // registerDoctorId = registerDoctorEnt.Id; + //} + //string sql_update = $"update patient_register set creator_id='{registerDoctorId}',creation_time='{Convert.ToDateTime(row["register_date"]).ToString("yyyy-MM-dd HH:mm:ss")}'"; + //sql_update += $" where id='{patientRegisterId}' "; + //await newDb.Ado.ExecuteCommandAsync(sql_update); + //#endregion + } stopwatch3.Stop(); _logger.LogInformation($"{row["patient_register_id"]}_处理单个人总耗时:{stopwatch3.ElapsedMilliseconds}"); diff --git a/src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs b/src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs index 616fd34..710b806 100644 --- a/src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs +++ b/src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs @@ -229,12 +229,19 @@ namespace Shentun.Peis.ItemTypes if (itemTypeId != Guid.Empty) { - var itemTypeParent = await _repository.FirstOrDefaultAsync(m => m.Id == itemTypeId); - itmeTypeIds = (await _repository.GetListAsync(m => !string.IsNullOrEmpty(m.PathCode) - && !string.IsNullOrEmpty(itemTypeParent.PathCode) - && m.PathCode.Contains(itemTypeParent.PathCode))).Select(s => s.Id).ToList(); - itmeTypeIds.Add(itemTypeId); + List newItemTypeList = new List(); + + var itemTypeList = (await _repository.GetQueryableAsync()).OrderBy(o => o.DisplayOrder).ToList(); + GetChildItemType(itemTypeList, itemTypeId, newItemTypeList); + itmeTypeIds.AddRange(newItemTypeList.Select(s => s.Id).ToList()); + + // var itemTypeParent = await _repository.FirstOrDefaultAsync(m => m.Id == itemTypeId); + // itmeTypeIds = (await _repository.GetListAsync(m => !string.IsNullOrEmpty(m.PathCode) + //&& !string.IsNullOrEmpty(itemTypeParent.PathCode) + //&& m.PathCode.Contains(itemTypeParent.PathCode))).Select(s => s.Id).ToList(); + + // itmeTypeIds.Add(itemTypeId); } return itmeTypeIds; diff --git a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs index 70d85fa..e81b8f0 100644 --- a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs +++ b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs @@ -360,6 +360,21 @@ namespace Shentun.Peis.Models } + public void UpdateLastModifierId(Guid id) + { + LastModifierId = id; + } + + public void UpdateCreationTime(DateTime dateTime) + { + CreationTime = dateTime; + } + + public void UpdateLastModificationTime(DateTime dateTime) + { + LastModificationTime = dateTime; + } + //[Column("concurrency_stamp")] //[StringLength(40)] //public string ConcurrencyStamp { get; set; } = null!;