|
@@ -17,7 +17,6 @@ using XdCxRhDW.App.Model;
|
|
|
using System.Diagnostics;
|
|
|
using System.Configuration;
|
|
|
using DevExpress.Mvvm.Native;
|
|
|
-using System.Data.Entity.Infrastructure;
|
|
|
|
|
|
namespace XdCxRhDW.App.Controllers
|
|
|
{
|
|
@@ -26,7 +25,6 @@ namespace XdCxRhDW.App.Controllers
|
|
|
/// </summary>
|
|
|
public class ResultController : BaseController
|
|
|
{
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 根据时间范围查询参估结果
|
|
|
/// </summary>
|
|
@@ -36,38 +34,22 @@ namespace XdCxRhDW.App.Controllers
|
|
|
[HttpPost]
|
|
|
public async Task<AjaxResult<List<CgResDto>>> GetCgResByTimeRange(CgResQueryDto dto)
|
|
|
{
|
|
|
- List<CgResDto> cgList = new List<CgResDto>();
|
|
|
+ List<CgResDto> cgRes = null;
|
|
|
try
|
|
|
{
|
|
|
- DateTime start = dto.BeginTime;
|
|
|
- DateTime end = dto.EndTime;
|
|
|
- var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DbPart");
|
|
|
- if (!Directory.Exists(dir)) return Success(cgList);
|
|
|
- List<string> list = new List<string>();
|
|
|
- DateTime tempStart = new DateTime(start.Year, start.Month, start.Day);
|
|
|
- while (end >= tempStart)
|
|
|
- {
|
|
|
- list.Add(end.ToString("yyyy") + "\\" + end.ToString("MMdd") + ".db");
|
|
|
- end = end.AddDays(-1);
|
|
|
- }
|
|
|
- end = dto.EndTime;
|
|
|
- foreach (var item in list)
|
|
|
+ var start = dto.BeginTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ var end = dto.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ using (MySqlContext db = new MySqlContext())
|
|
|
{
|
|
|
- var dayFile = Path.Combine(dir, item);
|
|
|
- using (MySqlContext db = new MySqlContext())
|
|
|
- {
|
|
|
- if (db == null) continue;
|
|
|
- var query = db.PosRes.Where(p => p.Deleted == 0 && p.SigTime >= start && p.SigTime <= end && p.TaskInfoID == dto.TaskInfoID);
|
|
|
- if (!dto.IncludeInvalidate)
|
|
|
- query = query.Where(p => p.PosLon != 999);
|
|
|
- if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
|
|
|
- query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz.Value);
|
|
|
- var cgRes = await query.Include(p => p.CgRes).Select(t => t.CgRes).Include(t => t.StationRes).OrderByDescending(p => p.SigTime).ToListAsync();
|
|
|
- var listDto = MapCgDto(cgRes);
|
|
|
- cgList.AddRange(listDto);
|
|
|
- }
|
|
|
+ string sql = $"select a.*,b.SatTxLon,b.SatTxLat,b.CdbTxLon,b.CdbTxLat,b.CxLon,b.CxLat,b.RefLon,b.RefLat from cgres a left join stationres b on a.StationResID=b.ID and b.SigTime>='{start}' and b.SigTime<='{end}' where a.SigTime>='{start}' and a.SigTime<='{end}' and a.Deleted=0 and a.TaskID={dto.TaskInfoID} ";
|
|
|
+
|
|
|
+ if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
|
|
|
+ sql = $"{sql} and TarFreqUp={dto.TarFrequpHz.Value} ";
|
|
|
+
|
|
|
+ sql = $"{sql} order by SigTime desc ";
|
|
|
+ cgRes = await db.SqlQueryAsync<CgResDto>(sql);
|
|
|
}
|
|
|
- return Success(cgList);
|
|
|
+ return Success(cgRes);
|
|
|
}
|
|
|
catch (TaskCanceledException)
|
|
|
{
|
|
@@ -92,41 +74,21 @@ namespace XdCxRhDW.App.Controllers
|
|
|
[HttpPost]
|
|
|
public async Task<AjaxResult<List<TaskFreqResDto>>> GetTaskFreqs(TaskFreqQueryDto dto)
|
|
|
{
|
|
|
- var posList = new List<long>();
|
|
|
+ List<long> posList = null;
|
|
|
try
|
|
|
{
|
|
|
- var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DbPart");
|
|
|
- if (!Directory.Exists(dir)) return Success(new List<TaskFreqResDto>());
|
|
|
- var yearDirs = Directory.EnumerateDirectories(dir).OrderByDescending(p => Convert.ToInt32(new DirectoryInfo(p).Name));//年目录,倒叙排列
|
|
|
- DateTime max = DateTime.MinValue;
|
|
|
- foreach (var yearDir in yearDirs)
|
|
|
+ using (MySqlContext db = new MySqlContext())
|
|
|
{
|
|
|
- if (max != DateTime.MinValue) break;
|
|
|
- //每一天的db文件,倒序排列
|
|
|
- var dayFiles = Directory.EnumerateFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, yearDir), "*.db").OrderByDescending(p => Convert.ToInt32(new DirectoryInfo(p).Name.Substring(0, 4)));
|
|
|
- foreach (var dayFile in dayFiles)
|
|
|
- {
|
|
|
- using (MySqlContext db = new MySqlContext())
|
|
|
- {
|
|
|
- if (db == null) continue;
|
|
|
-
|
|
|
- var listFrequp = await db.PosRes.Where(p => p.Deleted == 0 && p.TaskInfoID == dto.TaskInfoID).Select(p => p.FreqUpHz).Distinct().ToListAsync();
|
|
|
- foreach (var item in listFrequp)
|
|
|
- {
|
|
|
- if (!posList.Contains(item))
|
|
|
- posList.Add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ posList = await db.PosRes.Where(p => p.Deleted == 0 && p.TaskInfoID == dto.TaskInfoID).Select(p => p.FreqUpHz).Distinct().ToListAsync();
|
|
|
}
|
|
|
var res = posList.Select(p => new TaskFreqResDto() { FreqUpHz = p }).OrderBy(o => o.FreqUpHz).ToList();
|
|
|
return Success(res);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- string msg = $"定位结果查询异常-任务编号:{dto.TaskInfoID}";
|
|
|
+ string msg = $"任务上行频点查询异常-任务编号:{dto.TaskInfoID}";
|
|
|
XdCxRhDW.Framework.LogHelper.Error(msg, ex);
|
|
|
- return Error<List<TaskFreqResDto>>("定位结果查询异常");
|
|
|
+ return Error<List<TaskFreqResDto>>("任务上行频点查询异常");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -212,7 +174,7 @@ namespace XdCxRhDW.App.Controllers
|
|
|
[Obsolete]
|
|
|
public async Task<AjaxResult<List<ModelPosRes>>> GetPosResByTimeRangeObsolete(PosRequestByTimeRangeDto dto)
|
|
|
{
|
|
|
- List<ModelPosRes> posList = new List<ModelPosRes>();
|
|
|
+ List<ModelPosRes> posRes = null;
|
|
|
try
|
|
|
{
|
|
|
DateTime start = dto.BeginTime;
|
|
@@ -220,41 +182,39 @@ namespace XdCxRhDW.App.Controllers
|
|
|
List<TargetInfo> targets;
|
|
|
using (MySqlContext db = new MySqlContext())
|
|
|
{
|
|
|
- var query = db.PosRes.Where(p => p.SigTime >= start && p.SigTime <= end);
|
|
|
- query = query.Where(p => p.TaskInfoID == dto.TaskInfoID && p.Deleted == 0);
|
|
|
+ var startStr = dto.BeginTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ var endStr = dto.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ string sql = $"select a.*,b.UserName,b.PosCheckType,c.Snr1,c.Snr2,c.SnrCdb from posres a left join checkres b on a.CheckResID=b.ID and b.SigTime>='{startStr}' and b.SigTime<='{endStr}' left JOIN cgres c on a.CgResID=c.ID and c.SigTime>='{startStr}' and c.SigTime<='{endStr}' where a.SigTime>='{startStr}' and a.SigTime<='{endStr}' and a.Deleted=0 and a.TaskInfoID={dto.TaskInfoID} ";
|
|
|
+
|
|
|
if (!dto.IncludeInvalidate)
|
|
|
- query = query.Where(p => p.PosLon != 999);
|
|
|
+ sql = $"{sql} and PosLon!=999 ";
|
|
|
+
|
|
|
if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
|
|
|
- query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz.Value);
|
|
|
- var sql = query.ToString();
|
|
|
- var posRes = await query
|
|
|
- .Include(p => p.CheckRes)
|
|
|
- //.Include(p => p.CgRes)
|
|
|
- .OrderByDescending(p => p.SigTime).ToListAsync();
|
|
|
+ sql = $"{sql} and FreqUpHz={dto.TarFrequpHz.Value} ";
|
|
|
+
|
|
|
+ sql = $"{sql} order by SigTime desc ";
|
|
|
+
|
|
|
+ posRes = await db.SqlQueryAsync<ModelPosRes>(sql);
|
|
|
if (posRes.Any())
|
|
|
{
|
|
|
targets = await db.TargetInfos.ToListAsync();
|
|
|
- if (targets.Any())
|
|
|
+ foreach (var itemPos in posRes)
|
|
|
{
|
|
|
- foreach (var itemPos in posRes)
|
|
|
+ if (itemPos.TargetInfoID > 0)
|
|
|
{
|
|
|
- if (itemPos.TargetInfoID > 0)
|
|
|
- {
|
|
|
- itemPos.TargetInfo = targets.FirstOrDefault(p => p.ID == itemPos.TargetInfoID);
|
|
|
- if (itemPos.TargetInfo != null && !string.IsNullOrWhiteSpace(itemPos.TargetInfo.TargeColor))
|
|
|
- itemPos.ColorKey = itemPos.TargetInfo.TargeColor;
|
|
|
- }
|
|
|
+ var find = targets.FirstOrDefault(p => p.ID == itemPos.TargetInfoID);
|
|
|
+ itemPos.TargetName = find?.TargetName;
|
|
|
+ itemPos.ColorKey = find?.TargeColor;
|
|
|
+ }
|
|
|
+ if (itemPos.Snr2 == null && itemPos.SnrCdb != null)
|
|
|
+ {
|
|
|
+ itemPos.Snr2 = itemPos.SnrCdb;
|
|
|
}
|
|
|
- }
|
|
|
- foreach (var itemPos in posRes)
|
|
|
- {
|
|
|
- var mp = ModelPosRes.GetVm(itemPos);
|
|
|
- posList.Add(mp);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- return Success(posList);
|
|
|
+ return Success(posRes);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -364,17 +324,18 @@ namespace XdCxRhDW.App.Controllers
|
|
|
DateTime? max = null;
|
|
|
using (MySqlContext db = new MySqlContext())
|
|
|
{
|
|
|
+ string sql = $"select max(SigTime) from PosRes where TaskInfoID={dto.TaskInfoID} and Deleted=0 ";
|
|
|
var query = db.PosRes.Where(p => p.TaskInfoID == dto.TaskInfoID && p.Deleted == 0);
|
|
|
if (!dto.IncludeInvalidate)
|
|
|
{
|
|
|
- query = query.Where(p => p.PosLon != 999);
|
|
|
+ sql = $"{sql} and PosLon!=999 ";
|
|
|
|
|
|
}
|
|
|
if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
|
|
|
{
|
|
|
- query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz);
|
|
|
+ sql = $"{sql} and FreqUpHz={dto.TarFrequpHz} ";
|
|
|
}
|
|
|
- max = await query.MaxAsync(p => (DateTime?)p.SigTime);
|
|
|
+ max = await db.SqlQueryOneAsync<DateTime?>(sql);
|
|
|
}
|
|
|
if (max == null) return Success(posList);
|
|
|
DateTime min = max.Value.AddHours(-dto.Hours);
|
|
@@ -397,7 +358,7 @@ namespace XdCxRhDW.App.Controllers
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- private PosResDto MapDto(PosRes res)
|
|
|
+ private PosResDto MapDto(ModelPosRes res)
|
|
|
{
|
|
|
var item = new PosResDto()
|
|
|
{
|
|
@@ -405,103 +366,22 @@ namespace XdCxRhDW.App.Controllers
|
|
|
FreqUpHz = res.FreqUpHz,
|
|
|
SigTime = res.SigTime,
|
|
|
TaskInfoID = res.TaskInfoID,
|
|
|
- TarName = res.TargetInfo?.TargetName,
|
|
|
+ TarName = res.TargetName,
|
|
|
PosLon = res.PosLon,
|
|
|
PosLat = res.PosLat,
|
|
|
MirrLon = res.MirrLon,
|
|
|
MirrLat = res.MirrLat,
|
|
|
- CheckType = res.CheckRes?.PosCheckType == null ? "" : res.CheckRes?.PosCheckType?.GetEnumDisplayName(),
|
|
|
+ CheckType = res.PosCheckType?.GetEnumDisplayName(),
|
|
|
TargetState = (EnumTargetStateDto)res.TargetState,
|
|
|
PosResType = (EnumPosResTypeDto)res.PosResType,
|
|
|
Confidence = res.Confidence,
|
|
|
CreateTime = res.CreateTime,
|
|
|
- UserName = res.CheckRes?.UserName,
|
|
|
- Snr1 = res.CgRes?.Snr1,
|
|
|
+ UserName = res.UserName,
|
|
|
+ Snr1 = res.Snr1,
|
|
|
+ Snr2 = res.Snr2,
|
|
|
};
|
|
|
- if (res.CgRes != null)
|
|
|
- {
|
|
|
- if (res.CgRes.SnrCdb != null || res.CgRes.Snr2 != null)
|
|
|
- {
|
|
|
- if (res.CgRes.Snr2 != null)
|
|
|
- item.Snr2 = res.CgRes.Snr2;
|
|
|
- else
|
|
|
- item.Snr2 = res.CgRes.SnrCdb;
|
|
|
- }
|
|
|
- }
|
|
|
return item;
|
|
|
}
|
|
|
|
|
|
- private List<CgResDto> MapCgDto(List<CgRes> listCg)
|
|
|
- {
|
|
|
- List<CgResDto> list = new List<CgResDto>();
|
|
|
- foreach (CgRes cgRes in listCg)
|
|
|
- {
|
|
|
- var dto = new CgResDto()
|
|
|
- {
|
|
|
- ID = cgRes.ID,
|
|
|
- TaskID = cgRes.TaskID,
|
|
|
- FreqUpHz = cgRes.TarFreqUp == null ? 0 : (long)(cgRes.TarFreqUp.Value),
|
|
|
- SigTime = cgRes.SigTime,
|
|
|
- Dto1 = cgRes.Dto1,
|
|
|
- Dfo1 = cgRes.Dfo1,
|
|
|
- Snr1 = cgRes.Snr1,
|
|
|
- Dto2 = cgRes.Dto2,
|
|
|
- Dfo2 = cgRes.Dfo2,
|
|
|
- Snr2 = cgRes.Snr2,
|
|
|
- DtoCdb = cgRes.DtoCdb,
|
|
|
- DfoCdb = cgRes.DfoCdb,
|
|
|
- SnrCdb = cgRes.SnrCdb,
|
|
|
- YbMainDto = cgRes.YbMainDto,
|
|
|
- YbMainDfo = cgRes.YbMainDfo,
|
|
|
- YbMainSnr = cgRes.YbMainSnr,
|
|
|
- YbAdja1Dto = cgRes.YbAdja1Dto,
|
|
|
- YbAdja1Dfo = cgRes.YbAdja1Dfo,
|
|
|
- YbAdja1Snr = cgRes.YbAdja1Snr,
|
|
|
- YbAdja2Dfo = cgRes.YbAdja2Dfo,
|
|
|
- YbAdja2Dto = cgRes.YbAdja2Dto,
|
|
|
- YbAdja2Snr = cgRes.YbAdja2Snr,
|
|
|
- TarFreqUp = cgRes.TarFreqUp,
|
|
|
- TarFreqDown = cgRes.TarFreqDown,
|
|
|
- RefFreqUp = cgRes.RefFreqUp,
|
|
|
- RefFreqDown = cgRes.RefFreqDown,
|
|
|
- MainCode = cgRes.MainCode,
|
|
|
- Adja1Code = cgRes.Adja1Code,
|
|
|
- Adja2Code = cgRes.Adja2Code,
|
|
|
- MainXlTime = cgRes.MainXlTime,
|
|
|
- Adja1XlTime = cgRes.Adja1XlTime,
|
|
|
- Adja2XlTime = cgRes.Adja2XlTime,
|
|
|
- MainX = cgRes.MainX,
|
|
|
- MainY = cgRes.MainY,
|
|
|
- MainZ = cgRes.MainZ,
|
|
|
- MainVx = cgRes.MainVx,
|
|
|
- MainVy = cgRes.MainVy,
|
|
|
- MainVz = cgRes.MainVz,
|
|
|
- Adja1X = cgRes.Adja1X,
|
|
|
- Adja1Y = cgRes.Adja1Y,
|
|
|
- Adja1Z = cgRes.Adja1Z,
|
|
|
- Adja1Vx = cgRes.Adja1Vx,
|
|
|
- Adja1Vy = cgRes.Adja1Vy,
|
|
|
- Adja1Vz = cgRes.Adja1Vz,
|
|
|
- Adja2X = cgRes.Adja2X,
|
|
|
- Adja2Y = cgRes.Adja2Y,
|
|
|
- Adja2Z = cgRes.Adja2Z,
|
|
|
- Adja2Vx = cgRes.Adja2Vx,
|
|
|
- Adja2Vy = cgRes.Adja2Vy,
|
|
|
- Adja2Vz = cgRes.Adja2Vz,
|
|
|
- SatTxLon = cgRes.StationRes.SatTxLon,
|
|
|
- SatTxLat = cgRes.StationRes.SatTxLat,
|
|
|
- CdbTxLon = cgRes.StationRes.CdbTxLon,
|
|
|
- CdbTxLat = cgRes.StationRes.CdbTxLat,
|
|
|
- CxLon = cgRes.StationRes.CxLon,
|
|
|
- CxLat = cgRes.StationRes.CxLat,
|
|
|
- RefLon = cgRes.StationRes.RefLon,
|
|
|
- RefLat = cgRes.StationRes.RefLat,
|
|
|
- CreateTime = cgRes.CreateTime,
|
|
|
- };
|
|
|
- list.Add(dto);
|
|
|
- }
|
|
|
- return list;
|
|
|
-
|
|
|
- }
|
|
|
}
|
|
|
}
|