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 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 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> GetReport() { Dictionary> report = new Dictionary>(); report["总任务表现"] = new Dictionary { { "识别成功率", SSJAllTotalTaskPerformance.识别成功率.ToString() }, { "任务准备时间", SSJAllTotalTaskPerformance.任务准备时间.ToString() }, { "平均搜索时间", SSJAllTotalTaskPerformance.平均搜索时间.ToString() }, { "平均救助时间", SSJAllTotalTaskPerformance.平均救助时间.ToString() }, { "总飞行时间", SSJAllTotalTaskPerformance.总飞行时间.ToString() }, { "海情覆盖率", SSJAllTotalTaskPerformance.海上搜索覆盖面积.ToString() }, { "任务是否成功", SSJAllTotalTaskPerformance.任务是否成功.ToString() }, { "人员存活率", SSJAllTotalTaskPerformance.人员存活率.ToString() } }; return report; } public Dictionary> GetReport1() { Dictionary> report = new Dictionary>(); report["总任务表现"] = new Dictionary { { "识别成功率", LSJAllTotalTaskPerformance.识别成功率.ToString() }, { "任务准备时间", LSJAllTotalTaskPerformance.任务准备时间.ToString() }, { "平均搜索时间", LSJAllTotalTaskPerformance.平均搜索时间.ToString() }, { "平均救助时间", LSJAllTotalTaskPerformance.平均救助时间.ToString() }, { "总飞行时间", LSJAllTotalTaskPerformance.总飞行时间.ToString() }, { "环境覆盖率", LSJAllTotalTaskPerformance.环境搜索覆盖面积.ToString() }, { "任务是否成功", LSJAllTotalTaskPerformance.任务是否成功.ToString() }, { "人员存活率", LSJAllTotalTaskPerformance.人员存活率.ToString() } }; return report; } }