zoulei hai 1 ano
pai
achega
66d255a2e9

+ 3 - 47
XdCxRhDW.App/Controllers/DetectCgController.cs

@@ -83,18 +83,6 @@ namespace XdCxRhDW.App.Controllers
                 Serilog.Log.Error(ex, "执行CPU参估异常");
                 return Error<CpuCgResDto>($"执行CPU参估异常");
             }
-            finally
-            {
-                try
-                {
-                    //删除计算得文件
-                    File.Delete(dto.file1);
-                    File.Delete(dto.file2);
-                }
-                catch
-                {
-                }
-            }
             return Success(resDto);
 
         }
@@ -159,15 +147,6 @@ namespace XdCxRhDW.App.Controllers
                     continue;
                 }
             }
-            try
-            {
-                //删除计算得文件
-                File.Delete(dto.file1);
-                File.Delete(dto.file2);
-            }
-            catch
-            {
-            }
             return Success(resDtos);
 
         }
@@ -209,18 +188,6 @@ namespace XdCxRhDW.App.Controllers
                 Serilog.Log.Error(ex, "执行GPU参估异常");
                 return Error<List<GpuCgResponseDto>>($"执行GPU参估异常");
             }
-            finally
-            {
-                try
-                {
-                    //删除计算得文件
-                    File.Delete(dto.file1);
-                    File.Delete(dto.file2);
-                }
-                catch
-                {
-                }
-            }
         }
 
         /// <summary>
@@ -229,7 +196,7 @@ namespace XdCxRhDW.App.Controllers
         /// <param name="dto">信号检测参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<IEnumerable<DetectResDto>>> DetectCalc(DetectDto dto)
+        public async Task<AjaxResult<List<DetectResDto>>> DetectCalc(DetectDto dto)
         {
             dto.file1 = GetLocalFile(dto.file1);
             List<DetectResDto> list = new List<DetectResDto>();
@@ -265,20 +232,9 @@ namespace XdCxRhDW.App.Controllers
             }
             catch (Exception ex)
             {
-                return Error<IEnumerable<DetectResDto>>($"执行检测计算异常,{ex.Message}");
-            }
-            finally
-            {
-                try
-                {
-                    //删除检测的文件
-                    File.Delete(dto.file1);
-                }
-                catch
-                {
-                }
+                return Error<List<DetectResDto>>($"执行检测计算异常,{ex.Message}");
             }
-            return Success<IEnumerable<DetectResDto>>(list);
+            return Success(list);
 
         }
 

+ 7 - 48
XdCxRhDW.App/ExtensionsDev/MapControlEx.cs

@@ -845,18 +845,9 @@ public static class MapControlEx
     /// <returns></returns>
     public static MapControl UseWMTS(this MapControl ctrl, string url,string layerName)
     {
-        //var provider = new HttpMapDataProvider();
-        //var tileSource = provider.TileSource as HttpTileSource;
-        //tileSource.HttpServerAddr = url;
-        //ctrl.GetImageLayer().DataProvider = provider;
-        var wmsIp = ConfigurationManager.AppSettings["WMSIP"].Trim();
-        if (string.IsNullOrEmpty(wmsIp))
-        {
-            throw new ArgumentNullException("请在配置文件中配置WMSIP值");
-        }
         var provider = new HttpMapDataProvider();
         var tileSource = provider.TileSource as HttpTileSource;
-        tileSource.HttpServerAddr = wmsIp;
+        tileSource.HttpServerAddr = url;
         tileSource.layerName = layerName;
         ctrl.GetImageLayer().DataProvider = provider;
         ctrl.MinZoomLevel = 3;
@@ -885,52 +876,20 @@ public static class MapControlEx
         {
             throw new ArgumentNullException(nameof(layerName));
         }
-        var wmsIp = ConfigurationManager.AppSettings["WMSIP"].Trim();
-        if (string.IsNullOrEmpty(wmsIp))
-        {
-            throw new ArgumentNullException("请在配置文件中配置WMSIP值");
-        }
         var provider = new WmsDataProvider();//地图瓦片提供者
-        provider.ServerUri = $"http://{wmsIp}/tilecache/service/wms";
+        provider.ServerUri = url;
         if (!string.IsNullOrWhiteSpace(layerName))
             provider.ActiveLayerName = layerName;
         provider.CustomParameters.Add("format", "image/JPEG");
         // provider.CustomParameters.Add("srs", "EPSG:4326");
         var cs = (GeoMapCoordinateSystem)ctrl.CoordinateSystem;
         cs.Projection = new EPSG4326Projection();
-        provider.ResponseCapabilities += (sender, e) =>
-        {
-            if (string.IsNullOrWhiteSpace(layerName))
-                provider.ActiveLayerName = e.Layers[0].Name;
-        };
-        ctrl.GetImageLayer().DataProvider = provider;
-        //if (wmsType == EnumWmsType.ZKXT)//中科星图
-        //{
-        //    var provider = new WmsDataProvider();//地图瓦片提供者
-        //    provider.ServerUri = $"http://{wmsIp}/tilecache/service/wms";
-        //    if (!string.IsNullOrWhiteSpace(layerName))
-        //        provider.ActiveLayerName = layerName;
-        //    provider.CustomParameters.Add("format", "image/JPEG");
-        //    // provider.CustomParameters.Add("srs", "EPSG:4326");
-        //    var cs = (GeoMapCoordinateSystem)ctrl.CoordinateSystem;
-        //    cs.Projection = new EPSG4326Projection();
-        //    provider.ResponseCapabilities += (sender, e) =>
-        //    {
-        //        if (string.IsNullOrWhiteSpace(layerName))
-        //            provider.ActiveLayerName = e.Layers[0].Name;
-        //    };
-        //    ctrl.GetImageLayer().DataProvider = provider;
-        //}
-        //else//数据中心、路网
+        //provider.ResponseCapabilities += (sender, e) =>
         //{
-        //    var provider = new HttpMapDataProvider();
-        //    var tileSource = provider.TileSource as HttpTileSource;
-        //    tileSource.HttpServerAddr = wmsIp;
-        //    ctrl.GetImageLayer().DataProvider = provider;
-        //    ctrl.MinZoomLevel = 3;
-        //    ctrl.MaxZoomLevel = 20;
-        //}
-
+        //    if (string.IsNullOrWhiteSpace(layerName))
+        //        provider.ActiveLayerName = e.Layers[0].Name;
+        //};
+        ctrl.GetImageLayer().DataProvider = provider;
         return ctrl;
     }
 

