Browse Source

删除的数据未同步

denny 1 year ago
parent
commit
806ec444b3

+ 54 - 0
Tools/Flyinsono.DBCopy.Tool/Entities/FollowUpVisitInfos.cs

@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Flyinsono.DBCopy.Tool.Entities
+{
+    internal class FollowUpVisitInfos
+    {
+        public string Id { get; private set; }
+
+        public DateTime CreateTime { get; set; } = DateTime.MinValue;
+
+        public DateTime UpdateTime { get; set; } = DateTime.MinValue;
+
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
+        /// 会诊Id
+        /// </summary>
+        public string ConsultationRecordId { get; set; }
+
+        /// <summary>
+        /// 病人名
+        /// </summary>
+        public string PatientName { get; set; }
+
+        /// <summary>
+        /// 病人手机
+        /// </summary>
+        public string PatientPhone { get; set; }
+
+        /// <summary>
+        /// 一般情况
+        /// </summary>
+        public string GeneralCase { get; set; }
+
+        /// <summary>
+        /// 临床表现
+        /// </summary>
+        public string ClinicalSituation { get; set; }
+
+        /// <summary>
+        /// 随访人Id
+        /// </summary>
+        public string Doctor { get; set; }
+
+        /// <summary>
+        /// 随访时间
+        /// </summary>
+        public DateTime OccurredTime { get; set; }
+    }
+}

+ 30 - 2
Tools/Flyinsono.DBCopy.Tool/Service/MigrateService.cs

@@ -45,6 +45,7 @@ using WingInterfaceLibrary.DTO.Report;
 using WingInterfaceLibrary.LiveConsultation.Consultation;
 using WingInterfaceLibrary.DTO.Consultation;
 using WingInterfaceLibrary.Request.User;
+using MongoDB.Driver.Core.Operations;
 
 namespace Flyinsono.DBCopy.Tool.Service
 {
@@ -1396,7 +1397,7 @@ namespace Flyinsono.DBCopy.Tool.Service
             //获取上次同步到的时间
             var builder = Builders<ConsultationRecords>.Filter;
             var startTime = GetFactBeginTime(_migrateRecord.StartTime, _migrateRecord.EndTime);
-            var filter = builder.Where(x => x.IsDeleted == false && ((x.CreateTime > startTime && x.CreateTime <= _migrateRecord.EndTime) || (x.UpdateTime > startTime && x.UpdateTime <= _migrateRecord.EndTime)));
+            var filter = builder.Where(x => x.IsDeleted == false && x.Id == "CEB9B6C593FB4661A991C5451FEA4EEA" && ((x.CreateTime > startTime && x.CreateTime <= _migrateRecord.EndTime) || (x.UpdateTime > startTime && x.UpdateTime <= _migrateRecord.EndTime)));
             var consultations = _consultationRecordDBRepository.GetTerminalRecords(filter).OrderByDescending(x => x.CreateTime).ToList();
             OnMigrate("consultations", consultations, SendConsultations, syncType, 1000);
             consultations.Clear();
@@ -1408,7 +1409,11 @@ namespace Flyinsono.DBCopy.Tool.Service
         private void SendConsultations(IList<ConsultationRecords> consultations, SyncDBEnum syncType)
         {
             try
-            {
+            {
+                var builder = Builders<FollowUpVisitInfos>.Filter; 
+                var startTime = GetFactBeginTime(_migrateRecord.StartTime, _migrateRecord.EndTime);
+                var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= _migrateRecord.EndTime) || (x.UpdateTime > startTime && x.UpdateTime <= _migrateRecord.EndTime));
+                var followVistorList = _consultationRecordDBRepository.GetAllFollowUpVisitInfosRecords(filter).OrderByDescending(x => x.CreateTime).ToList();
                 var syncBatchConsultationRequest = new SyncBatchConsultationRequest();
                 syncBatchConsultationRequest.SyncType = syncType;
                 syncBatchConsultationRequest.SyncConsultations = new List<SyncConsultationRequest>();
@@ -1450,6 +1455,29 @@ namespace Flyinsono.DBCopy.Tool.Service
                             ConsultationFileList = new List<ConsultationFileDTO>()
                         };
 
+                        //查询随访记录
+                        if (followVistorList?.Count > 0)
+                        { 
+                            var findList = followVistorList.Where(c => c.ConsultationRecordId == consultation.Id)?.ToList();
+                            if (findList?.Count > 0)
+                            {
+                                var followUpVistorList = findList.Select(c => new SyncFollowUpVisitRequest()
+                                {
+                                    IsDelete = c.IsDeleted,
+                                    CreateTime = c.CreateTime,
+                                    UpdateTime = c.UpdateTime,                                     
+                                    FollowUpVisitCode = c.Id,
+                                    ConsultationRecordCode = c.ConsultationRecordId,
+                                    PatientName = c.PatientName,
+                                    PatientPhone = c.PatientPhone,
+                                    GeneralCase = c.GeneralCase,
+                                    ClinicalSituation = c.ClinicalSituation,
+                                    DoctorCode = c.Doctor,
+                                    OccurredTime = c.OccurredTime
+                                }).ToList();
+                                syncReportInfoRequest.SyncFollowUpVisitList = followUpVistorList;
+                            }
+                        }
 
                         if (consultation.ImageTokens != null && consultation.ImageTokens.Any())
                         {

+ 7 - 0
Tools/Flyinsono.DBCopy.Tool/Service/Repositories/ConsultationRecordDBRepository.cs

@@ -18,5 +18,12 @@ namespace Flyinsono.DBCopy.Tool.Service.Repositories
             var entities = LargerQuery(MongoDbClientSingle.Instance.ConsultationRecords, filter)?.ToList() ?? new List<ConsultationRecords>();
             return entities;
         }
+
+        public IList<FollowUpVisitInfos> GetAllFollowUpVisitInfosRecords(FilterDefinition<FollowUpVisitInfos> filter)
+        {
+            var entities = LargerQuery(MongoDbClientSingle.Instance.FollowUpVisitInfos, filter)?.ToList() ?? new List<FollowUpVisitInfos>();
+            return entities;
+        }
+
     }
 }

+ 2 - 1
Tools/Flyinsono.DBCopy.Tool/Utilities/MongoDbClient.cs

@@ -232,7 +232,7 @@ namespace Flyinsono.DBCopy.Tool.Utilities
         public IMongoCollection<DistributionRecords> DistributionRecords { get; private set; }
         public IMongoCollection<AnswerSheets> AnswerSheets { get; private set; }
         public IMongoCollection<ReportInfoResultsInfo> ReportInfoResultsInfo { get; private set; }
-
+        public IMongoCollection<FollowUpVisitInfos> FollowUpVisitInfos { get; private set; }
         private void RegisterEntities()
         {
             Admins = GetCollection<Admins>("Admins");
@@ -296,6 +296,7 @@ namespace Flyinsono.DBCopy.Tool.Utilities
             AnswerSheets = GetCollection<AnswerSheets>("AnswerSheets");
             CloudFiles = GetCollection<CloudFiles>("CloudFiles");
             ReportInfoResultsInfo = GetCollection<ReportInfoResultsInfo>("ReportInfoResults");
+            FollowUpVisitInfos = GetCollection<FollowUpVisitInfos>("FollowUpVisitInfos");
         }