From 575a84b18f844c0ef7e6089d6983029c6cc9f7b5 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Fri, 17 Oct 2025 15:33:13 +0800 Subject: [PATCH] 1017 --- .../CCTJExportDataAppService.cs | 795 ++++++++++++++++-- .../CustomerOrgTypes/CustomerOrgType.cs | 10 + .../GuideTypes/GuideType.cs | 2 +- .../MedicalConclusionType.cs | 1 + .../PeisHttpApiHostModule.cs | 20 +- .../appsettings.json | 4 +- 6 files changed, 755 insertions(+), 77 deletions(-) diff --git a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs index d0bc842..b348a22 100644 --- a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs +++ b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs @@ -15,6 +15,7 @@ using Shentun.Peis.ItemTypes; using Shentun.Peis.Migrations; using Shentun.Peis.Models; using Shentun.Peis.MyUser; +using Shentun.Peis.OrganizationUnits; using Shentun.Peis.PatientRegisters; using Shentun.Peis.RegisterCheckItems; using Shentun.Utilities; @@ -29,6 +30,7 @@ using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.Caching; +using Volo.Abp.Data; using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories; using Volo.Abp.EntityFrameworkCore; @@ -40,7 +42,7 @@ using static System.Formats.Asn1.AsnWriter; namespace Shentun.Peis.CCTJExportDatas { /// - /// 长城体检中心 老系统数据导入1 + /// 长城体检中心数据导入 /// [Authorize] public class CCTJExportDataAppService : ApplicationService @@ -137,6 +139,24 @@ namespace Shentun.Peis.CCTJExportDatas private static List _customerOrgRegisterList = new List(); private static List _userList = new List(); + + private readonly IRepository _guideTypeRepository; + private readonly IRepository _medicalReportTypeRepository; + private readonly IRepository _medicalConclusionTypeRepository; + private readonly IRepository _sampleContainerRepository; + private readonly IRepository _customerOrgTypeRepository; + private readonly IRepository _organizationUnitRepository; + private readonly PeisOrganizationUnitManager _organizationUnitManager; + private readonly IRepository _sexRepository; + private readonly IRepository _forSexRepository; + private readonly IRepository _maritalStatusRepository; + private readonly IRepository _resultStatusRepository; + private readonly IRepository _payModeRepository; + private readonly IRepository _diagnosisLevelRepository; + private readonly IdentityUserManager _identityUserManager; + private readonly IRepository _identityUserOrganizationUnitRepository; + private readonly IRepository _commonTableRepository; + public CCTJExportDataAppService( UnitOfWorkManager unitOfWorkManager, IRepository deviceTypeRepository, @@ -194,7 +214,23 @@ namespace Shentun.Peis.CCTJExportDatas IRepository cardRegisterRepository, IServiceScopeFactory serviceScopeFactory, IDbContextProvider dbContextProvider, - ICurrentUser currentUser) + ICurrentUser currentUser, + IRepository guideTypeRepository, + IRepository medicalReportTypeRepository, + IRepository medicalConclusionTypeRepository, + IRepository sampleContainerRepository, + IRepository customerOrgTypeRepository, + IRepository organizationUnitRepository, + PeisOrganizationUnitManager organizationUnitManager, + IRepository sexRepository, + IRepository forSexRepository, + IRepository maritalStatusRepository, + IRepository resultStatusRepository, + IRepository payModeRepository, + IRepository diagnosisLevelRepository, + IdentityUserManager identityUserManager, + IRepository identityUserOrganizationUnitRepository, + IRepository commonTableRepository) { _unitOfWorkManager = unitOfWorkManager; _deviceTypeRepository = deviceTypeRepository; @@ -253,6 +289,202 @@ namespace Shentun.Peis.CCTJExportDatas _serviceScopeFactory = serviceScopeFactory; _dbContextProvider = dbContextProvider; _currentUser = currentUser; + _guideTypeRepository = guideTypeRepository; + _medicalReportTypeRepository = medicalReportTypeRepository; + _medicalConclusionTypeRepository = medicalConclusionTypeRepository; + _sampleContainerRepository = sampleContainerRepository; + _customerOrgTypeRepository = customerOrgTypeRepository; + _organizationUnitRepository = organizationUnitRepository; + _organizationUnitManager = organizationUnitManager; + _sexRepository = sexRepository; + _forSexRepository = forSexRepository; + _maritalStatusRepository = maritalStatusRepository; + _resultStatusRepository = resultStatusRepository; + _payModeRepository = payModeRepository; + _diagnosisLevelRepository = diagnosisLevelRepository; + _identityUserManager = identityUserManager; + _identityUserOrganizationUnitRepository = identityUserOrganizationUnitRepository; + _commonTableRepository = commonTableRepository; + } + + + + + /// + /// 默认数据处理 + /// + /// + [HttpPost("api/app/CCTJExportData/HandDefaultData")] + public async Task HandDefaultData() + { + #region 默认指引类别 + var isDefaultGuidType = await _guideTypeRepository.FirstOrDefaultAsync(f => f.Id == defaultGuidTypeId); + if (isDefaultGuidType == null) + { + List guideTypes = new List(); + + guideTypes.Add(new GuideType(defaultGuidTypeId) + { + DisplayName = "普通检查", + SimpleCode = "PTJC", + DisplayOrder = 1 + }); + guideTypes.Add(new GuideType('1') + { + DisplayName = "检验", + SimpleCode = "JY", + DisplayOrder = 2 + }); + guideTypes.Add(new GuideType('2') + { + DisplayName = "特检", + SimpleCode = "TJ", + DisplayOrder = 3 + }); + guideTypes.Add(new GuideType('3') + { + DisplayName = "放射", + SimpleCode = "FS", + DisplayOrder = 4 + }); + + await _guideTypeRepository.InsertManyAsync(guideTypes); + } + #endregion + + #region 默认体检报告类别 + var isDefaultMedicalReportType = await _medicalReportTypeRepository.FirstOrDefaultAsync(f => f.Id == defaultMedicalReportTypeId); + if (isDefaultMedicalReportType == null) + { + List medicalReportTypes = new List(); + medicalReportTypes.Add(new MedicalReportType(defaultMedicalReportTypeId) + { + DisplayName = "普通检查", + SimpleCode = "PTJC", + DisplayOrder = 1 + }); + medicalReportTypes.Add(new MedicalReportType('1') + { + DisplayName = "检验", + SimpleCode = "JY", + DisplayOrder = 2 + }); + medicalReportTypes.Add(new MedicalReportType('2') + { + DisplayName = "特检", + SimpleCode = "TJ", + DisplayOrder = 3 + }); + medicalReportTypes.Add(new MedicalReportType('3') + { + DisplayName = "放射", + SimpleCode = "FS", + DisplayOrder = 4 + }); + + await _medicalReportTypeRepository.InsertManyAsync(medicalReportTypes); + } + #endregion + + #region 默认体检结论类别 + var isDefaultMedicalConclusionType = await _medicalConclusionTypeRepository.FirstOrDefaultAsync(f => f.Id == defaultMedicalConclusionType); + if (isDefaultMedicalConclusionType == null) + { + var defaultEnt = new MedicalConclusionType + { + Id = defaultMedicalConclusionType, + DisplayName = "社会体检", + DisplayOrder = 1 + }; + + await _medicalConclusionTypeRepository.InsertAsync(defaultEnt); + } + #endregion + + #region 默认体检中心 + var isDefaultMedicalCenter = await _organizationUnitRepository.FirstOrDefaultAsync(f => f.Id == defaultMedicalCenterId); + if (isDefaultMedicalCenter == null) + { + OrganizationUnit defaultEnt = new OrganizationUnit(defaultMedicalCenterId, "石家庄长城体检中心", null); + defaultEnt.SetProperty("IsPeis", 'Y'); + + await _organizationUnitManager.CreateAsync(defaultEnt); + } + #endregion + + #region 默认容器 + var isDefaultSampleContainer = await _sampleContainerRepository.FirstOrDefaultAsync(f => f.Id == defaultSampleContainerId); + if (isDefaultSampleContainer == null) + { + var defaultEnt = new SampleContainer(defaultSampleContainerId) + { + DisplayName = "管子", + SimpleCode = "GZ", + DisplayOrder = 1, + ContainerColor = 16711680, + ContainerColorName = "其它", + ContainerRemark = "" + }; + + await _sampleContainerRepository.InsertAsync(defaultEnt); + } + #endregion + + #region 默认单位性质 + var isDefaultOrgType = await _customerOrgTypeRepository.FirstOrDefaultAsync(f => f.Id == defaultOrgTypeId); + if (isDefaultOrgType == null) + { + var defaultEnt = new CustomerOrgType(defaultOrgTypeId) + { + DisplayName = "其它", + SimpleCode = "QT", + DisplayOrder = 1 + }; + + await _customerOrgTypeRepository.InsertAsync(defaultEnt); + } + #endregion + + + #region 诊断级别 + var isDiagnosisLevel = await _diagnosisLevelRepository.CountAsync(); + if (isDiagnosisLevel == 0) + { + List diagnosisLevels = new List(); + + diagnosisLevels.Add(new DiagnosisLevel(1) + { + DisplayName = "一级", + DisplayOrder = 1 + + }); + diagnosisLevels.Add(new DiagnosisLevel(2) + { + DisplayName = "二级", + DisplayOrder = 2 + }); + diagnosisLevels.Add(new DiagnosisLevel(3) + { + DisplayName = "三级", + DisplayOrder = 3 + }); + diagnosisLevels.Add(new DiagnosisLevel(4) + { + DisplayName = "四级", + DisplayOrder = 4 + }); + + await _diagnosisLevelRepository.InsertManyAsync(diagnosisLevels); + } + #endregion + + await CreateSexAsync(); + + await CreateForSexAsync(); + + await CreateMaritalStatusAsync(); + + await CreateResultStatusAsync(); } @@ -260,7 +492,6 @@ namespace Shentun.Peis.CCTJExportDatas /// 处理基础数据 /// /// - [AllowAnonymous] [HttpPost("api/app/CCTJExportData/HandBaseData")] public async Task HandBaseData() { @@ -275,6 +506,8 @@ namespace Shentun.Peis.CCTJExportDatas await TransferNationData(); await TransferMedicalConclusionData(); await TransferUserData(); + await TransferUserOrganizationUnitData(); + await TransferPayModeData(); } @@ -282,7 +515,6 @@ namespace Shentun.Peis.CCTJExportDatas /// 处理基础项目相关数据 /// /// - [AllowAnonymous] [HttpPost("api/app/CCTJExportData/HandBaseItemData")] public async Task HandBaseItemData() { @@ -760,39 +992,55 @@ namespace Shentun.Peis.CCTJExportDatas [RemoteService(false)] public async Task TransferNationData() { - var newNationList = await _nationRepository.GetListAsync(); - var oldNationList = await oldDb.Ado.GetDataTableAsync("select * from nation"); - - if (oldNationList.Rows.Count > 0) + var count = await _nationRepository.GetCountAsync(); + if (count == 0) { - - foreach (DataRow row in oldNationList.Rows) + var oldNationList = await oldDb.Ado.GetDataTableAsync("select * from nation order by nation_id asc"); + if (oldNationList.Rows.Count > 0) { - string oldName = row["nation_name"].ToString(); //老系统名称 - var newNationEnt = newNationList.Where(m => m.DisplayName.Contains(oldName)).FirstOrDefault(); - if (newNationEnt != null) + + foreach (DataRow row in oldNationList.Rows) { - var fieldComparison = new FieldComparison + using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) { - FieldName = "id", - NewKeyValue = newNationEnt.Id.ToString(), - OldKeyValue = row["nation_id"].ToString(), - TableName = "nation" - }; - await _fieldComparisonRepository.InsertAsync(fieldComparison); + var data = new Nation() + { + Id = row["nation_id"].ToString(), + CountryCode = "", + DisplayName = row["nation_name"].ToString(), + DisplayOrder = oldNationList.Rows.IndexOf(row) + 1, + SimpleCode = row["py_simple_code"].ToString() + }; + + await _nationRepository.InsertAsync(data); + + var fieldComparison = new FieldComparison + { + TableName = "nation", + FieldName = "id", + NewKeyValue = row["nation_id"].ToString(), + OldKeyValue = row["nation_id"].ToString() + }; + + await _fieldComparisonRepository.InsertAsync(fieldComparison); + + await uow.CompleteAsync(); + } } } - _logger.LogInformation($"民族数据处理完毕,处理数量{oldNationList.Rows.Count}"); } else { - _logger.LogInformation($"民族数据无需处理"); + _logger.LogInformation($"民族数据已存在,未处理"); } + + } + /// /// 迁移体检结论数据 /// @@ -844,6 +1092,74 @@ namespace Shentun.Peis.CCTJExportDatas } } + + /// + /// 迁移用户对应的科室 + /// + /// + [RemoteService(false)] + public async Task TransferUserOrganizationUnitData() + { + var count = await _identityUserOrganizationUnitRepository.CountAsync(); + if (count == 0) + { + var identityUserList = await _identityUserRepository.GetListAsync(); + if (identityUserList.Count > 0) + { + foreach (var item in identityUserList) + { + await _identityUserManager.SetOrganizationUnitsAsync(item.Id, defaultMedicalCenterId); + } + } + _logger.LogInformation($"用户对应的科室处理完毕,处理数量{identityUserList.Count}"); + } + else + { + _logger.LogInformation("用户对应的科室已存在,未处理"); + } + } + + /// + /// 迁移收费方式数据 + /// + /// + [RemoteService(false)] + public async Task TransferPayModeData() + { + var count = await _payModeRepository.GetCountAsync(); + if (count == 0) + { + var oldPaymentModeList = await oldDb.Ado.GetDataTableAsync("select payment_mode_id,payment_mode_name from payment_mode order by display_order asc"); + if (oldPaymentModeList.Rows.Count > 0) + { + foreach (DataRow row in oldPaymentModeList.Rows) + { + using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) + { + + var data = new PayMode() + { + Id = row["payment_mode_id"].ToString(), + DisplayName = row["payment_mode_name"].ToString(), + DisplayOrder = oldPaymentModeList.Rows.IndexOf(row) + 1, + SimpleCode = LanguageConverter.GetPYSimpleCode(row["payment_mode_name"].ToString()), + IsActive = 'Y' + }; + + await _payModeRepository.InsertAsync(data); + + await uow.CompleteAsync(); + } + } + } + _logger.LogInformation($"收费方式数据处理完毕,处理数量{oldPaymentModeList.Rows.Count}"); + } + else + { + _logger.LogInformation("收费方式数据已存在,未处理"); + } + } + #endregion @@ -2450,6 +2766,7 @@ namespace Shentun.Peis.CCTJExportDatas /// 是否继续处理 /// [HttpPost("api/app/CCTJExportData/TransferPatientRegisterWithDetailData")] + [RemoteService(false)] public async Task TransferPatientRegisterWithDetailData(int handCount, string startdate, string enddate, bool isGo = false) { Stopwatch stopwatch = new Stopwatch(); @@ -2474,7 +2791,7 @@ namespace Shentun.Peis.CCTJExportDatas DataTable oldPatientRegisterList = await oldDb.Ado.GetDataTableAsync(sqlPatientRegister); stopwatch.Stop(); - _logger.LogInformation($"获取要导入的人员总数耗时:{stopwatch.ElapsedMilliseconds}"+ $"共{oldPatientRegisterList.Rows.Count}条"); + _logger.LogInformation($"获取要导入的人员总数耗时:{stopwatch.ElapsedMilliseconds}" + $"共{oldPatientRegisterList.Rows.Count}条"); if (oldPatientRegisterList.Rows.Count > 0) { Stopwatch stopwatch2 = new Stopwatch(); @@ -2516,14 +2833,38 @@ namespace Shentun.Peis.CCTJExportDatas } + + /// + /// 人员信息导入 + /// + /// + /// + /// + /// [HttpPost("api/app/CCTJExportData/TransferPatientRegisterWithDetailDataById")] - public async Task TransferPatientRegisterWithDetailDataById(long patientRegisterIdFrom,long patientRegisterIdTo) + public async Task TransferPatientRegisterWithDetailDataById(long patientRegisterIdFrom, long patientRegisterIdTo) { + + #region 初始数据 + if (fieldComparisonTempList.Count == 0) + { + fieldComparisonTempList = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName != "patient_register").ToList(); + asbitemFieldComparisonTempList = fieldComparisonTempList.Where(o => o.TableName == "asbitem").ToList(); + itemFieldComparisonTempList = fieldComparisonTempList.Where(o => o.TableName == "item").ToList(); + } + if (!_customerOrgRegisterList.Any()) + _customerOrgRegisterList = await _customerOrgRegisterRepository.GetListAsync(); + if (!_userList.Any()) + _userList = await _identityUserRepository.GetListAsync(); + _logger.LogInformation($"组合项目数:{asbitemFieldComparisonTempList.Count},项目数:{itemFieldComparisonTempList.Count}"); + + #endregion + Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); _logger.LogInformation($"开始导入数据"); //当前导入的ID - string nextKeyValue = oldDb.Ado.GetString("select keyvalue from tb_export_key where tablename='patient_register' "); + //string nextKeyValue = oldDb.Ado.GetString("select keyvalue from tb_export_key where tablename='patient_register' "); string sqlPatientRegister = ""; if (patientRegisterIdFrom >= patientRegisterIdTo) @@ -2544,7 +2885,7 @@ namespace Shentun.Peis.CCTJExportDatas sqlPatientRegister = $"select top 1000 * from patient_register where patient_register_id>='{patientRegisterIdFrom}'" + $" and patient_register_id<'{patientRegisterIdTo}' order by patient_register_id asc"; - + DataTable oldPatientRegisterList = await oldDb.Ado.GetDataTableAsync(sqlPatientRegister); stopwatch.Stop(); @@ -2575,11 +2916,11 @@ namespace Shentun.Peis.CCTJExportDatas stopwatch5.Stop(); _logger.LogInformation($"处理完全部人员耗时:{stopwatch5.ElapsedMilliseconds}"); _logger.LogInformation($"人员数据处理{oldPatientRegisterList.Rows.Count}条,当前总数{hangPatientRegisterCount}"); - + } - private async Task ImportSingle(List customerOrgRegisterList,List userList, DataRow row) + private async Task ImportSingle(List customerOrgRegisterList, List userList, DataRow row) { try { @@ -2653,7 +2994,7 @@ namespace Shentun.Peis.CCTJExportDatas SimpleCode = LanguageConverter.GetPYSimpleCode(row["name"].ToString()), Telephone = row["telephone"].ToString() }; - + await _patientRepository.InsertAsync(dataPatient, true); patientId = autoPatientId; } @@ -2847,8 +3188,8 @@ namespace Shentun.Peis.CCTJExportDatas if (oldRegisterAsbitemList.Rows.Count > 0) { - var oldRegisterCheckItemListAll= await oldDb.Ado.GetDataTableAsync($"select * from register_item where patient_register_id='{row["patient_register_id"].ToString()}'"); - + var oldRegisterCheckItemListAll = await oldDb.Ado.GetDataTableAsync($"select * from register_item where patient_register_id='{row["patient_register_id"].ToString()}'"); + var registerCheckList = new List(); var registerCheckAsbitemList = new List(); var registerCheckItemList = new List(); @@ -2940,7 +3281,7 @@ namespace Shentun.Peis.CCTJExportDatas PayTypeFlag = Convert.ToChar(rowAsbitem["payment_mode"].ToString()), RegisterCheckId = registerCheckId, StandardPrice = Convert.ToDecimal(rowAsbitem["standard_price"].ToString()), - + }; //await _registerCheckAsbitemRepository.InsertAsync(dataRegisterAsbitem); @@ -2954,7 +3295,7 @@ namespace Shentun.Peis.CCTJExportDatas #region 插入医生小结 - + var oldSummary = rowAsbitem["summary"].ToString(); if (!string.IsNullOrWhiteSpace(oldSummary)) @@ -2985,7 +3326,7 @@ namespace Shentun.Peis.CCTJExportDatas oldRegisterCheckItemListAll.DefaultView.RowFilter = $"asbitem_id={rowAsbitem["asbitem_id"].ToString()}"; var oldRegisterCheckItemList = oldRegisterCheckItemListAll.DefaultView.ToTable(); //var oldRegisterCheckItemList = await oldDb.Ado.GetDataTableAsync($"select * from register_item where patient_register_id='{row["patient_register_id"].ToString()}' and asbitem_id='{rowAsbitem["asbitem_id"].ToString()}'"); - + if (oldRegisterCheckItemList.Rows.Count > 0) { @@ -3020,9 +3361,9 @@ namespace Shentun.Peis.CCTJExportDatas } } - - - + + + #endregion @@ -3853,6 +4194,7 @@ namespace Shentun.Peis.CCTJExportDatas /// 每次处理的人员数量 /// 是否继续处理 /// + [RemoteService(false)] [HttpPost("api/app/CCTJExportData/TransferPatientRegisterWithDetailReverseData")] public async Task TransferPatientRegisterWithDetailReverseData(int handCount, bool isGo = false) { @@ -4434,7 +4776,7 @@ namespace Shentun.Peis.CCTJExportDatas /// public async Task TranferItemColumnReferenceData() { - var oldColumnReferenceList = await oldDb.Ado.GetDataTableAsync($"select code_value,interface_code_value from column_reference_detail where column_reference_id=004 and interface_code_value!=''"); + var oldColumnReferenceList = await oldDb.Ado.GetDataTableAsync($"select code_value,interface_code_value from column_reference_detail where column_reference_id=001 and interface_code_value!=''"); foreach (DataRow item in oldColumnReferenceList.Rows) { var fieldComparisonEnt = await _fieldComparisonRepository.FirstOrDefaultAsync(f => f.TableName == "item" && f.OldKeyValue == item["code_value"].ToString().Trim()); @@ -4449,7 +4791,7 @@ namespace Shentun.Peis.CCTJExportDatas var inputDto = new UpdateColumnReferenceInterfaceDto { - ColumnReferenceId = Guid.Parse("3a125a29-ae4d-1ba8-db69-cffd0c629fc0"), + ColumnReferenceId = Guid.Parse("3a1cfe80-ab99-509b-5447-8cf83c25fba6"), AppCode = new UpdateColumnReferenceCodeDto { CodeValue = newItemId.ToString() }, InterfaceCodes = oldInterfaceCodeValues.Select(s => new UpdateColumnReferenceInterfaceCodeDto { @@ -4463,6 +4805,49 @@ namespace Shentun.Peis.CCTJExportDatas } } + + /// + /// 迁移迪安项目对照数据 + /// + /// + public async Task TranferDAItemColumnReferenceData() + { + List commonTables = new List(); + var oldColumnReferenceList = await oldDb.Ado.GetDataTableAsync($"select code_value,interface_code_value from column_reference_detail where column_reference_id=002 and interface_code_value!=''"); + foreach (DataRow item in oldColumnReferenceList.Rows) + { + var fieldComparisonEnt = await _fieldComparisonRepository.FirstOrDefaultAsync(f => f.TableName == "item" && f.OldKeyValue == item["code_value"].ToString().Trim()); + if (fieldComparisonEnt != null) + { + var newItemId = Guid.Parse(fieldComparisonEnt.NewKeyValue); + + + + string oldInterfaceCodeValue = item["interface_code_value"].ToString(); + string[] oldInterfaceCodeValues = oldInterfaceCodeValue.Split(','); + + foreach (var codeValue in oldInterfaceCodeValues) + { + commonTables.Add(new CommonTable + { + CommonTableTypeId = "100", + DataCode = codeValue, + DisplayName = newItemId.ToString(), + DisplayOrder = oldColumnReferenceList.Rows.IndexOf(item) + 1, + SimpleCode = "" + }); + } + } + + } + + await _commonTableRepository.InsertManyAsync(commonTables); + } + + #region 会员卡相关 + + + /// /// 迁移会员卡相关数据 金额后面统计 /// @@ -4591,7 +4976,7 @@ namespace Shentun.Peis.CCTJExportDatas _logger.LogInformation($"会员卡数据已存在,未处理"); } } - + #endregion #region 私有方法 @@ -4665,45 +5050,325 @@ namespace Shentun.Peis.CCTJExportDatas var oldUserList = await oldDb.Ado.GetDataTableAsync("select * from users"); if (oldUserList.Rows.Count > 0) { - - foreach (DataRow row in oldUserList.Rows) + if (await _identityUserRepository.CountAsync() == 1) { - using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) + foreach (DataRow row in oldUserList.Rows) { - string newUserName = LanguageConverter.GetPYSimpleCode(row["user_id"].ToString().Trim()); - - var isUserName = await _identityUserRepository.FirstOrDefaultAsync(m => m.UserName == newUserName); - if (isUserName != null) - { - newUserName += "2"; - } - var userEnt = new IdentityUserCreateNoEmailDto + using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) { - Email = "", - IsActive = row["valid_flag"].ToString() == "Y" ? true : false, - LockoutEnabled = false, - Name = row["user_name"].ToString().Trim(), - Password = string.IsNullOrWhiteSpace(row["password"].ToString()) ? "888888" : row["password"].ToString(), - PhoneNumber = "", - RoleNames = new string[] { "admin" }, - Surname = "", - UserName = newUserName, - UserPhoto = "", - UserSign = "" - }; + string newUserName = LanguageConverter.GetPYSimpleCode(row["user_id"].ToString().Trim()); - await _myUserAppService.CreateAsync(userEnt); + var isUserName = await _identityUserRepository.FirstOrDefaultAsync(m => m.UserName == newUserName); + if (isUserName != null) + { + newUserName += "2"; + } + var userEnt = new IdentityUserCreateNoEmailDto + { + Email = "", + IsActive = row["valid_flag"].ToString() == "Y" ? true : false, + LockoutEnabled = false, + Name = "", + Password = string.IsNullOrWhiteSpace(row["password"].ToString()) ? "888888" : row["password"].ToString(), + PhoneNumber = "", + RoleNames = new string[] { "admin" }, + Surname = row["user_name"].ToString().Trim(), + UserName = newUserName, + UserPhoto = "", + UserSign = "" + }; - await uow.CompleteAsync(); + await _myUserAppService.CreateAsync(userEnt); + await uow.CompleteAsync(); + + } } + + + } + else + { + _logger.LogInformation("用户数据已存在,未处理"); } + } + + + } + + #endregion + + + #region 默认数据 + + /// + /// 生成性别表基础数据 + /// + /// + private async Task CreateSexAsync() + { + if (await _sexRepository.GetCountAsync() == 0) + { + List sexes = new List(); + sexes.Add(new Sex + { + DisplayName = "未知", + Id = 'U', + DisplayOrder = 1, + SimpleCode = LanguageConverter.GetPYSimpleCode("未知") + }); + sexes.Add(new Sex + { + DisplayName = "男", + Id = 'M', + DisplayOrder = 2, + SimpleCode = LanguageConverter.GetPYSimpleCode("男") + }); + sexes.Add(new Sex + { + DisplayName = "女", + Id = 'F', + DisplayOrder = 3, + SimpleCode = LanguageConverter.GetPYSimpleCode("女") + }); + + await _sexRepository.InsertManyAsync(sexes); + } + } + + + /// + /// 生成适用性别表基础数据 + /// + /// + private async Task CreateForSexAsync() + { + if (await _forSexRepository.GetCountAsync() == 0) + { + List forSexes = new List(); + forSexes.Add(new ForSex + { + DisplayName = "全部", + Id = 'A', + DisplayOrder = 1, + SimpleCode = LanguageConverter.GetPYSimpleCode("全部") + }); + forSexes.Add(new ForSex + { + DisplayName = "男", + Id = 'M', + DisplayOrder = 2, + SimpleCode = LanguageConverter.GetPYSimpleCode("男") + }); + forSexes.Add(new ForSex + { + DisplayName = "女", + Id = 'F', + DisplayOrder = 3, + SimpleCode = LanguageConverter.GetPYSimpleCode("女") + }); + + await _forSexRepository.InsertManyAsync(forSexes); + } + } + + /// + /// 生成婚姻状况表基础数据 + /// + /// + private async Task CreateMaritalStatusAsync() + { + if (await _maritalStatusRepository.GetCountAsync() == 0) + { + List maritalStatuses = new List(); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "未婚", + Id = '0', + DisplayOrder = 1, + SimpleCode = LanguageConverter.GetPYSimpleCode("未婚") + }); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "已婚", + Id = '1', + DisplayOrder = 2, + SimpleCode = LanguageConverter.GetPYSimpleCode("已婚") + }); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "离异", + Id = '2', + DisplayOrder = 3, + SimpleCode = LanguageConverter.GetPYSimpleCode("离异") + }); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "丧偶", + Id = '3', + DisplayOrder = 4, + SimpleCode = LanguageConverter.GetPYSimpleCode("丧偶") + }); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "离异或丧偶", + Id = '4', + DisplayOrder = 5, + SimpleCode = LanguageConverter.GetPYSimpleCode("离异或丧偶") + }); + maritalStatuses.Add(new MaritalStatus + { + DisplayName = "未知", + Id = '9', + DisplayOrder = 6, + SimpleCode = LanguageConverter.GetPYSimpleCode("未知") + }); + + + await _maritalStatusRepository.InsertManyAsync(maritalStatuses); } + } + + + /// + /// 生成结果状态 + /// + /// + private async Task CreateResultStatusAsync() + { + if (await _resultStatusRepository.GetCountAsync() == 0) + { + #region 数据 + List resultStatuses = new List(); + resultStatuses.Add(new ResultStatus + { + Id = "01", + DisplayName = "正常", + ReportPrompt = "", + ReportBackgroundColor = 16777215, + ReportFontColor = 0, + DataInputPrompt = "", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 0, + DisplayOrder = 1 + }); + resultStatuses.Add(new ResultStatus + { + Id = "02", + DisplayName = "错误", + ReportPrompt = "×", + ReportBackgroundColor = 16711680, + ReportFontColor = 255, + DataInputPrompt = "×", + DataInputBackgroundColor = 16711808, + DataInputFontColor = 255, + DisplayOrder = 2 + }); + resultStatuses.Add(new ResultStatus + { + Id = "03", + DisplayName = "阴性", + ReportPrompt = "-", + ReportBackgroundColor = 16777215, + ReportFontColor = 0, + DataInputPrompt = "-", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 0, + DisplayOrder = 3 + }); + resultStatuses.Add(new ResultStatus + { + Id = "04", + DisplayName = "阳性", + ReportPrompt = "+", + ReportBackgroundColor = 16777215, + ReportFontColor = 0, + DataInputPrompt = "+", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 0, + DisplayOrder = 4 + }); + resultStatuses.Add(new ResultStatus + { + Id = "05", + DisplayName = "弱阳性", + ReportPrompt = "±", + ReportBackgroundColor = 16777215, + ReportFontColor = 0, + DataInputPrompt = "±", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 0, + DisplayOrder = 5 + }); + resultStatuses.Add(new ResultStatus + { + Id = "06", + DisplayName = "偏低", + ReportPrompt = "↓", + ReportBackgroundColor = 65535, + ReportFontColor = 16711680, + DataInputPrompt = "↓", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 16711680, + DisplayOrder = 6 + }); + resultStatuses.Add(new ResultStatus + { + Id = "07", + DisplayName = "偏高", + ReportPrompt = "↑", + ReportBackgroundColor = 8454143, + ReportFontColor = 255, + DataInputPrompt = "↑", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 255, + DisplayOrder = 7 + }); + resultStatuses.Add(new ResultStatus + { + Id = "08", + DisplayName = "危急值下限", + ReportPrompt = "↓", + ReportBackgroundColor = 16777215, + ReportFontColor = 8421376, + DataInputPrompt = "↓", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 8421376, + DisplayOrder = 8 + }); + resultStatuses.Add(new ResultStatus + { + Id = "09", + DisplayName = "危急值上限", + ReportPrompt = "↑", + ReportBackgroundColor = 16777215, + ReportFontColor = 16711935, + DataInputPrompt = "↑", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 16711935, + DisplayOrder = 9 + }); + resultStatuses.Add(new ResultStatus + { + Id = "10", + DisplayName = "危急值", + ReportPrompt = "×", + ReportBackgroundColor = 16777215, + ReportFontColor = 16711935, + DataInputPrompt = "×", + DataInputBackgroundColor = 16777215, + DataInputFontColor = 16711935, + DisplayOrder = 10 + }); + #endregion + await _resultStatusRepository.InsertManyAsync(resultStatuses); + } } + #endregion } } diff --git a/src/Shentun.Peis.Domain/CustomerOrgTypes/CustomerOrgType.cs b/src/Shentun.Peis.Domain/CustomerOrgTypes/CustomerOrgType.cs index 78f4671..2428b93 100644 --- a/src/Shentun.Peis.Domain/CustomerOrgTypes/CustomerOrgType.cs +++ b/src/Shentun.Peis.Domain/CustomerOrgTypes/CustomerOrgType.cs @@ -15,6 +15,16 @@ namespace Shentun.Peis.Models [Index(nameof(DisplayName), Name = "ix_org_type", IsUnique = true)] public class CustomerOrgType : AuditedEntity, IDisplayName, IDisplayOrder, IHasConcurrencyStamp { + public CustomerOrgType() + { + } + + public CustomerOrgType(Guid id) : base(id) + { + + } + + /// /// 名称 /// diff --git a/src/Shentun.Peis.Domain/GuideTypes/GuideType.cs b/src/Shentun.Peis.Domain/GuideTypes/GuideType.cs index 4967c87..7141943 100644 --- a/src/Shentun.Peis.Domain/GuideTypes/GuideType.cs +++ b/src/Shentun.Peis.Domain/GuideTypes/GuideType.cs @@ -19,7 +19,7 @@ namespace Shentun.Peis.Models { ItemTypes = new HashSet(); } - internal GuideType(char id + public GuideType(char id ):base(id) { ItemTypes = new HashSet(); diff --git a/src/Shentun.Peis.Domain/MedicalConclusionTypes/MedicalConclusionType.cs b/src/Shentun.Peis.Domain/MedicalConclusionTypes/MedicalConclusionType.cs index 283ddf1..1b27a0f 100644 --- a/src/Shentun.Peis.Domain/MedicalConclusionTypes/MedicalConclusionType.cs +++ b/src/Shentun.Peis.Domain/MedicalConclusionTypes/MedicalConclusionType.cs @@ -21,6 +21,7 @@ namespace Shentun.Peis.Models } + [Key] [Column("id")] [StringLength(2)] diff --git a/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs b/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs index dbe2baf..510228f 100644 --- a/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs +++ b/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs @@ -171,16 +171,16 @@ public class PeisHttpApiHostModule : AbpModule //}); #region 临时去掉日志 - ////关闭审计日志 - //Configure(options => - //{ - // options.IsEnabled = false; - //}); - ////关闭安全日志 - //Configure(options => - //{ - // options.IsEnabled = false; - //}); + //关闭审计日志 + Configure(options => + { + options.IsEnabled = configuration.GetValue("IsAuditingLog", true); + }); + //关闭安全日志 + Configure(options => + { + options.IsEnabled = configuration.GetValue("IsSecurityLog", true); + }); #endregion //防伪令牌 diff --git a/src/Shentun.Peis.HttpApi.Host/appsettings.json b/src/Shentun.Peis.HttpApi.Host/appsettings.json index 8f4b920..0a11bfd 100644 --- a/src/Shentun.Peis.HttpApi.Host/appsettings.json +++ b/src/Shentun.Peis.HttpApi.Host/appsettings.json @@ -68,5 +68,7 @@ "Pacs": { "AuthString": "peis:peis@123", "BaseApiUrl": "http://192.168.2.74:8042" - } + }, + "IsAuditingLog": false, + "IsSecurityLog": false } \ No newline at end of file