瀏覽代碼

Fix修复情景流下一阶段后系统评分不自动更新

Yue 2 年之前
父節點
當前提交
e3ad693a79

+ 25 - 0
SourceCode/WeApp.Application/TrainingEval/EvalAppService.cs

@@ -14,6 +14,7 @@ using System;
 using System.Collections.Generic;
 using System.Data.Entity;
 using System.Linq;
+using System.Text.RegularExpressions;
 using System.Threading;
 using System.Threading.Tasks;
 
@@ -493,6 +494,7 @@ namespace WeApp.TrainingEval
                     await WriteLog(g.CampNo, g.Id, g.RoundIndex, LogCommandDefinition.NextNode);
                     await ChangeLogState(g.Id);
                     Thread.Sleep(1000);
+                    await SyncSysScore(g);
                 }
                 //for (int i = 0; i < groupNos.Count; i++)
                 //{
@@ -515,6 +517,7 @@ namespace WeApp.TrainingEval
                 await WriteLog(group.CampNo, groupNo, group.RoundIndex, LogCommandDefinition.NextNode);
                 url = $"{url}?groupNo={groupNo}";
                 Post(url, dataStr, group);
+                await SyncSysScore(group);
             }
 
             //var result = url.RequestPost(dataStr);
@@ -524,6 +527,28 @@ namespace WeApp.TrainingEval
             //}
         }
 
+        /// <summary>
+        /// 情景流下一阶段后延迟10秒主动同步系统得分
+        /// </summary>
+        /// <param name="group"></param>
+        /// <returns></returns>
+        private Task SyncSysScore(CampGroupInfo group)
+        {
+            Task task = Task.Factory.StartNew(async () =>
+            {
+                var gs = CacheManager.GetGroupRoundScore(group.Id, group.RoundIndex, GsRepository).Result;
+                if (gs != null)
+                {
+                    await Task.Delay(1000 * 10);
+                    var runningInfo = await CacheManager.GetGroupRunningInfo(group.Id, GroupRepository);
+                    gs.SystemScore = runningInfo.SystemScore;
+                    await GsRepository.UpdateAsync(gs);
+                }
+            });
+
+            return task;
+        }
+
         /// <summary>
         /// 更新当前演练阶段
         /// </summary>

+ 0 - 6
SourceCode/WeApp.Core/CommonManager/MqttClient/WeAppMsgClientManager.cs

@@ -404,12 +404,6 @@ namespace WeApp.CommonManager.MqttClient
                     group.RunningInfo = runningInfo.Obj2String();
                     group.RoundIndex = runningInfo.CurrentRoundIndex;
                     GroupRepository.Update(group);
-                    var gs = CacheManager.GetGroupRoundScore(groupNo, group.RoundIndex, GsRepository).Result;
-                    if (gs != null)
-                    {
-                        gs.SystemScore = runningInfo.RoundScore;
-                        GsRepository.Update(gs);
-                    }
                     UnitOfWorkManager.Current.SaveChanges();
                     IwbHubContext.Clients.Group(group.CampNo).getRunningChange(new { no = groupNo }.Obj2String());
                 }