diff --git a/docs/研发/v1.0任务分解.xlsx b/docs/研发/v1.0任务分解.xlsx new file mode 100644 index 00000000..41b55340 Binary files /dev/null and b/docs/研发/v1.0任务分解.xlsx differ diff --git a/docs/研发/任务分解.xlsx b/docs/研发/任务分解.xlsx deleted file mode 100644 index 8cc2bc73..00000000 Binary files a/docs/研发/任务分解.xlsx and /dev/null differ diff --git a/projects/IoT.Shared/Application/Models/Methods.cs b/projects/IoT.Shared/Application/Models/Methods.cs index c403d24d..9fc6be39 100644 --- a/projects/IoT.Shared/Application/Models/Methods.cs +++ b/projects/IoT.Shared/Application/Models/Methods.cs @@ -10,9 +10,12 @@ public const string ApiCallback = nameof(ApiCallback); public const string UpdateNodeResponse = nameof(UpdateNodeResponse); //上传节点 - public const string UpdateProductResponse = nameof(UpdateProductResponse);//上传产品、接口和参数 + public const string UpdateProductResponse = nameof(UpdateProductResponse);//上传产品 + public const string UpdateApiResponse = nameof(UpdateApiResponse);//上传接口 + public const string UpdateParameterResponse = nameof(UpdateParameterResponse);//上传参数 public const string UpdateDeviceIdListResponse = nameof(UpdateDeviceIdListResponse);//上传节点设备Id列表 - public const string UpdateDeviceResponse = nameof(UpdateDeviceResponse);//上传节点设备和数据 + public const string UpdateDeviceResponse = nameof(UpdateDeviceResponse);//上传设备 + public const string UpdateDataResponse = nameof(UpdateDataResponse);//上传数据 public const string UpdateCommandIdListResponse = nameof(UpdateCommandIdListResponse);//上传命令Id列表 public const string UpdateCommandResponse = nameof(UpdateCommandResponse);//上传命令 diff --git a/projects/IoT.Shared/Services/DataService.cs b/projects/IoT.Shared/Services/DataService.cs index 867bd94e..a59bcf60 100644 --- a/projects/IoT.Shared/Services/DataService.cs +++ b/projects/IoT.Shared/Services/DataService.cs @@ -1,10 +1,8 @@ using Application.Domain.Entities; -using Application.Models; using Infrastructure.Application; using Infrastructure.Data; using Infrastructure.Domain; using Infrastructure.Extensions; -using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; @@ -47,52 +45,6 @@ namespace IoT.Shared.Services this._iotTiggerRepo = iotTiggerRepo; } - #region 服务端响应节点上传数据 - - public void UpdateProduct(string message) - { - using var scope = this._services.CreateScope(); - var repo = scope.ServiceProvider.GetService>(); - var model = message.FromJson(); - var entity = repo.Table().Include(o => o.Apis).ThenInclude(o => o.Parameters).FirstOrDefault(o => o.Id == model.Id); - if (entity == null) - { - repo.Add(model); - repo.SaveChanges(); - } - } - - public void UpdateDevice(string message) - { - var model = message.FromJson(); - using var scope = this._services.CreateScope(); - var repo = scope.ServiceProvider.GetService>(); - var device = repo.Table().Include(o => o.Data).FirstOrDefault(o => o.Id == model.Id); - if (device == null) - { - device = new Device - { - Id = model.Id, - ProductId = model.ProductId, - }; - repo.Add(device); - } - device.From(model); - foreach (var data in model.Data) - { - var data2 = device.Data.FirstOrDefault(o => o.Id == data.Id); - if (data2 == null) - { - data2 = new Data - { - Id = data.Id, - }; - } - data2.From(data); - } - repo.SaveChanges(); - } - public void UpdateList(string message, Expression> predicate) where T : BaseEntity { using var scope = this._services.CreateScope(); @@ -106,8 +58,6 @@ namespace IoT.Shared.Services repo.SaveChanges(); } - #endregion 服务端响应节点上传数据 - #region private public void Update(string message) where T : BaseEntity @@ -156,14 +106,5 @@ namespace IoT.Shared.Services } #endregion private - - #region 后台编辑 - - public void EditCommand(EditCommandModel model) - { - throw new NotImplementedException(); - } - - #endregion 后台编辑 } } \ No newline at end of file diff --git a/projects/IoTCenter/Services/IoTCenterHub.cs b/projects/IoTCenter/Services/IoTCenterHub.cs index c0baa21a..e779efb6 100644 --- a/projects/IoTCenter/Services/IoTCenterHub.cs +++ b/projects/IoTCenter/Services/IoTCenterHub.cs @@ -71,9 +71,17 @@ namespace IoTCenter.Services { this._dataService.Update(message); } - else if (method == Methods.UpdateProductResponse)//接收产品、接口和参数 + else if (method == Methods.UpdateProductResponse)//接收产品 { - this._dataService.UpdateProduct(message); + this._dataService.Update(message); + } + else if (method == Methods.UpdateApiResponse)//接收接口 + { + this._dataService.Update(message); + } + else if (method == Methods.UpdateParameterResponse)//接收参数 + { + this._dataService.Update(message); } else if (method == Methods.UpdateDeviceIdListResponse)//接收设备Id列表 { @@ -81,7 +89,11 @@ namespace IoTCenter.Services } else if (method == Methods.UpdateDeviceResponse)//接收设备和数据 { - this._dataService.UpdateDevice(message); + this._dataService.Update(message); + } + else if (method == Methods.UpdateDataResponse)//接收设备和数据 + { + this._dataService.Update(message); } else if (method == Methods.UpdateCommandIdListResponse)//接收命令Id列表 { diff --git a/projects/IoTCenter/wwwroot/node.html b/projects/IoTCenter/wwwroot/node.html index bb5e8e90..cf05df57 100644 --- a/projects/IoTCenter/wwwroot/node.html +++ b/projects/IoTCenter/wwwroot/node.html @@ -884,7 +884,9 @@ console.log($(this).html()); if (!$(this).hasClass('Stop')) { var number = $('#camera').val(); - ajax('/App/Exec', { number: number, method: '/Onvif/Stop' }, 'post'); + setTimeout(function () { + ajax('/App/Exec', { number: number, method: '/Onvif/Stop' }, 'post'); + }, 500); } return false; }); diff --git a/projects/IoTNode/Services/IoTNodeClient.cs b/projects/IoTNode/Services/IoTNodeClient.cs index 6666ea93..8cf3b9bb 100644 --- a/projects/IoTNode/Services/IoTNodeClient.cs +++ b/projects/IoTNode/Services/IoTNodeClient.cs @@ -184,22 +184,24 @@ namespace IoT.Shared.Services public void OnConnected() { Console.WriteLine($"{_notifyHost} OnConnected"); + //上传节点 this.UpdateEntityIdList(null, Methods.UpdateNodeResponse); //上传产品 - this.UpdateEntityIdList(null, Methods.UpdateProductResponse, o => o.Include(o => o.Apis).ThenInclude(o => o.Parameters)); + this.UpdateEntityIdList(null, Methods.UpdateProductResponse); - //上传设备Id列表、设备和数据 - this.UpdateEntityIdList(Methods.UpdateDeviceIdListResponse, null); - using var scope = this.applicationServices.CreateScope(); - var repo = scope.ServiceProvider.GetService>(); - var devices = repo.ReadOnlyTable().ToList(); - foreach (var device in devices) - { - device.Data = device.Data.Where(o => !o.Hidden).ToList(); - this.SendToServer(Methods.UpdateDeviceResponse, device); - } + //上传接口 + this.UpdateEntityIdList(null, Methods.UpdateApiResponse); + + //上传参数 + this.UpdateEntityIdList(null, Methods.UpdateParameterResponse); + + //上传设备Id列表、设备 + this.UpdateEntityIdList(Methods.UpdateDeviceIdListResponse, Methods.UpdateDeviceResponse); + + //上传数据 + this.UpdateEntityIdList(null, Methods.UpdateDataResponse, null, o => !o.Hidden); //上传命令Id列表、命令 this.UpdateEntityIdList(Methods.UpdateCommandIdListResponse, Methods.UpdateCommandResponse);