zoulei 10 mēneši atpakaļ
vecāks
revīzija
8bb89cfe93

+ 1 - 2
Service/CheckServer/Controllers/CheckController.cs

@@ -28,7 +28,7 @@ namespace CheckServer.Controllers
         {
             try
             {
-                await LogHelper.Info($"正在对文件{dto.file1}执行滤波");
+                GC.Collect();
                 dto.file1 = GetLocalFile(dto.file1);
                 var bandHz = dto.band * 1e3;
                 string outFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot", $"{Path.GetFileNameWithoutExtension(dto.file1)}_filter.dat");
@@ -44,7 +44,6 @@ namespace CheckServer.Controllers
                 {
                     return Error<List<DetectResDto>>("滤波后的文件未能生成");
                 }
-                await LogHelper.Info($"正在检测文件{dto.file1}");
                 List<DetectResDto> list = new List<DetectResDto>();
                 List<DmcResult> listRes = new List<DmcResult>();
                 List<DmcResult> dmcResults = new List<DmcResult>();

+ 2 - 0
Service/CpuCgServer/Controllers/CpuCgController.cs

@@ -24,6 +24,7 @@ namespace CpuCgServer.Controllers
         [HttpPost]
         public async Task<AjaxResult<CpuCgResDto>> Calc(CpuCgDto dto)
         {
+            GC.Collect();
             dto.file1 = GetLocalFile(dto.file1);
             dto.file2 = GetLocalFile(dto.file2);
             XcorrStruct xItem = new XcorrStruct
@@ -102,6 +103,7 @@ namespace CpuCgServer.Controllers
         [HttpPost]
         public async Task<AjaxResult<List<CpuCgResDto>>> MultiCalc(CpuCgMultiDto dto)
         {
+            GC.Collect();
             dto.file1 = GetLocalFile(dto.file1);
             dto.file2 = GetLocalFile(dto.file2);
             MultiXcorrStruct xItem = new MultiXcorrStruct();

+ 4 - 0
Service/X2D1TaskServer/Controllers/X2D1TaskProcessingController.cs

@@ -39,6 +39,10 @@ namespace X2D1TaskServer.Controllers
         {
             try
             {
+                if (_service.Stop(dto.ID))
+                {
+                    Thread.Sleep(2000);
+                }
                 if (dto.TaskType == EnumTaskTypeDto.History)
                     _service.StartHistoryAsync(dto);
                 else

+ 1 - 1
Service/X2D1TaskServer/MainForm.Designer.cs

@@ -52,7 +52,7 @@
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
             this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
             this.Name = "MainForm";
-            this.Text = "CPU参估服务";
+            this.Text = "两星一地数据处理服务";
             this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);
             this.Load += new System.EventHandler(this.MainForm_LoadAsync);
             this.ResumeLayout(false);

+ 3 - 3
Service/X2D1TaskServer/Service/TaskService.cs

@@ -1262,11 +1262,11 @@ namespace X2D1TaskServer.Service
         /// <summary>
         /// 停止任务
         /// </summary>
-        public void Stop(int taskID)
+        public bool Stop(int taskID)
         {
-            if (!dicCts.ContainsKey(taskID)) return;
+            if (!dicCts.ContainsKey(taskID)) return false;
             dicCts[taskID]?.Cancel();
-            dicCts.Remove(taskID);
+            return dicCts.Remove(taskID);
         }
 
         private bool IsLocal(string file)

+ 13 - 2
XdCxRhDW.App/Controllers/DetectCgController.cs

@@ -54,7 +54,14 @@ namespace XdCxRhDW.App.Controllers
                 dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr, timeoutSeconds: dto.TimeoutSeconds);
                 dto.file2 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file2), svr.BaseHttpAddr, timeoutSeconds: dto.TimeoutSeconds);
                 var res = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(svr.BaseHttpAddr + "CpuCg/MultiCalc", dto, dto.TimeoutSeconds);
-                return res;
+                if (res.code != 200)
+                {
+                    return Error<List<CpuCgResDto>>(res.msg);
+                }
+                else
+                {
+                    return Success(res.data);
+                }
             }
             catch (TaskCanceledException)
             {
@@ -110,6 +117,10 @@ namespace XdCxRhDW.App.Controllers
                 var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CheckSvr);
                 dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr, timeoutSeconds: dto.TimeoutSeconds);
                 var res = await HttpHelper.PostRequestAsync<List<DetectResDto>>(svr.BaseHttpAddr + "Check/Calc", dto, dto.TimeoutSeconds);