+ 14 - 6
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -129,12 +129,20 @@ namespace XdCxRhDW.App.UserControl
             }
             else
             {
-                if (settings.WMSType == EnumWmsType.ZKXT)
-                    mapControl1.UseWMS(settings.ZKXT_Url, settings.ZKXT_LayerName);
-                else if (settings.WMSType == EnumWmsType.SJZX)
-                    mapControl1.UseWMTS(settings.SJZX_Url, settings.SJZX_LayerName);
-                else
-                    mapControl1.UseWMTS(settings.LW_Url, settings.LW_LayerName);
+                try
+                {
+                    if (settings.WMSType == EnumWmsType.ZKXT)
+                        mapControl1.UseWMS(settings.ZKXT_Url, settings.ZKXT_LayerName);
+                    else if (settings.WMSType == EnumWmsType.SJZX)
+                        mapControl1.UseWMTS(settings.SJZX_Url, settings.SJZX_LayerName);
+                    else
+                        mapControl1.UseWMTS(settings.LW_Url, settings.LW_LayerName);
+                }
+                catch (Exception ex)
+                {
+                    mapControl1.UseLocalDb();
+                    Serilog.Log.Error(ex,"MapControl使用WMS出现异常,强制使用本地地图");
+                }
             }
             gridView1.FocusedRowObjectChanged += GridView1_FocusedRowObjectChanged;
             gridView2.FocusedRowObjectChanged += GridView2_FocusedRowObjectChanged;

+ 39 - 68
XdCxRhDW.App/UserControl/CtrlSysSettings.cs

@@ -22,6 +22,7 @@ using XdCxRhDW.WebApi;
 using DevExpress.XtraPrinting;
 using XdCxRhDW.Entity;
 using DevExpress.XtraEditors.Controls;
