|
@@ -28,6 +28,11 @@ using NPOI.HPSF;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using System.IO;
|
|
|
using WingInterfaceLibrary.Request;
|
|
|
+using WingInterfaceLibrary.DTO.ReportTemplate;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+using System.Net.Http.Json;
|
|
|
+using WingInterfaceLibrary.DTO.Measure;
|
|
|
+using System.Collections.Concurrent;
|
|
|
|
|
|
namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
@@ -39,7 +44,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
public async Task MigrateBasicInfos(SyncDBEnum syncType)
|
|
|
{
|
|
|
Logger.WriteLineInfo($"Basic Infos Migrate Starting");
|
|
|
- //await MigrateReportTemplateInfos(syncType);
|
|
|
+ await MigrateReportTemplateInfos(syncType);
|
|
|
var relationList = await MigrateReportPosterInfos(syncType);
|
|
|
var orgDiagnosisModulesList = await MigrateTerminalsInfos(relationList, syncType);
|
|
|
await MigrateOrganizationInfos(orgDiagnosisModulesList, syncType);
|
|
@@ -446,10 +451,10 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
//根据机构找到所有的用户
|
|
|
var builder = Builders<Users>.Filter;
|
|
|
var filter = builder.Where(x => x.IsDeleted == false && x.HospitalId == organizationItem.Id && x.Organizations != null && x.Organizations.Any(c => c.Id == organizationItem.Id));
|
|
|
- var users = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x._id)?.ToList();
|
|
|
+ var users = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id)?.ToList();
|
|
|
if (users?.Count > 0)
|
|
|
{
|
|
|
- model.UserCodes = users.Select(c => c._id).Distinct().ToList();
|
|
|
+ model.UserCodes = users.Select(c => c.Id).Distinct().ToList();
|
|
|
}
|
|
|
orgList.Add(model);
|
|
|
}
|
|
@@ -595,8 +600,8 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
|
foreach (var item in userInfo)
|
|
|
{
|
|
|
- var findEntity = vinnoDataList.UserList.FirstOrDefault(c => c._id == item._id);
|
|
|
- if (!string.IsNullOrEmpty(findEntity?._id))
|
|
|
+ var findEntity = vinnoDataList.UserList.FirstOrDefault(c => c.Id == item.Id);
|
|
|
+ if (!string.IsNullOrEmpty(findEntity?.Id))
|
|
|
{
|
|
|
if (item.Terminals?.Count > 0)
|
|
|
{
|
|
@@ -642,11 +647,11 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
}
|
|
|
//排除omena
|
|
|
- vinnoDataList.UserList = vinnoDataList.UserList.Where(c => c._id != "EB3BB78AA2AB4D12A4BDCD81A938D642"
|
|
|
- && c._id != "BA571C988B324A33A606EA48EBEC6442" && c._id != "404DC8C49B4C459D8FC15B6F426F6FA4"
|
|
|
- && c._id != "FAC3E1EBCB334D05A21D1D6B171AB861" && c._id != "2A634D6B9DEE4158A4370CC525531F02"
|
|
|
- && c._id != "D648285F09174AD9A31B8C862DE133C8" && c._id != "591A69C2DC864122943870D1190D29C1"
|
|
|
- && c._id != "3B1A112E368147B5800A7B19AAF6E104").ToList();
|
|
|
+ vinnoDataList.UserList = vinnoDataList.UserList.Where(c => c.Id != "EB3BB78AA2AB4D12A4BDCD81A938D642"
|
|
|
+ && c.Id != "BA571C988B324A33A606EA48EBEC6442" && c.Id != "404DC8C49B4C459D8FC15B6F426F6FA4"
|
|
|
+ && c.Id != "FAC3E1EBCB334D05A21D1D6B171AB861" && c.Id != "2A634D6B9DEE4158A4370CC525531F02"
|
|
|
+ && c.Id != "D648285F09174AD9A31B8C862DE133C8" && c.Id != "591A69C2DC864122943870D1190D29C1"
|
|
|
+ && c.Id != "3B1A112E368147B5800A7B19AAF6E104").ToList();
|
|
|
foreach (var item in vinnoDataList.UserList)
|
|
|
{
|
|
|
if (item.HospitalId == "F5A6731DC8444932BE543DB98604E66A")
|
|
@@ -835,18 +840,21 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
/// <returns></returns>
|
|
|
private async Task MigratePrintDataInfos()
|
|
|
{
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<PrinterDrives>.Filter;
|
|
|
var filter = builder.Where(x => ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- var adminRecords = _adminDBRepository.GetPrintRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
- Logger.WriteLineInfo($"Print totalCount:{adminRecords.Count}");
|
|
|
+ var printerDrives = new List<PrinterDrives>();
|
|
|
+ var tempPrinterDrives = _adminDBRepository.GetPrintRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ printerDrives = await FilterData<PrinterDrives>(tempPrinterDrives, "PrinterDrivesData");
|
|
|
+ Logger.WriteLineInfo($"Print totalCount:{printerDrives.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 100;
|
|
|
- var adminCount = adminRecords.Count;
|
|
|
+ var adminCount = printerDrives.Count;
|
|
|
while (true)
|
|
|
{
|
|
|
- var pendingRecords = adminRecords.Skip(pageIndex * pageSize).Take(pageSize)?.ToList() ?? new List<PrinterDrives>();
|
|
|
+ var pendingRecords = printerDrives.Skip(pageIndex * pageSize).Take(pageSize)?.ToList() ?? new List<PrinterDrives>();
|
|
|
var pendingCount = pendingRecords.Count;
|
|
|
if (pendingCount > 0)
|
|
|
{
|
|
@@ -942,11 +950,13 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<Patch>.Filter;
|
|
|
var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
- patchInfos = _adminDBRepository.GetPatches(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ var tempPatchInfos = _adminDBRepository.GetPatches(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ patchInfos = await FilterData<Patch>(tempPatchInfos, "PatchData");
|
|
|
}
|
|
|
//patchInfos = patchInfos.Where(x => x.Id == "E9E0A873C7974B2381A3F97C981BAC59")?.ToList() ?? new List<Patch>();
|
|
|
|
|
@@ -1084,6 +1094,101 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
Logger.WriteLineInfo($"Users Infos Migrate Successfully");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 数据转换
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
+ /// <param name="tempRecords"></param>
|
|
|
+ /// <param name="key"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private async Task<List<T>> FilterData<T>(List<T> tempRecords, string key) where T : class, new()
|
|
|
+ {
|
|
|
+ var records = new List<T>();
|
|
|
+
|
|
|
+ if (tempRecords?.Count() > 0)
|
|
|
+ {
|
|
|
+ var tempReportTemplateData = new ConcurrentDictionary<string, DateTime>();
|
|
|
+ foreach (var t in tempRecords)
|
|
|
+ {
|
|
|
+ if (t != null)
|
|
|
+ {
|
|
|
+ var id = "";
|
|
|
+ var createTime = DateTime.MinValue;
|
|
|
+ var updateTime = DateTime.MinValue;
|
|
|
+ foreach (var childItem in t.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ if (childItem.Name == "Id")
|
|
|
+ {
|
|
|
+ id = childItem.GetValue(t).ToString();
|
|
|
+ }
|
|
|
+ else if (childItem.Name == "CreateTime")
|
|
|
+ {
|
|
|
+ createTime = Convert.ToDateTime(childItem.GetValue(t));
|
|
|
+ }
|
|
|
+ else if (childItem.Name == "UpdateTime")
|
|
|
+ {
|
|
|
+ updateTime = Convert.ToDateTime(childItem.GetValue(t));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!tempReportTemplateData.Keys.Contains(id))
|
|
|
+ {
|
|
|
+ var cacheTime = createTime > updateTime ? createTime : updateTime;
|
|
|
+ tempReportTemplateData.TryAdd(id, cacheTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CommonConfigManager.CacheSynDataInfo.CacheDic.Keys.Contains(key) && CommonConfigManager.CacheSynDataInfo.CacheDic[key]?.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var templateInfo in tempReportTemplateData.Keys)
|
|
|
+ {
|
|
|
+ //.Exists(c => c.Id == templateInfo.Id && c.CacheTime == templateInfo.CacheTime)
|
|
|
+ if (CommonConfigManager.CacheSynDataInfo.CacheDic[key].Keys.Contains(templateInfo) && CommonConfigManager.CacheSynDataInfo.CacheDic[key][templateInfo] == tempReportTemplateData[templateInfo])
|
|
|
+ {
|
|
|
+ //存在,表示已经处理过
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //不存在,表示没处理过
|
|
|
+ CommonConfigManager.CacheSynDataInfo.CacheDic[key].TryAdd(templateInfo, tempReportTemplateData[templateInfo]);
|
|
|
+ foreach (var t in tempRecords)
|
|
|
+ {
|
|
|
+ if (t != null)
|
|
|
+ {
|
|
|
+ var curId = "";
|
|
|
+ foreach (var childItem in t.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ if (childItem.Name == "Id")
|
|
|
+ {
|
|
|
+ curId = childItem.GetValue(t).ToString();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (curId == templateInfo)
|
|
|
+ {
|
|
|
+ records.Add(t);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (CommonConfigManager.CacheSynDataInfo.CacheDic.Keys.Contains(key))
|
|
|
+ {
|
|
|
+ CommonConfigManager.CacheSynDataInfo.CacheDic[key] = tempReportTemplateData;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ CommonConfigManager.CacheSynDataInfo.CacheDic.TryAdd(key, tempReportTemplateData);
|
|
|
+ }
|
|
|
+ records = tempRecords;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return records;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// ͬ同步报告模板
|
|
|
/// </summary>
|
|
@@ -1091,11 +1196,15 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
public async Task MigrateReportTemplateInfos(SyncDBEnum syncType)
|
|
|
{
|
|
|
var startTime = _migrateRecord.StartTime;
|
|
|
+ startTime = startTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<ReportTemplates>.Filter;
|
|
|
var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
//var filter = builder.Where(x => x.IsDeleted == false);
|
|
|
- var reportTemplateRecords = _reportTemplateDBRepository.GetReportTemplateRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ var reportTemplateRecords = new List<ReportTemplates>();
|
|
|
+ var tempReportTemplateRecords = _reportTemplateDBRepository.GetReportTemplateRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ reportTemplateRecords = await FilterData<ReportTemplates>(tempReportTemplateRecords, "ReportTemplateData");
|
|
|
Logger.WriteLineInfo($"ReportTemplates totalCount:{reportTemplateRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 100;
|
|
@@ -1262,11 +1371,14 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
/// <returns></returns>
|
|
|
private async Task MigrateAdminInfos(SyncDBEnum syncType)
|
|
|
{
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<Admins>.Filter;
|
|
|
var filter = builder.Where(x => x.Name.ToLower() != "admin" && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- var adminRecords = _adminDBRepository.GetAdminsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x._id).ToList();
|
|
|
+ var adminRecords = new List<Admins>();
|
|
|
+ var tempAdminRecords = _adminDBRepository.GetAdminsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ adminRecords = await FilterData<Admins>(tempAdminRecords, "AdminData");
|
|
|
Logger.WriteLineInfo($"admin totalCount:{adminRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 100;
|
|
@@ -1312,7 +1424,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
var model = new AdminMigratoryInfo()
|
|
|
{
|
|
|
- AdminCode = adminItem._id,
|
|
|
+ AdminCode = adminItem.Id,
|
|
|
CreateTime = adminItem.CreateTime,
|
|
|
UpdateTime = adminItem.UpdateTime,
|
|
|
FatherCode = "PrimaryAdmin01",
|
|
@@ -1364,11 +1476,14 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
batchInsertMedicalConsortiumRequest.MedicalConsortiumDetails.Add(medicalConsortiumDetail);
|
|
|
}
|
|
|
_jsonRpcProxy.Management.BatchInsertMedicalConsortiumAsync(batchInsertMedicalConsortiumRequest);
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<Organizations>.Filter;
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.Name) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- var organizationRecords = _organizationsDBRepository.GetOrganizationsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ var organizationRecords = new List<Organizations>();
|
|
|
+ var tempOrganizationRecords = _organizationsDBRepository.GetOrganizationsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ organizationRecords = await FilterData<Organizations>(tempOrganizationRecords, "OrganizationData");
|
|
|
Logger.WriteLineInfo($"Organizations totalCount:{organizationRecords.Count}");
|
|
|
var request = new GetRegionsRequest
|
|
|
{
|
|
@@ -1573,11 +1688,14 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
private async Task<List<TerminalReportPosterRelation>> MigrateReportPosterInfos(SyncDBEnum syncType)
|
|
|
{
|
|
|
var relationList = new List<TerminalReportPosterRelation>();
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<PosterConfigs>.Filter;
|
|
|
var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
- var posterConfigsRecords = _posterConfigsDBRepository.GetPostConfigsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ var posterConfigsRecords = new List<PosterConfigs>();
|
|
|
+ var tempPosterConfigsRecords = _posterConfigsDBRepository.GetPostConfigsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ posterConfigsRecords = await FilterData<PosterConfigs>(tempPosterConfigsRecords, "ReportPosterData");
|
|
|
Logger.WriteLineInfo($"posterConfigs totalCount:{posterConfigsRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 100;
|
|
@@ -1669,11 +1787,15 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
private async Task<List<OrganizationDiagnosisModulesRelation>> MigrateTerminalsInfos(List<TerminalReportPosterRelation> relationList, SyncDBEnum syncType)
|
|
|
{
|
|
|
var orgDiagnosisModulesList = new List<OrganizationDiagnosisModulesRelation>();
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<Terminals>.Filter;
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.UniquedId) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- var terminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ var terminalsRecords = new List<Terminals>();
|
|
|
+ var tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
+
|
|
|
//terminalsRecords = terminalsRecords.Where(x => x.UniquedId == "8LRJL7" || x.UniquedId == "WQ8RKS")?.ToList() ?? new List<Terminals>();
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode not null totalCount:{terminalsRecords.Count}");
|
|
|
var pushList = _terminalsDBRepository.GetAllTerminalPushStream();
|
|
@@ -1701,8 +1823,11 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
|
|
|
filter = builder.Where(x => string.IsNullOrEmpty(x.UniquedId) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- terminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ terminalsRecords = new List<Terminals>();
|
|
|
+ tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
//terminalsRecords = terminalsRecords.Where(x => x.UniquedId == "8LRJL7" || x.UniquedId == "WQ8RKS")?.ToList() ?? new List<Terminals>();
|
|
|
+
|
|
|
+ terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode is null totalCount:{terminalsRecords.Count}");
|
|
|
terminalsCount = terminalsRecords.Count;
|
|
|
pageIndex = 0;
|
|
@@ -1731,7 +1856,10 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
|
var termainalCodes = relationList.Select(c => c.TerminalCode).Distinct().ToList();
|
|
|
filter = builder.Where(x => termainalCodes.Contains(x.Id));
|
|
|
- terminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ terminalsRecords = new List<Terminals>();
|
|
|
+ tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
//terminalsRecords = terminalsRecords.Where(x => x.UniquedId == "8LRJL7" || x.UniquedId == "WQ8RKS")?.ToList() ?? new List<Terminals>();
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode is null totalCount:{terminalsRecords.Count}");
|
|
|
terminalsCount = terminalsRecords.Count;
|
|
@@ -1867,14 +1995,17 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
/// <returns></returns>
|
|
|
public async Task MigrateUserInfos(SyncDBEnum syncType)
|
|
|
{
|
|
|
- var startTime = _migrateRecord.StartTime;
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
var endTime = _migrateRecord.EndTime;
|
|
|
var builder = Builders<Users>.Filter;
|
|
|
//todo 加 !string.IsNullOrEmpty(x.HospitalId) && 用于跑有自己医院的用户
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.Name) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- //var filter = builder.Where(x => !string.IsNullOrEmpty(x.Name) && x._id == "4AFA15BF24094919BD25CD84CBFEC900");
|
|
|
- var userRecords = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x._id).ToList();
|
|
|
+ //var filter = builder.Where(x => !string.IsNullOrEmpty(x.Name) && x.Id == "4AFA15BF24094919BD25CD84CBFEC900");
|
|
|
+ var userRecords = new List<Users>();
|
|
|
+ var tempUserRecords = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
//userRecords = userRecords.Where(x => x.Organizations != null && x.Organizations.Count > 0 && x.Organizations.FirstOrDefault().Name.Contains("�谮����ά��"))?.ToList() ?? new List<Users>();
|
|
|
+
|
|
|
+ userRecords = await FilterData<Users>(tempUserRecords, "UserData");
|
|
|
Logger.WriteLineInfo($"user totalCount:{userRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 50;
|
|
@@ -1983,6 +2114,25 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
Logger.WriteLineInfo($"userGroupRecords record processing: {(pageIndex * pageSize * 100 / tempValue)}%");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //处理设备类型
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var request = new TokenRequest
|
|
|
+ {
|
|
|
+ Token = DefaultToken
|
|
|
+ };
|
|
|
+ var result = await _jsonRpcProxy.Management.InitDeviceModelAsync(request);
|
|
|
+ if (result)
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"InitDeviceModelAsync Successfully");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"InitDeviceModelAsync Infos Error, ex:{ex}");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2031,7 +2181,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
var model = new UserMigratoryInfo()
|
|
|
{
|
|
|
- UserCode = userItem._id,
|
|
|
+ UserCode = userItem.Id,
|
|
|
CreateTime = userItem.CreateTime,
|
|
|
UpdateTime = userItem.UpdateTime,
|
|
|
UserName = userItem.Name,
|
|
@@ -2267,7 +2417,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
else if (userItem?.Features?.Count > 0 && userItem?.Features?.ToList()?.Exists(c => c.Name == "RemoteDiagnosis") == true)
|
|
|
{
|
|
|
- var userRoleType = _usersDBRepository.GetLastUserRoleTypeByUserCode(userItem._id);
|
|
|
+ var userRoleType = _usersDBRepository.GetLastUserRoleTypeByUserCode(userItem.Id);
|
|
|
if (userRoleType.ConsultationRoleType == ConsultationRoleType.Doctor)
|
|
|
{
|
|
|
model.UserRole = UserMigratoryRoleEnum.Role_CertifiedExpert;
|
|
@@ -2344,7 +2494,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
if (CommonConfigManager.UserDataDiff?.Count > 0)
|
|
|
{
|
|
|
var builder = Builders<Users>.Filter;
|
|
|
- var filter = builder.Where(x => x.IsDeleted == false && CommonConfigManager.UserDataDiff.Contains(x._id));
|
|
|
+ var filter = builder.Where(x => x.IsDeleted == false && CommonConfigManager.UserDataDiff.Contains(x.Id));
|
|
|
var userRecords = _usersDBRepository.GetUserRecords(filter).ToList();
|
|
|
Logger.WriteLineInfo($"DataDiffCommand totalCount:{userRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -2384,7 +2534,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var builder = Builders<Users>.Filter;
|
|
|
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.HospitalId) && !string.IsNullOrEmpty(x.Name) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
- var userRecords = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x._id).ToList();
|
|
|
+ var userRecords = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
Logger.WriteLineInfo($"user totalCount:{userRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
|
var pageSize = 50;
|
|
@@ -2425,7 +2575,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
|
var model = new UserMigratoryInfo()
|
|
|
{
|
|
|
- UserCode = userItem._id,
|
|
|
+ UserCode = userItem.Id,
|
|
|
OrganizationCode = userItem.HospitalId,
|
|
|
UserRole = UserMigratoryRoleEnum.Role_UnSet,
|
|
|
UserName = userItem.Name
|