+                if (res.code != 200)
+                {
+                    return Error<List<DetectResDto>>(res.msg);
+                }
                 if (dto.SigProc && res.data.Any())
                 {
                     SignalProcDto procDto = new SignalProcDto()
@@ -121,7 +132,7 @@ namespace XdCxRhDW.App.Controllers
                     var procRes = await HttpHelper.PostRequestAsync<List<SignalProcResDto>>(svr.BaseHttpAddr + "Check/SignalProc", procDto);
                     if (procRes.data == null || res.data.Count != procRes.data.Count)
                     {
-                        throw new Exception("信号识别结果个数和检测结果个数不一致");
+                        throw new Exception($"信号识别结果个数和检测结果个数不一致");
                     }
                     for (int i = 0; i < res.data.Count; i++)
                     {

+ 57 - 59
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -201,63 +201,70 @@ namespace XdCxRhDW.App.UserControl
         private DateTime lasetUpdateTime = DateTime.MinValue;
         private void OnPosAdd(ModelPosRes posRes)
         {
-            var currentTask = gridView1.GetFocusedRow() as TaskInfo;
-            if (currentTask.ID == posRes.TaskInfoID)
+            try
             {
-                lock (this)
+                var currentTask = gridView1.GetFocusedRow() as TaskInfo;
+                if (currentTask.ID == posRes.TaskInfoID)
                 {
-                    var items = txtFrequpMHz.Properties.Items.Where(p => p.Value != null).Select(t => Convert.ToInt64(t.Value)).ToList();
-                    if (!items.Contains(posRes.FreqUpHz))
+                    lock (this)
                     {
-                        canQuery = false;
-                        items.Add(posRes.FreqUpHz);
-                        items.Sort();
-                        var selectdItem = this.txtFrequpMHz.SelectedItem;
-                        this.Invoke(new Action(() =>
+                        var items = txtFrequpMHz.Properties.Items.Where(p => p.Value != null).Select(t => Convert.ToInt64(t.Value)).ToList();
+                        if (!items.Contains(posRes.FreqUpHz))
                         {
-                            this.txtFrequpMHz.Properties.Items.Clear();
-                            this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem("全部", null));
-                            foreach (var item in items)
+                            canQuery = false;
+                            items.Add(posRes.FreqUpHz);
+                            items.Sort();
+                            var selectdItem = this.txtFrequpMHz.SelectedItem;
+                            this.Invoke(new Action(() =>
                             {
-                                this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem((item / 1e6).ToString("f3"), item));
-                            }
-                            this.txtFrequpMHz.SelectedItem = selectdItem;
-                        }));
-                        canQuery = true;
+                                this.txtFrequpMHz.Properties.Items.Clear();
+                                this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem("全部", null));
+                                foreach (var item in items)
+                                {
+                                    this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem((item / 1e6).ToString("f3"), item));
+                                }
+                                this.txtFrequpMHz.SelectedItem = selectdItem;
+                            }));
+                            canQuery = true;
+                        }
                     }