+using System.Security.Policy;
 
 namespace XdCxRhDW.App.UserControl
 {
@@ -72,92 +73,62 @@ namespace XdCxRhDW.App.UserControl
             bool needStartHttpSvr = false;
             try
             {
+                if (!int.TryParse(txtHttpPort.Text, out int port))
+                {
+                    DxHelper.MsgBoxHelper.ShowError("Http端口错误!");
+                    return;
+                }
                 if (txtMapType.SelectedIndex != 0 && txtWMSType.EditValue == null)
                 {
-                    DxHelper.MsgBoxHelper.ShowInfo("请选择行政图类型!");
+                    DxHelper.MsgBoxHelper.ShowError("请选择行政图类型!");
                     return;
                 }
                 if (txtMapType.SelectedIndex != 0 && string.IsNullOrEmpty(txtLayer.Text))
                 {
-                    DxHelper.MsgBoxHelper.ShowInfo("请填写地图图层名称!");
+                    DxHelper.MsgBoxHelper.ShowError("请填写地图图层名称!");
                     return;
                 }
                 using (RHDWContext db = new RHDWContext())
                 {
                     var res = await db.SysSetings.FirstOrDefaultAsync();
-                    if (res == null)
+                    if (res == null) res = new SysSetings();
+                    res.HttpPort = port;
+                    res.XLDirectory = txtXLDirectory.Text;
+                    res.YDPZThreshold = string.IsNullOrWhiteSpace(txtYDPZThreshold.Text) ? 0 : Convert.ToInt32(txtYDPZThreshold.Text);
+                    res.MapType = txtMapType.SelectedIndex;
+                    if (txtMapType.SelectedIndex != 0)
                     {
-                        SysSetings resNull = new SysSetings();
-                        resNull.HttpPort = Convert.ToInt32(txtHttpPort.Text);
-                        resNull.XLDirectory = txtXLDirectory.Text;
-                        resNull.YDPZThreshold = string.IsNullOrWhiteSpace(txtYDPZThreshold.Text) ? 0 : Convert.ToInt32(txtYDPZThreshold.Text);
-                        resNull.MapType = txtMapType.SelectedIndex;
-                        //if (txtMapType.SelectedIndex == 0)
-                        //{
-                        //    resNull.WMSType = null;
-                        //    resNull.ZKXT_Url = null;
-                        //    resNull.ZKXT_LayerName = null;
-                        //    resNull.SJZX_Url = null;
-                        //    resNull.SJZX_LayerName = null;
-                        //    resNull.LW_Url = null;
-                        //    resNull.LW_LayerName = null;
-                        //}
-                        if (txtMapType.SelectedIndex != 0)
+                        res.WMSType = (EnumWmsType)txtWMSType.EditValue;
+                        Uri url = null;
+
+                        try
+                        {
+                            url = new Uri(txtUrl.Text);
+                        }
+                        catch
+                        {
+                            DxHelper.MsgBoxHelper.ShowError("URL格式错误!");
+                            return;
+                        }
+                        if (res.WMSType == EnumWmsType.ZKXT)
                         {
-                            resNull.WMSType = (EnumWmsType)txtWMSType.EditValue;
-                            if (resNull.WMSType == EnumWmsType.ZKXT)
-                            {
-                                resNull.ZKXT_Url = txtUrl.Text;
-                                resNull.ZKXT_LayerName = txtLayer.Text;
-                            }
-                           else if (resNull.WMSType == EnumWmsType.SJZX)
-                            {
-                                resNull.SJZX_Url = txtUrl.Text;
-                                resNull.SJZX_LayerName = txtLayer.Text;
-                            }
-                            else if (resNull.WMSType == EnumWmsType.LW)
-                            {
-                                resNull.LW_Url = txtUrl.Text;
-                                resNull.LW_LayerName = txtLayer.Text;
-                            }
+                            res.ZKXT_Url = url.ToString();
+                            res.ZKXT_LayerName = txtLayer.Text;
                         }
+                        else if (res.WMSType == EnumWmsType.SJZX)
+                        {
 
-                        db.SysSetings.Add(resNull);
-                        needStartHttpSvr = true;
-                    }
-                    else
-                    {
-                        needStartHttpSvr = res.HttpPort != Convert.ToInt32(txtHttpPort.Text);
-                        res.HttpPort = Convert.ToInt32(txtHttpPort.Text);
-                        res.XLDirectory = txtXLDirectory.Text;
-                        res.YDPZThreshold = string.IsNullOrWhiteSpace(txtYDPZThreshold.Text) ? 0 : Convert.ToInt32(txtYDPZThreshold.Text);
-                        res.MapType = txtMapType.SelectedIndex;
-                        //if (txtMapType.SelectedIndex == 0)
-                        //{
-                        //    res.WMSType = EnumWmsType.LW;
-                        //    res.LayerName = null;
-                        //}
-                        if (txtMapType.SelectedIndex != 0)
+                            res.SJZX_Url = url.ToString();
+                            res.SJZX_LayerName = txtLayer.Text;
+                        }
+                        else if (res.WMSType == EnumWmsType.LW)
                         {
-                            res.WMSType = (EnumWmsType)txtWMSType.EditValue;
-                            if (res.WMSType == EnumWmsType.ZKXT)
-                            {
-                                res.ZKXT_Url = txtUrl.Text;
-                                res.ZKXT_LayerName = txtLayer.Text;
-                            }
-                            else if (res.WMSType == EnumWmsType.SJZX)
-                            {
-                                res.SJZX_Url = txtUrl.Text;
-                                res.SJZX_LayerName = txtLayer.Text;
-                            }
-                            else if (res.WMSType == EnumWmsType.LW)
-                            {
-                                res.LW_Url = txtUrl.Text;
-                                res.LW_LayerName = txtLayer.Text;
-                            }
+                            res.LW_Url = url.ToString();
+                            res.LW_LayerName = txtLayer.Text;
                         }
                     }
-
+                    db.SysSetings.AddOrUpdate(res);
+                    needStartHttpSvr = true;
                     await db.SaveChangesAsync();
                     DxHelper.MsgBoxHelper.ShowInfo("配置信息保存成功!");
                     Messenger.Defalut.Pub("系统配置改变", await db.SysSetings.FirstOrDefaultAsync());

+ 2 - 0
XdCxRhDW.X2D1TaskServer54/Controllers/HistoryTaskProcessingController.cs

@@ -38,6 +38,7 @@ namespace XdCxRhDW.X2D1TaskServer54.Controllers
             try
             {
                 LogHelper.Info($"接收到历史任务编号:{dto.ID}");
+                _service.StartAsync();
                 return Success();
             }
             catch (Exception ex)
@@ -60,6 +61,7 @@ namespace XdCxRhDW.X2D1TaskServer54.Controllers
             {
 
                 LogHelper.Info($"接收停止历史任务编号:{dto.ID}");
+                _service.Stop();
                 return Success();
             }
             catch (Exception ex)

+ 74 - 1
XdCxRhDW.X2D1TaskServer54/Service/HistoryTaskService.cs

@@ -1,14 +1,87 @@
-using System;
+using DevExpress.XtraPrinting.Native.Properties;
+using Google.Protobuf.WellKnownTypes;
+using System;
 using System.Collections.Generic;
+using System.Configuration;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using XdCxRhDW.Dto;
 
 namespace XdCxRhDW.X2D1TaskServer54.Service
 {
     //业务逻辑处理类
     public class HistoryTaskService
     {
+        public readonly string baseUrl;
+        private bool stopping = false;
+        public HistoryTaskService()
+        {
+            var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
+            if (posPlatformAddr.EndsWith("/"))
+                this.baseUrl = posPlatformAddr + "api/";
+            else
+                this.baseUrl = posPlatformAddr + "/api/";
+        }
+        public void StartAsync(HistoryTaskProcessingDto taskInfo)
+        {
+            Task.Run(async () =>
+            {
+                //点击定位平台右上角查看接口可以在浏览器中查看平台提供的所有接口详细信息
+                while (!stopping)
+                {
+                    try
+                    {
+                        #region 第1步,上传检测参估需要的数据文件执行检测
+                        string mainFile = await HttpHelper.UploadFileAsync("E:\\1.dat", baseUrl + "File/UploadFileAsync");//主星文件
+                        string adjaFile = await HttpHelper.UploadFileAsync("E:\\2.dat", baseUrl + "File/UploadFileAsync");//邻星文件
+                        string cdbFile = await HttpHelper.UploadFileAsync("E:\\2.dat", baseUrl + "File/UploadFileAsync");//超短文件
+                        string url = baseUrl + "POST/Api/DetectCg/DetectCalc";//信号检测
+                        var httpResp1 = await HttpHelper.PostRequestAsync<List<DetectResDto>>(url, new DetectDto()
+                        {
+                            file1 = mainFile,//用到文件的地方必须使用先上传后返回的文件
+                            fsHz = 96000,
+                            dmcType = DmcType.DAMA
+                        });
+                        if (httpResp1.code == 0)
+                        {
+                            LogHelper.Error(httpResp1.msg);
+                        }
+                        var slots = httpResp1.data;
+                        #endregion
 
+                        #region 第2步,多时隙参估
+                        url = baseUrl + "POST/Api/DetectCg/CpuCgMultiCalc";//CPU参估(多个时隙)
+                        var httpResp2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(url, new CpuCgMultiDto());
+                        if (httpResp2.code == 0)
+                        {
+                            LogHelper.Error(httpResp2.msg);
+                        }
+                        //httpResp2.data
+                        #endregion
+
+                        #region 第3步,每个时隙调用定位算法
+                        url = baseUrl + "Pos/PosX2D1NoXlNoParAsync";//两星一地无参无星历定位
+                        foreach (var slot in slots)
+                        {
+                            var httpResp3 = await HttpHelper.PostRequestAsync<PosResDto>(url, new X2D1NoXlNoParlPosDto());
+                            if (httpResp3.code == 0)
+                            {
+                                LogHelper.Error(httpResp3.msg);
+                            }
+                        }
+                        #endregion
+                    }
+                    catch (Exception ex)
+                    {
+                        LogHelper.Error("任务执行出错", ex);
+                    }
+                }
+            });
+        }
+        public void Stop()
+        {
+            stopping = true;
+        }
     }
 }