|
@@ -11,20 +11,62 @@ public class TaskComponent : Component
|
|
|
public List<MHRescueMission> MHRescueMissions;
|
|
|
public List<XHRescueMission> XHRescueMissions;
|
|
|
public List<ZCRescueMission> ZCRescueMissions;
|
|
|
-
|
|
|
public List<SeaSJRescueMission> SeaSJRescueMissions;
|
|
|
|
|
|
+ public SJAllTotalTaskPerformanceComponent SJAllTotalTaskPerformance = new SJAllTotalTaskPerformanceComponent();
|
|
|
+ public Dictionary<string, Dictionary<string, List<string>>> alltotalReport = new ();
|
|
|
+
|
|
|
public void Start()
|
|
|
{
|
|
|
MHRescueMissions?.ForEach(r => r.Reset());
|
|
|
XHRescueMissions?.ForEach(r => r.Reset());
|
|
|
|
|
|
-
|
|
|
MHRescueMissions?.ForEach(r => r.Start());
|
|
|
XHRescueMissions?.ForEach(r => r.Start());
|
|
|
ZCRescueMissions?.ForEach(r => r.Start());
|
|
|
SeaSJRescueMissions?.ForEach(r => r.Start());
|
|
|
}
|
|
|
+
|
|
|
+ public void SaveSJ(Dictionary<string, Dictionary<string, string>> totalReport)
|
|
|
+ {
|
|
|
+
|
|
|
+ foreach (var kv in totalReport)
|
|
|
+ {
|
|
|
+ if(!alltotalReport.ContainsKey(kv.Key)) alltotalReport[kv.Key] = new Dictionary<string, List<string>>();
|
|
|
+
|
|
|
+
|
|
|
+ foreach (var kv2 in kv.Value)
|
|
|
+ {
|
|
|
+ if(!alltotalReport[kv.Key].ContainsKey(kv2.Key)) alltotalReport[kv.Key][kv2.Key] = new List<string>();
|
|
|
+
|
|
|
+ alltotalReport[kv.Key][kv2.Key].Add(kv2.Value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ foreach (var kv in alltotalReport)
|
|
|
+ {
|
|
|
+ foreach (var kv2 in kv.Value)
|
|
|
+ {
|
|
|
+ var sum = 0f;
|
|
|
+ foreach (var value in kv2.Value)
|
|
|
+ {
|
|
|
+ sum += float.Parse(value);
|
|
|
+ }
|
|
|
+ kv2.Value.Add((sum / kv2.Value.Count).ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void ReportAllSJ()
|
|
|
+ {
|
|
|
+ string data = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ string path = $"Reports/SJ/{data}";
|
|
|
+ if(!Directory.Exists(path)) Directory.CreateDirectory(path);
|
|
|
+
|
|
|
+ string totalPath = $"{path}/{"海上搜救任务总体指标报告"}.xls";
|
|
|
+ DataTableExtensions.SaveToExcel(totalPath, alltotalReport,true);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
[ObjectSystem]
|
|
@@ -38,3 +80,21 @@ public class TaskComponentAwakeSystem : AwakeSystem<TaskComponent>
|
|
|
self.SeaSJRescueMissions = new List<SeaSJRescueMission>();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+[ObjectSystem]
|
|
|
+public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
|
|
|
+{
|
|
|
+ public override void Update(TaskComponent self)
|
|
|
+ {
|
|
|
+ if(self.SeaSJRescueMissions.Count < 0) return;
|
|
|
+
|
|
|
+ if(self.SeaSJRescueMissions.All(m => m.IsOver))
|
|
|
+ {
|
|
|
+ self.SJAllTotalTaskPerformance.FillData(self.SeaSJRescueMissions);
|
|
|
+ var report = self.SJAllTotalTaskPerformance.GetReport();
|
|
|
+ self.SaveSJ(report);
|
|
|
+ self.ReportAllSJ();
|
|
|
+ self.SeaSJRescueMissions.Clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|