-                }
-                if (txtFrequpMHz.EditValue != null && posRes.FreqUpHz != Convert.ToInt64(txtFrequpMHz.EditValue))
-                    return;
-                if (posRes.PosLon == 999 && !btnIncludeInvalidate.Checked)
-                    return;
-                if (txtTimeCho.Text == "自定义")
-                {
-                    return;
-                }
-                var hours = Convert.ToInt32(txtTimeCho.EditValue);
-                var ds = this.gridHomePosRes.DataSource as List<ModelPosRes>;
-                List<ModelPosRes> removeItems = null;
-                lock (this)
-                {
-                    ds.Insert(0, posRes);
-                    var max = ds.Max(p => p.SigTime);
-                    removeItems = ds.Where(p => (max - p.SigTime).TotalHours > hours).ToList();
-                    foreach (var item in removeItems)
+                    if (txtFrequpMHz.EditValue != null && posRes.FreqUpHz != Convert.ToInt64(txtFrequpMHz.EditValue))
+                        return;
+                    if (posRes.PosLon == 999 && !btnIncludeInvalidate.Checked)
+                        return;
+                    if (txtTimeCho.Text == "自定义")
                     {
-                        ds.Remove(item);
+                        return;
                     }
-                }
-                mapControl1.DelPosItem(removeItems);
-                mapControl1.AddPosItem(posRes);
-                if ((DateTime.Now - lasetUpdateTime).TotalSeconds > 5)
-                {
-                    this.Invoke(new Action(() =>
+                    var hours = Convert.ToInt32(txtTimeCho.EditValue);
+                    var ds = this.gridHomePosRes.DataSource as List<ModelPosRes>;
+                    List<ModelPosRes> removeItems = null;
+                    lock (this)
+                    {
+                        ds.Insert(0, posRes);
+                        var max = ds.Max(p => p.SigTime);
+                        removeItems = ds.Where(p => (max - p.SigTime).TotalHours > hours).ToList();
+                        foreach (var item in removeItems)
+                        {
+                            ds.Remove(item);
+                        }
+                    }
+                    mapControl1.DelPosItem(removeItems);
+                    mapControl1.AddPosItem(posRes);
+                    if ((DateTime.Now - lasetUpdateTime).TotalSeconds > 5)
                     {
-                        gridView2.RefreshData();
-                    }));
-                    lasetUpdateTime = DateTime.Now;
+                        this.Invoke(new Action(() =>
+                        {
+                            gridView2.RefreshData();
+                        }));
+                        lasetUpdateTime = DateTime.Now;
+                    }
                 }
             }
+            catch (Exception ex)
+            {
+                _ = LogHelper.Error("定位完成后刷新UI出错", ex);
+            }
         }
         private async void GridView1_FocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e)
         {
@@ -1036,11 +1043,6 @@ namespace XdCxRhDW.App.UserControl
 
         public void RePosition(List<RePosRes> items, PosRequestByTimeRangeDto dto)
         {
-            if (items.Count == 0)
-            {
-                MsgBoxHelper.ShowWarning($"查询任务[{dto.TaskInfoID}]开始时间:{dto.BeginTime:yyyy-MM-dd HH:mm:ss} 结束时间:{dto.EndTime:yyyy-MM-dd HH:mm:ss}无定位结果数据");
-                return;
-            }
             Task.Run(async () =>
             {
                 foreach (var item in items)
@@ -1276,10 +1278,8 @@ namespace XdCxRhDW.App.UserControl
                         await db.SaveChangesAsync();
                     }
                 }
-                Serilog.Log.Warning($"共重新定位了{items.Count()}个定位点的目标信息");
-                MsgBoxHelper.ShowInfo($"共重新定位了{items.Count()}个定位点的目标信息");
-
-
+                Serilog.Log.Warning($"重新定位完成,共{items.Count()}条记录");
+                MsgBoxHelper.ShowInfo($"重新定位完成,共修改了{items.Count()}条记录");
             });
         }
         //重新定位
@@ -1302,7 +1302,7 @@ namespace XdCxRhDW.App.UserControl
             try
             {
                 var ct = new CancellationTokenSource();
-                var res = await HttpHelper.PostRequestAsync<List<RePosRes>>(SysConfig.GetUrl("Pos/GetPosCgResByTimeRangeObsolete"), dto, token: ct.Token);
+                var res = await HttpHelper.PostRequestAsync<List<RePosRes>>(SysConfig.GetUrl("Result/GetPosCgResByTimeRangeObsolete"), dto, token: ct.Token);
                 if (res.code == 200)
                 {
                     RePosition(res.data, dto);
@@ -1314,12 +1314,10 @@ namespace XdCxRhDW.App.UserControl
             }
             catch (Exception ex)
             {
-                string msg = $"任务[{dto.TaskInfoID}]重新定位结果查询开始时间:{dto.BeginTime:yyyy-MM-dd HH:mm:ss} 结束时间:{dto.EndTime:yyyy-MM-dd HH:mm:ss}异常";
+                string msg = $"任务[{dto.TaskInfoID}]重新定位异常";
                 Serilog.Log.Error(ex, msg);
                 MsgBoxHelper.ShowError(msg);
             }
-
-
         }
         #endregion
 

+ 1 - 1
XdCxRhDw.Dto/SvrStateDto.cs

@@ -71,7 +71,7 @@ namespace XdCxRhDW.Dto
         /// <summary>
         /// 两星一地无参数据处理服务
         /// </summary>
-        [Display(Name = "两星一地无参数据处理服务")]
+        [Display(Name = "两星一地数据处理服务")]
         X2D1NoRefTask,
 
     }