|
|
@@ -64,7 +64,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
{
|
|
|
var find = list.FirstOrDefault(p => p.ID == id);
|
|
|
if (find == null) return;
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext(true))
|
|
|
{
|
|
|
var item = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == id);
|
|
|
if (item == null) return;
|
|
|
@@ -137,7 +137,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
try
|
|
|
{
|
|
|
List<TxInfo> txList = new List<TxInfo>();
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
var tasks = db.TaskInfos.OrderByDescending(p => p.UpdateTime).ToList();
|
|
|
list.AddRange(tasks);
|
|
|
@@ -358,19 +358,19 @@ namespace XdCxRhDW.App.UserControl
|
|
|
this.gridHomePosRes.DataSource = listPos;
|
|
|
mapControl1.SetPosDataSource(listPos);
|
|
|
}
|
|
|
-
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ SatInfo sat1, sat2, sat3;
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext(true))
|
|
|
{
|
|
|
- var sat1 = db.SatInfos.Where(p => p.SatCode == tsk.MainSat).FirstOrDefault();
|
|
|
- var sat2 = db.SatInfos.Where(p => p.SatCode == tsk.Adja1Sat).FirstOrDefault();
|
|
|
- var sat3 = db.SatInfos.Where(p => p.SatCode == tsk.Adja2Sat).FirstOrDefault();
|
|
|
- if (sat1 != null && sat1.SatLon != null)
|
|
|
- mapControl1.DrawFixedImg("Sat", "Sat1", 0, sat1.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"主星\r\n{sat1.Sat}");
|
|
|
- if (sat2 != null && sat2.SatLon != null)
|
|
|
- mapControl1.DrawFixedImg("Sat", "Sat2", 0, sat2.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"邻1星\r\n{sat2.Sat}");
|
|
|
- if (sat3 != null && sat3.SatLon != null)
|
|
|
- mapControl1.DrawFixedImg("Sat", "Sat3", 0, sat3.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"邻2星\r\n{sat3.Sat}");
|
|
|
+ sat1 = db.SatInfos.Where(p => p.SatCode == tsk.MainSat).FirstOrDefault();
|
|
|
+ sat2 = db.SatInfos.Where(p => p.SatCode == tsk.Adja1Sat).FirstOrDefault();
|
|
|
+ sat3 = db.SatInfos.Where(p => p.SatCode == tsk.Adja2Sat).FirstOrDefault();
|
|
|
}
|
|
|
+ if (sat1 != null && sat1.SatLon != null)
|
|
|
+ mapControl1.DrawFixedImg("Sat", "Sat1", 0, sat1.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"主星\r\n{sat1.Sat}");
|
|
|
+ if (sat2 != null && sat2.SatLon != null)
|
|
|
+ mapControl1.DrawFixedImg("Sat", "Sat2", 0, sat2.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"邻1星\r\n{sat2.Sat}");
|
|
|
+ if (sat3 != null && sat3.SatLon != null)
|
|
|
+ mapControl1.DrawFixedImg("Sat", "Sat3", 0, sat3.SatLon.Value, DxHelper.SvgHelper.CreateSat(width: 16, height: 16), $"邻2星\r\n{sat3.Sat}");
|
|
|
|
|
|
}
|
|
|
private void GridView1_DoubleClick(object sender, EventArgs e)
|
|
|
@@ -464,7 +464,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
if (frm.ShowDialog() != DialogResult.OK) return;
|
|
|
addItem = frm.info;
|
|
|
var addItemSignal = frm.selectedItem;
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
if (addItem.PosType == EnumPosType.X1D1CX)
|
|
|
{
|
|
|
@@ -508,7 +508,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
{
|
|
|
var editItem = gridView1.GetFocusedRow() as TaskInfo;
|
|
|
if (editItem == null) return;
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
|
|
|
List<TaskSig> taskSig = await db.TaskSigs.Where(w => w.TaskInfoID == editItem.ID).ToListAsync();
|
|
|
@@ -521,6 +521,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
var editItemSig = frm.selectedItem;
|
|
|
if (await db.TaskInfos.AnyAsync(p => p.ID != editItem.ID && p.TaskName == editItem.TaskName))
|
|
|
{
|
|
|
+ db.Dispose();
|
|
|
DxHelper.MsgBoxHelper.ShowWarning("任务名称重复");
|
|
|
return;
|
|
|
}
|
|
|
@@ -580,7 +581,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
if (tsk == null) return;
|
|
|
if (!DxHelper.MsgBoxHelper.ShowConfirm($"删除任务[{tsk.TaskName}]?"))
|
|
|
return;
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
var item = db.TaskInfos.FirstOrDefault(p => p.ID == tsk.ID);
|
|
|
db.TaskInfos.Remove(item);
|
|
|
@@ -613,7 +614,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
TxInfo cdb;
|
|
|
List<TaskSigDto> tskSigsDto = new List<TaskSigDto>();
|
|
|
List<FixedStation> fixedStations = null;
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext(true))
|
|
|
{
|
|
|
var dbSigs = await db.TaskSigs.Where(w => w.TaskInfoID == tsk.ID).Include(p => p.SigInfo).ToListAsync();
|
|
|
if (!dbSigs.Any())
|
|
|
@@ -640,17 +641,15 @@ namespace XdCxRhDW.App.UserControl
|
|
|
sigDto.SigDelay.AddRange(sigDelay.MapTo<List<SigDelayDto>>());
|
|
|
tskSigsDto.Add(sigDto);
|
|
|
}
|
|
|
-
|
|
|
tx = db.TxInfos.FirstOrDefault(p => p.TxType == EnumTxType.Rec);
|
|
|
cdb = db.TxInfos.FirstOrDefault(p => p.TxType == EnumTxType.Cdb);
|
|
|
- if (tx == null || cdb == null)
|
|
|
- {
|
|
|
- DxHelper.MsgBoxHelper.ShowWarning($"未配置天线信息");
|
|
|
- return;
|
|
|
- }
|
|
|
fixedStations = await db.FixedStation.Where(p => p.Enable).ToListAsync();
|
|
|
}
|
|
|
-
|
|
|
+ if (tx == null || cdb == null)
|
|
|
+ {
|
|
|
+ DxHelper.MsgBoxHelper.ShowWarning($"未配置天线信息");
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (tsk.PosType == EnumPosType.X2D1)
|
|
|
{
|
|
|
//下发任务
|
|
|
@@ -720,15 +719,14 @@ namespace XdCxRhDW.App.UserControl
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
var item = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == tsk.ID);
|
|
|
item.TaskState = EnumTaskState.Running;
|
|
|
await db.SaveChangesAsync();
|
|
|
tsk.TaskState = EnumTaskState.Running;
|
|
|
- XdCxRhDW.Framework.LogHelper.Info($"用户启动了任务,ID={tsk.ID}");
|
|
|
}
|
|
|
-
|
|
|
+ XdCxRhDW.Framework.LogHelper.Info($"用户启动了任务,ID={tsk.ID}");
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
@@ -740,7 +738,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext())
|
|
|
{
|
|
|
var item = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == tsk.ID);
|
|
|
item.TaskState = EnumTaskState.Stopped;
|
|
|
@@ -950,19 +948,21 @@ namespace XdCxRhDW.App.UserControl
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ var listId = items.Select(p => p.ID);
|
|
|
var groupItems = items.GroupBy(p => p.SigTime.ToString("yyyyMMdd"));
|
|
|
+
|
|
|
foreach (var groupItem in groupItems)
|
|
|
{
|
|
|
var ids = groupItem.Select(m => m.ID).ToList();
|
|
|
using (RHDWPartContext db = RHDWPartContext.GetContext(groupItem.First().SigTime))
|
|
|
{
|
|
|
if (db == null) continue;
|
|
|
- var array = await db.PosRes.Where(p => ids.Contains(p.ID)).ToArrayAsync();
|
|
|
- db.PosRes.RemoveRange(array);
|
|
|
+ string sql = $"update posres set deleted=1 where deleted=0 and id in ({string.Join(",", ids)})";
|
|
|
+ await db.Database.ExecuteSqlCommandAsync(sql);
|
|
|
await db.SaveChangesAsync();
|
|
|
- mapControl1.DelPosItem(array);
|
|
|
}
|
|
|
}
|
|
|
+ mapControl1.DelHugePosItem(items);
|
|
|
return true;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
@@ -972,6 +972,42 @@ namespace XdCxRhDW.App.UserControl
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+ //地图批量删除
|
|
|
+ private async Task DeletePosRes(List<ModelPosRes> items)
|
|
|
+ {
|
|
|
+ if (items == null || items.Count() == 0)
|
|
|
+ {
|
|
|
+ DxHelper.MsgBoxHelper.ShowWarning($"请选择需要删除的定位数据信息!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (!MsgBoxHelper.ShowConfirm($"确认删除定位点?共{items.Count}条记录")) return;
|
|
|
+ var groupItems = items.GroupBy(p => p.SigTime.ToString("yyyyMMdd"));
|
|
|
+ foreach (var groupItem in groupItems)
|
|
|
+ {
|
|
|
+ var ids = groupItem.Select(m => m.ID).ToList();
|
|
|
+ using (RHDWPartContext db = RHDWPartContext.GetContext(groupItem.First().SigTime))
|
|
|
+ {
|
|
|
+ if (db == null) continue;
|
|
|
+ string sql = $"update posres set deleted=1 where deleted=0 and id in ({string.Join(",", ids)})";
|
|
|
+ await db.Database.ExecuteSqlCommandAsync(sql);
|
|
|
+ await db.SaveChangesAsync();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mapControl1.DelHugePosItem(items);
|
|
|
+ var ds = this.gridHomePosRes.DataSource as List<ModelPosRes>;
|
|
|
+ ds.RemoveAll(m => items.Select(p => p.ID).Contains(m.ID));
|
|
|
+ gridView2.RefreshData();
|
|
|
+ XdCxRhDW.Framework.LogHelper.Warning($"用户删除了{items.Count()}个定位点");
|
|
|
+ MsgBoxHelper.ShowInfo($"共删除了{items.Count()}个定位点");
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ XdCxRhDW.Framework.LogHelper.Error("删除定位点失败", ex);
|
|
|
+ MsgBoxHelper.ShowError("删除定位点失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
//绘制时差线
|
|
|
public void DrawDtoLine(ModelPosRes item)
|
|
|
{
|
|
|
@@ -1319,7 +1355,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
using (RHDWPartContext db = RHDWPartContext.GetContext(groupItem.First().SigTime))
|
|
|
{
|
|
|
if (db == null) continue;
|
|
|
- var tarItems = await db.PosRes.Where(p => ids.Contains(p.ID)).ToArrayAsync();
|
|
|
+ var tarItems = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();
|
|
|
tarItems.ForEach(t =>
|
|
|
{
|
|
|
var repos = items.First(p => p.ID == t.ID);
|
|
|
@@ -1412,14 +1448,14 @@ namespace XdCxRhDW.App.UserControl
|
|
|
if (db != null)
|
|
|
{
|
|
|
var idRes = items.First().ID;
|
|
|
- var target = await db.PosRes.Where(p => p.ID == idRes).FirstOrDefaultAsync() as PosRes;
|
|
|
+ var target = await db.PosRes.Where(p => p.Deleted == 0 && p.ID == idRes).FirstOrDefaultAsync() as PosRes;
|
|
|
targetID = target.TargetInfoID;
|
|
|
}
|
|
|
}
|
|
|
TargetInfo info = null;
|
|
|
if (targetID > 0)
|
|
|
{
|
|
|
- using (RHDWContext db = new RHDWContext())
|
|
|
+ using (RHDWContext db = RHDWContext.GetContext(true))
|
|
|
{
|
|
|
info = db.TargetInfos.FirstOrDefault(p => p.ID == targetID);
|
|
|
}
|
|
|
@@ -1436,7 +1472,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
using (RHDWPartContext db = RHDWPartContext.GetContext(groupItems.First().SigTime))
|
|
|
{
|
|
|
if (db == null) continue;
|
|
|
- var tarItems = await db.PosRes.Where(p => ids.Contains(p.ID)).ToArrayAsync();
|
|
|
+ var tarItems = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();
|
|
|
tarItems.ForEach(t =>
|
|
|
{
|
|
|
t.TargetInfoID = tar.ID;
|
|
|
@@ -1512,7 +1548,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
using (RHDWPartContext db = RHDWPartContext.GetContext(groupItem.First().SigTime))
|
|
|
{
|
|
|
if (db == null) continue;
|
|
|
- var array = await db.PosRes.Where(p => ids.Contains(p.ID)).ToArrayAsync();
|
|
|
+ var array = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();
|
|
|
UseMirror(array);
|
|
|
await db.SaveChangesAsync();
|
|
|
}
|
|
|
@@ -1530,42 +1566,7 @@ namespace XdCxRhDW.App.UserControl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- //批量删除
|
|
|
- private async Task DeletePosRes(List<ModelPosRes> items)
|
|
|
- {
|
|
|
- if (items == null || items.Count() == 0)
|
|
|
- {
|
|
|
- DxHelper.MsgBoxHelper.ShowWarning($"请选择需要删除的定位数据信息!");
|
|
|
- return;
|
|
|
- }
|
|
|
- try
|
|
|
- {
|
|
|
- if (!MsgBoxHelper.ShowConfirm($"确认删除定位点?共{items.Count}条记录")) return;
|
|
|
- var groupItems = items.GroupBy(p => p.SigTime.ToString("yyyyMMdd"));
|
|
|
- foreach (var groupItem in groupItems)
|
|
|
- {
|
|
|
- var ids = groupItem.Select(m => m.ID).ToList();
|
|
|
- using (RHDWPartContext db = RHDWPartContext.GetContext(groupItem.First().SigTime))
|
|
|
- {
|
|
|
- if (db == null) continue;
|
|
|
- var list = await db.PosRes.Where(p => ids.Contains(p.ID)).ToListAsync();
|
|
|
- db.PosRes.RemoveRange(list);
|
|
|
- await db.SaveChangesAsync();
|
|
|
- }
|
|
|
- }
|
|
|
- mapControl1.DelPosItem(items);
|
|
|
- var ds = this.gridHomePosRes.DataSource as List<ModelPosRes>;
|
|
|
- ds.RemoveAll(m => items.Select(p => p.ID).Contains(m.ID));
|
|
|
- gridView2.RefreshData();
|
|
|
- XdCxRhDW.Framework.LogHelper.Warning($"用户删除了{items.Count()}个定位点");
|
|
|
- MsgBoxHelper.ShowInfo($"共删除了{items.Count()}个定位点");
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- XdCxRhDW.Framework.LogHelper.Error("删除定位点失败", ex);
|
|
|
- MsgBoxHelper.ShowError("删除定位点失败!");
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
private void UseMirror(IEnumerable<PosRes> pos)
|
|
|
{
|
|
|
foreach (var item in pos)
|