|
@@ -20,6 +20,8 @@ using WingInterfaceLibrary.DTO.Device;
|
|
|
using WingInterfaceLibrary.DB.Request;
|
|
|
using WingInterfaceLibrary.DTO.Organization;
|
|
|
using WingInterfaceLibrary.Interface.DBInterface;
|
|
|
+using Flyinsono.DBCopy.Tool.Entities.Config;
|
|
|
+using System.Diagnostics;
|
|
|
|
|
|
namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
@@ -46,6 +48,127 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
Logger.WriteLineInfo($"Print Infos Migrate Successfully");
|
|
|
}
|
|
|
|
|
|
+ public async Task MigrateVinnoOrgInfos()
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"Print VinnoOrg Starting");
|
|
|
+ await MigrateVinnoOrDataInfos();
|
|
|
+ Logger.WriteLineInfo($"Print VinnoOrg Successfully");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private async Task MigrateVinnoOrDataInfos()
|
|
|
+ {
|
|
|
+ //先读取json数据,如果没有读取db,然后在写入json,最后清洗到2.0
|
|
|
+ var vinnoDataList = ConvertHelper.ReadFileData<OrgAndUserData>("OrgAndUserData.json");
|
|
|
+ if (vinnoDataList == null || vinnoDataList.UserList == null || vinnoDataList.OrganizationList == null)
|
|
|
+ {
|
|
|
+ vinnoDataList = new OrgAndUserData();
|
|
|
+ var orgInfo = _organizationsDBRepository.GetOrganizationByCodes(new List<string>() { "F5A6731DC8444932BE543DB98604E66A" });
|
|
|
+ vinnoDataList.OrganizationList = orgInfo;
|
|
|
+
|
|
|
+ var builder = Builders<Users>.Filter;
|
|
|
+ var filter = builder.Where(x => x.HospitalId == "F5A6731DC8444932BE543DB98604E66A" || (x.Organizations != null && x.Organizations.Any(c => c.Id == "F5A6731DC8444932BE543DB98604E66A"))
|
|
|
+ || (x.Terminals != null && x.Terminals.Any(c => c.OrganizationId == "F5A6731DC8444932BE543DB98604E66A")));
|
|
|
+ var userInfo = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ToList();
|
|
|
+ vinnoDataList.UserList = userInfo;
|
|
|
+
|
|
|
+ var builder1 = Builders<Terminals>.Filter;
|
|
|
+ var filter1 = builder1.Where(x => x.Organization != null && x.Organization.Id == "F5A6731DC8444932BE543DB98604E66A");
|
|
|
+ var terminalInfo = _terminalsDBRepository.GetTerminalsRecords(filter1).OrderByDescending(x => x.CreateTime).ToList();
|
|
|
+ vinnoDataList.TerminalList = terminalInfo;
|
|
|
+
|
|
|
+ var content = JsonConvert.SerializeObject(vinnoDataList);
|
|
|
+ ConvertHelper.WriteFileData(content, "OrgAndUserData.json");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (vinnoDataList.TerminalList?.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in vinnoDataList.TerminalList)
|
|
|
+ {
|
|
|
+ item.Organization.Id = "VINNO_FIS";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var orgDiagnosisModulesList = new List<OrganizationDiagnosisModulesRelation>();
|
|
|
+ var pushList = _terminalsDBRepository.GetAllTerminalPushStream();
|
|
|
+ await SendTerminalInfos(vinnoDataList.TerminalList, null, pushList, orgDiagnosisModulesList, SyncDBEnum.Synchronize);
|
|
|
+
|
|
|
+
|
|
|
+ //var request = new GetRegionsRequest
|
|
|
+ //{
|
|
|
+ // Version = "0.0",
|
|
|
+ // LanguageType = "zh-CN"
|
|
|
+ //};
|
|
|
+ //var zhRegion = await _jsonRpcProxy.Region.GetRegionsAsync(request);
|
|
|
+ //var zhList = JsonConvert.DeserializeObject<RegionCollection>(zhRegion.ReginData);
|
|
|
+ //request = new GetRegionsRequest
|
|
|
+ //{
|
|
|
+ // Version = "0.0",
|
|
|
+ // LanguageType = "en-US"
|
|
|
+ //};
|
|
|
+ //var enRegion = await _jsonRpcProxy.Region.GetRegionsAsync(request);
|
|
|
+ //var enList = JsonConvert.DeserializeObject<RegionCollection>(enRegion.ReginData);
|
|
|
+ //await SendOrganizationInfos(vinnoDataList.OrganizationList, orgDiagnosisModulesList, zhList.Datas, enList.Datas, SyncDBEnum.Synchronize);
|
|
|
+
|
|
|
+ if (vinnoDataList.UserList?.Count > 0)
|
|
|
+ {
|
|
|
+ //排除omena
|
|
|
+ vinnoDataList.UserList = vinnoDataList.UserList.Where(c => c._id != "D648285F09174AD9A31B8C862DE133C8").ToList();
|
|
|
+ foreach (var item in vinnoDataList.UserList)
|
|
|
+ {
|
|
|
+ if (item.HospitalId == "F5A6731DC8444932BE543DB98604E66A")
|
|
|
+ {
|
|
|
+ item.HospitalId = "VINNO_FIS";
|
|
|
+ }
|
|
|
+ if (item.Organizations?.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var cItem in item.Organizations)
|
|
|
+ {
|
|
|
+ if (cItem.Id == "F5A6731DC8444932BE543DB98604E66A")
|
|
|
+ {
|
|
|
+ cItem.Id = "VINNO_FIS";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.Terminals?.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var cItem in item.Terminals)
|
|
|
+ {
|
|
|
+ if (cItem.OrganizationId == "F5A6731DC8444932BE543DB98604E66A")
|
|
|
+ {
|
|
|
+ cItem.OrganizationId = "VINNO_FIS";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var pageIndex = 0;
|
|
|
+ var pageSize = 50;
|
|
|
+ var userCount = vinnoDataList.UserList.Count;
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ var pendingRecords = vinnoDataList.UserList.Skip(pageIndex * pageSize).Take(pageSize)?.ToList() ?? new List<Users>();
|
|
|
+ var pendingCount = pendingRecords.Count;
|
|
|
+ if (pendingCount > 0)
|
|
|
+ {
|
|
|
+ await SendUserInfos(pendingRecords, SyncDBEnum.Synchronize);
|
|
|
+ pageIndex++;
|
|
|
+ }
|
|
|
+ if (pageIndex * pageSize >= userCount)
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"posterConfigs record processing: 100%");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var tempValue = userCount == 0 ? 1 : userCount;
|
|
|
+ Logger.WriteLineInfo($"user record processing: {(pageIndex * pageSize * 100 / tempValue)}%");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 同步打印驱动数据
|
|
|
/// </summary>
|