using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; using XdCxRhDW.Dto; using XdCxRhDW.Entity; using XdCxRhDW.Repostory; using XdCxRhDW.WebApi; namespace XdCxRhDW.App.Controllers { /// /// 取参考相关接口 /// public class FindRefController : BaseController { /// /// 添加两星一地参考信号缓存 /// /// 返回请求结果 [HttpPost] public async Task AddX2D1RefCacheAsync(List dtos) { var dto = dtos.First(); try { TaskInfo runTask; using (MySqlContext db = new MySqlContext()) { if (dto.TaskID == null) { runTask = await db.TaskInfos.FirstOrDefaultAsync(p => p.TaskType == EnumTaskType.Group && p.PosType == EnumPosType.X2D1 && p.TaskState == EnumTaskState.Running); if (runTask == null) { XdCxRhDW.Framework.LogHelper.Warning($"接收到两星一地无参参考信号参数,由于找不到执行中的任务忽略本次定位"); return Error($"多模式融合定位平台没有启动两星一地定位任务"); } } else { runTask = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == dto.TaskID); if (runTask == null) { XdCxRhDW.Framework.LogHelper.Warning($"找不到任务,ID={dto.TaskID}"); return Error($"找不到ID={dto.TaskID}的任务"); } } } TaskRefCache.Instance.AddRange(dto.TaskID.Value, dtos); return Success(); } catch (Exception ex) { XdCxRhDW.Framework.LogHelper.Error($"添加两星一地参考信号.ID={dto.TaskID}", ex); return Error(ex.Message); } } /// /// 添加两星一地目标信号缓存 /// /// 返回请求结果 [HttpPost] public async Task AddX2D1TarCacheAsync(List dtos) { var dto = dtos.First(); try { TaskInfo runTask; using (MySqlContext db = new MySqlContext()) { if (dto.TaskID == null) { runTask = await db.TaskInfos.FirstOrDefaultAsync(p => p.TaskType == EnumTaskType.Group && p.PosType == EnumPosType.X2D1 && p.TaskState == EnumTaskState.Running); if (runTask == null) { XdCxRhDW.Framework.LogHelper.Warning($"接收到两星一地无参目标信号参数,由于找不到执行中的任务忽略本次定位"); return Error($"多模式融合定位平台没有启动两星一地定位任务"); } } else { runTask = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == dto.TaskID); if (runTask == null) { XdCxRhDW.Framework.LogHelper.Warning($"找不到任务,ID={dto.TaskID}"); return Error($"找不到ID={dto.TaskID}的任务"); } } } TaskTarCache.Instance.AddRange(dto.TaskID.Value, dtos); return Success(); } catch (Exception ex) { XdCxRhDW.Framework.LogHelper.Error($"添加两星一地目标信号.ID={dto.TaskID}", ex); return Error(ex.Message); } } } }