123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- using static Fire;
- namespace SimulationServer;
- public class SJAllTotalTaskPerformance
- {
- public string 识别成功率;
- public string 任务准备时间;
- public string 平均搜索时间;
- public string 平均救助时间;
- public string 总飞行时间;
- public string 海上搜索覆盖面积;
- public string 任务是否成功;
- public string 人员存活率;
- public string 环境搜索覆盖面积;
- }
- public class SJAllTotalTaskPerformanceComponent
- {
- public SJAllTotalTaskPerformance SSJAllTotalTaskPerformance = new SJAllTotalTaskPerformance();
- public SJAllTotalTaskPerformance LSJAllTotalTaskPerformance = new SJAllTotalTaskPerformance();
- public int sIndex;
- public int lIndex;
- public void FillData(List<SeaSJRescueMission> missions)
- {
- double 任务准备时间 = 0;
- double 平均搜索时间 = 0;
- double 总飞行时间 = 0;
- double 人员存活率 = 0;
- double 任务是否成功 = 0;
- float 识别成功率 = 0f;
- double 平均救助时间 = 0;
- float 人员数量 = 0;
- double aircreftCount = 0;
- foreach (SeaSJRescueMission mhRescueMission in missions)
- {
- //foreach (var aircraft in mhRescueMission.aircrafts)
- //{
- // if (aircraft.isseePerson)
- // 识别成功率 += 1f;
- // if (任务准备时间 < aircraft.TaskReadyTime)
- // 任务准备时间 = aircraft.TaskReadyTime;
- // 平均搜索时间 += aircraft.SearchTime;
- // 总飞行时间 += aircraft.TotalTime;
- // 人员存活率 += aircraft.Success ? 1 : 0;
- // aircreftCount++;
- //}
- foreach (var item in mhRescueMission.aircraftSJDatas)
- {
- 识别成功率 += float.Parse(item.Value["识别成功率"][sIndex]);
- 人员数量 += float.Parse(item.Value["人员数量"][sIndex]);
- if (任务准备时间 < float.Parse(item.Value["任务准备时间"][sIndex]))
- 任务准备时间 = float.Parse(item.Value["任务准备时间"][sIndex]);
- 平均搜索时间 += float.Parse(item.Value["平均搜索时间"][sIndex]);
- 平均救助时间 += float.Parse(item.Value["平均救助时间"][sIndex]);
- 总飞行时间 += float.Parse(item.Value["总飞行时间"][sIndex]);
- 人员存活率 += float.Parse(item.Value["人员存活率"][sIndex]);
- aircreftCount++;
- }
- }
- if (人员存活率 != 0)
- 任务是否成功 = 1;
- SSJAllTotalTaskPerformance.识别成功率 = (识别成功率 / 人员数量).ToString();
- SSJAllTotalTaskPerformance.任务准备时间 = 任务准备时间.ToString();
- SSJAllTotalTaskPerformance.平均搜索时间 = (平均搜索时间 / aircreftCount).ToString("f4");
- SSJAllTotalTaskPerformance.平均救助时间 = (平均救助时间 / aircreftCount).ToString("f4");
- SSJAllTotalTaskPerformance.总飞行时间 = 总飞行时间.ToString("f4");
- SSJAllTotalTaskPerformance.海上搜索覆盖面积 = "0.6".ToString();//"60%"
- SSJAllTotalTaskPerformance.任务是否成功 = 任务是否成功.ToString();
- SSJAllTotalTaskPerformance.人员存活率 = (人员存活率 / 人员数量).ToString();
- sIndex++;
- }
- public void FillData1(List<LandSJRescueMission> missions)
- {
- double 任务准备时间 = 0;
- double 平均搜索时间 = 0;
- double 总飞行时间 = 0;
- double 人员存活率 = 0;
- double 任务是否成功 = 0;
- float 识别成功率 = 0f;
- double 平均救助时间 = 0;
- float 人员数量 = 0;
- double aircreftCount = 0;
- foreach (LandSJRescueMission mhRescueMission in missions)
- {
- //foreach (var aircraft in mhRescueMission.aircrafts)
- //{
- // if (aircraft.isseePerson)
- // 识别成功率 += 1f;
- // if (任务准备时间 < aircraft.TaskReadyTime)
- // 任务准备时间 = aircraft.TaskReadyTime;
- // 平均搜索时间 += aircraft.SearchTime;
- // 总飞行时间 += aircraft.TotalTime;
- // 人员存活率 += aircraft.Success ? 1 : 0;
- // aircreftCount++;
- //}
- foreach (var item in mhRescueMission.aircraftSJDatas)
- {
- 识别成功率 += float.Parse(item.Value["识别成功率"][lIndex]);
- 人员数量 += float.Parse(item.Value["人员数量"][sIndex]);
- if (任务准备时间 < float.Parse(item.Value["任务准备时间"][lIndex]))
- 任务准备时间 = float.Parse(item.Value["任务准备时间"][lIndex]);
- 平均搜索时间 += float.Parse(item.Value["平均搜索时间"][lIndex]);
- 平均救助时间 += float.Parse(item.Value["平均救助时间"][sIndex]);
- 总飞行时间 += float.Parse(item.Value["总飞行时间"][lIndex]);
- 人员存活率 += float.Parse(item.Value["人员存活率"][lIndex]);
- aircreftCount++;
- }
- }
- if (人员存活率 != 0)
- 任务是否成功 = 1;
- LSJAllTotalTaskPerformance.识别成功率 = (识别成功率 / 人员数量).ToString();
- LSJAllTotalTaskPerformance.任务准备时间 = 任务准备时间.ToString();
- LSJAllTotalTaskPerformance.平均搜索时间 = (平均搜索时间 / aircreftCount).ToString("f4");
- LSJAllTotalTaskPerformance.平均救助时间 = (平均救助时间 / aircreftCount).ToString();
- LSJAllTotalTaskPerformance.总飞行时间 = 总飞行时间.ToString("f4");
- LSJAllTotalTaskPerformance.环境搜索覆盖面积 = "0.6".ToString();//"60%"
- LSJAllTotalTaskPerformance.任务是否成功 = 任务是否成功.ToString();
- LSJAllTotalTaskPerformance.人员存活率 = (人员存活率 / 人员数量).ToString();
- lIndex++;
- }
- public Dictionary<string, Dictionary<string, string>> GetReport()
- {
- Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
- report["总任务表现"] = new Dictionary<string, string>
- {
- { "识别成功率", SSJAllTotalTaskPerformance.识别成功率.ToString() },
- { "任务准备时间", SSJAllTotalTaskPerformance.任务准备时间.ToString() },
- { "平均搜索时间", SSJAllTotalTaskPerformance.平均搜索时间.ToString() },
- { "平均救助时间", SSJAllTotalTaskPerformance.平均救助时间.ToString() },
- { "总飞行时间", SSJAllTotalTaskPerformance.总飞行时间.ToString() },
- { "海情覆盖率", SSJAllTotalTaskPerformance.海上搜索覆盖面积.ToString() },
- { "任务是否成功", SSJAllTotalTaskPerformance.任务是否成功.ToString() },
- { "人员存活率", SSJAllTotalTaskPerformance.人员存活率.ToString() }
- };
- return report;
- }
- public Dictionary<string, Dictionary<string, string>> GetReport1()
- {
- Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
- report["总任务表现"] = new Dictionary<string, string>
- {
- { "识别成功率", LSJAllTotalTaskPerformance.识别成功率.ToString() },
- { "任务准备时间", LSJAllTotalTaskPerformance.任务准备时间.ToString() },
- { "平均搜索时间", LSJAllTotalTaskPerformance.平均搜索时间.ToString() },
- { "平均救助时间", LSJAllTotalTaskPerformance.平均救助时间.ToString() },
- { "总飞行时间", LSJAllTotalTaskPerformance.总飞行时间.ToString() },
- { "环境覆盖率", LSJAllTotalTaskPerformance.环境搜索覆盖面积.ToString() },
- { "任务是否成功", LSJAllTotalTaskPerformance.任务是否成功.ToString() },
- { "人员存活率", LSJAllTotalTaskPerformance.人员存活率.ToString() }
- };
- return report;
- }
- }
|