SJAllTotalTaskPerformance.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using static Fire;
  2. namespace SimulationServer;
  3. public class SJAllTotalTaskPerformance
  4. {
  5. public string 识别成功率;
  6. public string 任务准备时间;
  7. public string 平均搜索时间;
  8. public string 平均救助时间;
  9. public string 总飞行时间;
  10. public string 海上搜索覆盖面积;
  11. public string 任务是否成功;
  12. public string 人员存活率;
  13. public string 环境搜索覆盖面积;
  14. }
  15. public class SJAllTotalTaskPerformanceComponent
  16. {
  17. public SJAllTotalTaskPerformance SSJAllTotalTaskPerformance = new SJAllTotalTaskPerformance();
  18. public SJAllTotalTaskPerformance LSJAllTotalTaskPerformance = new SJAllTotalTaskPerformance();
  19. public int sIndex;
  20. public int lIndex;
  21. public void FillData(List<SeaSJRescueMission> missions)
  22. {
  23. double 任务准备时间 = 0;
  24. double 平均搜索时间 = 0;
  25. double 总飞行时间 = 0;
  26. double 人员存活率 = 0;
  27. double 任务是否成功 = 0;
  28. float 识别成功率 = 0f;
  29. double 平均救助时间 = 0;
  30. float 人员数量 = 0;
  31. double aircreftCount = 0;
  32. foreach (SeaSJRescueMission mhRescueMission in missions)
  33. {
  34. //foreach (var aircraft in mhRescueMission.aircrafts)
  35. //{
  36. // if (aircraft.isseePerson)
  37. // 识别成功率 += 1f;
  38. // if (任务准备时间 < aircraft.TaskReadyTime)
  39. // 任务准备时间 = aircraft.TaskReadyTime;
  40. // 平均搜索时间 += aircraft.SearchTime;
  41. // 总飞行时间 += aircraft.TotalTime;
  42. // 人员存活率 += aircraft.Success ? 1 : 0;
  43. // aircreftCount++;
  44. //}
  45. foreach (var item in mhRescueMission.aircraftSJDatas)
  46. {
  47. 识别成功率 += float.Parse(item.Value["识别成功率"][sIndex]);
  48. 人员数量 += float.Parse(item.Value["人员数量"][sIndex]);
  49. if (任务准备时间 < float.Parse(item.Value["任务准备时间"][sIndex]))
  50. 任务准备时间 = float.Parse(item.Value["任务准备时间"][sIndex]);
  51. 平均搜索时间 += float.Parse(item.Value["平均搜索时间"][sIndex]);
  52. 平均救助时间 += float.Parse(item.Value["平均救助时间"][sIndex]);
  53. 总飞行时间 += float.Parse(item.Value["总飞行时间"][sIndex]);
  54. 人员存活率 += float.Parse(item.Value["人员存活率"][sIndex]);
  55. aircreftCount++;
  56. }
  57. }
  58. if (人员存活率 != 0)
  59. 任务是否成功 = 1;
  60. SSJAllTotalTaskPerformance.识别成功率 = (识别成功率 / 人员数量).ToString();
  61. SSJAllTotalTaskPerformance.任务准备时间 = 任务准备时间.ToString();
  62. SSJAllTotalTaskPerformance.平均搜索时间 = (平均搜索时间 / aircreftCount).ToString("f4");
  63. SSJAllTotalTaskPerformance.平均救助时间 = (平均救助时间 / aircreftCount).ToString("f4");
  64. SSJAllTotalTaskPerformance.总飞行时间 = 总飞行时间.ToString("f4");
  65. SSJAllTotalTaskPerformance.海上搜索覆盖面积 = "0.6".ToString();//"60%"
  66. SSJAllTotalTaskPerformance.任务是否成功 = 任务是否成功.ToString();
  67. SSJAllTotalTaskPerformance.人员存活率 = (人员存活率 / 人员数量).ToString();
  68. sIndex++;
  69. }
  70. public void FillData1(List<LandSJRescueMission> missions)
  71. {
  72. double 任务准备时间 = 0;
  73. double 平均搜索时间 = 0;
  74. double 总飞行时间 = 0;
  75. double 人员存活率 = 0;
  76. double 任务是否成功 = 0;
  77. float 识别成功率 = 0f;
  78. double 平均救助时间 = 0;
  79. float 人员数量 = 0;
  80. double aircreftCount = 0;
  81. foreach (LandSJRescueMission mhRescueMission in missions)
  82. {
  83. //foreach (var aircraft in mhRescueMission.aircrafts)
  84. //{
  85. // if (aircraft.isseePerson)
  86. // 识别成功率 += 1f;
  87. // if (任务准备时间 < aircraft.TaskReadyTime)
  88. // 任务准备时间 = aircraft.TaskReadyTime;
  89. // 平均搜索时间 += aircraft.SearchTime;
  90. // 总飞行时间 += aircraft.TotalTime;
  91. // 人员存活率 += aircraft.Success ? 1 : 0;
  92. // aircreftCount++;
  93. //}
  94. foreach (var item in mhRescueMission.aircraftSJDatas)
  95. {
  96. 识别成功率 += float.Parse(item.Value["识别成功率"][lIndex]);
  97. 人员数量 += float.Parse(item.Value["人员数量"][sIndex]);
  98. if (任务准备时间 < float.Parse(item.Value["任务准备时间"][lIndex]))
  99. 任务准备时间 = float.Parse(item.Value["任务准备时间"][lIndex]);
  100. 平均搜索时间 += float.Parse(item.Value["平均搜索时间"][lIndex]);
  101. 平均救助时间 += float.Parse(item.Value["平均救助时间"][sIndex]);
  102. 总飞行时间 += float.Parse(item.Value["总飞行时间"][lIndex]);
  103. 人员存活率 += float.Parse(item.Value["人员存活率"][lIndex]);
  104. aircreftCount++;
  105. }
  106. }
  107. if (人员存活率 != 0)
  108. 任务是否成功 = 1;
  109. LSJAllTotalTaskPerformance.识别成功率 = (识别成功率 / 人员数量).ToString();
  110. LSJAllTotalTaskPerformance.任务准备时间 = 任务准备时间.ToString();
  111. LSJAllTotalTaskPerformance.平均搜索时间 = (平均搜索时间 / aircreftCount).ToString("f4");
  112. LSJAllTotalTaskPerformance.平均救助时间 = (平均救助时间 / aircreftCount).ToString();
  113. LSJAllTotalTaskPerformance.总飞行时间 = 总飞行时间.ToString("f4");
  114. LSJAllTotalTaskPerformance.环境搜索覆盖面积 = "0.6".ToString();//"60%"
  115. LSJAllTotalTaskPerformance.任务是否成功 = 任务是否成功.ToString();
  116. LSJAllTotalTaskPerformance.人员存活率 = (人员存活率 / 人员数量).ToString();
  117. lIndex++;
  118. }
  119. public Dictionary<string, Dictionary<string, string>> GetReport()
  120. {
  121. Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
  122. report["总任务表现"] = new Dictionary<string, string>
  123. {
  124. { "识别成功率", SSJAllTotalTaskPerformance.识别成功率.ToString() },
  125. { "任务准备时间", SSJAllTotalTaskPerformance.任务准备时间.ToString() },
  126. { "平均搜索时间", SSJAllTotalTaskPerformance.平均搜索时间.ToString() },
  127. { "平均救助时间", SSJAllTotalTaskPerformance.平均救助时间.ToString() },
  128. { "总飞行时间", SSJAllTotalTaskPerformance.总飞行时间.ToString() },
  129. { "海情覆盖率", SSJAllTotalTaskPerformance.海上搜索覆盖面积.ToString() },
  130. { "任务是否成功", SSJAllTotalTaskPerformance.任务是否成功.ToString() },
  131. { "人员存活率", SSJAllTotalTaskPerformance.人员存活率.ToString() }
  132. };
  133. return report;
  134. }
  135. public Dictionary<string, Dictionary<string, string>> GetReport1()
  136. {
  137. Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
  138. report["总任务表现"] = new Dictionary<string, string>
  139. {
  140. { "识别成功率", LSJAllTotalTaskPerformance.识别成功率.ToString() },
  141. { "任务准备时间", LSJAllTotalTaskPerformance.任务准备时间.ToString() },
  142. { "平均搜索时间", LSJAllTotalTaskPerformance.平均搜索时间.ToString() },
  143. { "平均救助时间", LSJAllTotalTaskPerformance.平均救助时间.ToString() },
  144. { "总飞行时间", LSJAllTotalTaskPerformance.总飞行时间.ToString() },
  145. { "环境覆盖率", LSJAllTotalTaskPerformance.环境搜索覆盖面积.ToString() },
  146. { "任务是否成功", LSJAllTotalTaskPerformance.任务是否成功.ToString() },
  147. { "人员存活率", LSJAllTotalTaskPerformance.人员存活率.ToString() }
  148. };
  149. return report;
  150. }
  151. }