diff --git a/docs/项目/西宁市城中区/【20201203】靳发全-人事档案表格格式2.xlsx b/docs/项目/西宁市城中区/【20201203】靳发全-人事档案表格格式2.xlsx new file mode 100644 index 00000000..3dfe996b Binary files /dev/null and b/docs/项目/西宁市城中区/【20201203】靳发全-人事档案表格格式2.xlsx differ diff --git a/docs/项目/西宁市城中区/界面原型.rp b/docs/项目/西宁市城中区/界面原型.rp new file mode 100644 index 00000000..1f238a64 Binary files /dev/null and b/docs/项目/西宁市城中区/界面原型.rp differ diff --git a/projects/Application/Domain/IoTCenter/IoTData.cs b/projects/Application/Domain/IoTCenter/IoTData.cs index f2f66283..52378d74 100644 --- a/projects/Application/Domain/IoTCenter/IoTData.cs +++ b/projects/Application/Domain/IoTCenter/IoTData.cs @@ -29,8 +29,8 @@ namespace Application.Domain.Entities [Display(Name = "数值类型")] public IoTValueType ValueType { get; set; } - [Display(Name = "枚举定义")] - public String EnumValues { get; set; } + [Display(Name = "对象模式")] + public string ValueSchema { get; set; } [Display(Name = "单位")] public string Unit { get; set; } @@ -52,18 +52,6 @@ namespace Application.Domain.Entities public List IoTTiggers { get; set; } = new List(); - public Dictionary GetEnumValues() - { - return JsonSerializer.Deserialize>(this.EnumValues); - } - - public void SetEnumValues(Dictionary values) - { - this.EnumValues = JsonSerializer.Serialize(values,new JsonSerializerOptions { - Encoder= JavaScriptEncoder.Create(UnicodeRanges.All) - }); - } - public dynamic GetValue() { if (this.ValueType == IoTValueType.Int) diff --git a/projects/Infrastructure/Infrastructure.csproj b/projects/Infrastructure/Infrastructure.csproj index 62911154..030a1665 100644 --- a/projects/Infrastructure/Infrastructure.csproj +++ b/projects/Infrastructure/Infrastructure.csproj @@ -20,6 +20,7 @@ + diff --git a/projects/Infrastructure/Web/Mvc/CrudController.cs b/projects/Infrastructure/Web/Mvc/CrudController.cs index 7f731372..dcc3033d 100644 --- a/projects/Infrastructure/Web/Mvc/CrudController.cs +++ b/projects/Infrastructure/Web/Mvc/CrudController.cs @@ -260,6 +260,7 @@ namespace Infrastructure.Web.Mvc return query; } + [ApiExplorerSettings(IgnoreApi = true)] public virtual void EntityToModel(TEntity entity, TEditModel model) { diff --git a/projects/IoT.Shared/Application/Models/EditIoTDataModel.cs b/projects/IoT.Shared/Application/Models/EditIoTDataModel.cs index 46a4ddce..caadc2aa 100644 --- a/projects/IoT.Shared/Application/Models/EditIoTDataModel.cs +++ b/projects/IoT.Shared/Application/Models/EditIoTDataModel.cs @@ -3,6 +3,7 @@ using Application.Domain.Entities; using IoT.Shared.Areas.IoTCenter.Controlls; using System; using System.ComponentModel.DataAnnotations; +using System.ComponentModel; namespace IoT.Shared.Application.Models { @@ -16,7 +17,7 @@ namespace IoT.Shared.Application.Models [Display(Name = "网关")] [ReadOnlyForEdit] - [SelectList(nameof(DeviceId),nameof(AjaxBaseController.GetIoTDevice))] + [SelectList(nameof(DeviceId), nameof(AjaxBaseController.GetIoTDevice))] public Guid? IoTGatewayId { get; set; } [Display(Name = "设备")] @@ -47,6 +48,11 @@ namespace IoT.Shared.Application.Models [Required(ErrorMessage = nameof(RequiredAttribute))] public IoTValueType? ValueType { get; set; } + [Display(Name = "对象模式")] + [Description("描述枚举、对象和数组的类型定义")] + public string ValueSchema { get; set; } + + [Display(Name = "单位")] [ReadOnlyForEdit] public string Unit { get; set; } diff --git a/projects/IoTNode/Services/OpenApiService.cs b/projects/IoT.Shared/Services/OpenApiService.cs similarity index 100% rename from projects/IoTNode/Services/OpenApiService.cs rename to projects/IoT.Shared/Services/OpenApiService.cs diff --git a/projects/IoTNode/DeviceServices/BaseDeviceService.cs b/projects/IoTNode/DeviceServices/BaseDeviceService.cs index 585a4053..fe51a6f6 100644 --- a/projects/IoTNode/DeviceServices/BaseDeviceService.cs +++ b/projects/IoTNode/DeviceServices/BaseDeviceService.cs @@ -12,6 +12,8 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using System.Net.Http; +using Microsoft.Extensions.Logging; namespace IoTNode.DeviceServices { @@ -88,8 +90,9 @@ namespace IoTNode.DeviceServices } public IoTProduct UpdateProduct(string productName, string productNumber, string path, string productIcon) - { + { var scope = _applicationServices.CreateScope(); + // var productRepo = scope.ServiceProvider.GetService>(); var product = productRepo.ReadOnlyTable().FirstOrDefault(o => o.Number == productNumber); if (product == null) @@ -106,11 +109,29 @@ namespace IoTNode.DeviceServices { var iotNodeClient = scope.ServiceProvider.GetService(); product.ApiJson = iotNodeClient.GetApiJson(path); - OpenApiService.UpdateApi(product); + //OpenApiService.UpdateApi(product); } productRepo.Add(product); productRepo.SaveChanges(); } + // + try + { + var settingRepo = scope.ServiceProvider.GetRequiredService(); + var factory = scope.ServiceProvider.GetRequiredService(); + var notifyHost = settingRepo.GetValue("notify:host"); + var url = $"{notifyHost}/Server/HasProduct/{productNumber}"; + var httpClient = factory.CreateClient(); + var response = httpClient.GetStringAsync(url).Result.FromJson(); + if (!response) + { + scope.ServiceProvider.GetRequiredService().ClientToServer(Methods.UpdateProductResponse, product, null); + } + } + catch (Exception ex) + { + scope.ServiceProvider.GetRequiredService>().LogError(ex.ToString()); + } return product; } } diff --git a/projects/IoTNode/DeviceServices/SerialPort/Controllers/SerialPortController.cs b/projects/IoTNode/DeviceServices/SerialPort/Controllers/SerialPortController.cs index a9543ca8..31af349a 100644 --- a/projects/IoTNode/DeviceServices/SerialPort/Controllers/SerialPortController.cs +++ b/projects/IoTNode/DeviceServices/SerialPort/Controllers/SerialPortController.cs @@ -23,7 +23,7 @@ namespace IoTNode.Controllers { return this.AsyncAction(() => { - this._deviceService.Exec(number, name); + this._deviceService.SendMessage(number, name); }); } diff --git a/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs b/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs index bc47b7c9..faa926b7 100644 --- a/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs +++ b/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; +using NJsonSchema; namespace IoTNode.DeviceServices.SerialPortManager { @@ -27,7 +28,7 @@ namespace IoTNode.DeviceServices.SerialPortManager this.Notify(); } - public void Exec(string deviceNumber, string name) + public void SendMessage(string deviceNumber, string name) { using var scope = _applicationServices.CreateScope(); var repo = scope.ServiceProvider.GetService>(); @@ -107,8 +108,32 @@ namespace IoTNode.DeviceServices.SerialPortManager }; repo.Add(device); repo.SaveChanges(); - var buttons = new List() { new SPCommandModel { Name = "测试", PortName = "/dev/ttyS0", BaudRate = 9600, Parity = 0, DataBits = 8, StopBits = 1, Message = "0123456789ABCDEF" } }.ToJson(true); - this.UpdateData(repo, device, device.CreateData("Buttons", buttons, IoTValueType.String, "指令", timestamp: DateTimeOffset.Now.ToUnixTimeMilliseconds())); + var buttons = new List() { + new SPCommandModel { + Name = "测试", + PortName = "/dev/ttyS0", + BaudRate = 9600, + Parity = 0, + DataBits = 8, + StopBits = 1, + Message = "0123456789ABCDEF" + } + }.ToJson(true); + var data = device.Data.FirstOrDefault(o => o.Key == "Buttons"); + if(data==null) + { + data = new IoTData { + Key="Buttons", + Name="指令", + DataType= IoTDataType.Data, + ValueType= IoTValueType.Array, + ValueSchema= JsonSchema.FromType( typeof(SPCommandModel)).ToJson(), + Value=buttons.ToJson(true), + Timestamp= DateTimeOffset.Now.ToUnixTimeMilliseconds() + }; + device.Data.Add(data); + } + repo.SaveChanges(); } } } diff --git a/projects/IoTNode/Services/IoTNodeClient.cs b/projects/IoTNode/Services/IoTNodeClient.cs index bc3c02ed..e4c78239 100644 --- a/projects/IoTNode/Services/IoTNodeClient.cs +++ b/projects/IoTNode/Services/IoTNodeClient.cs @@ -219,11 +219,11 @@ namespace IoT.Shared.Services //上传产品 this.UpdateEntityIdList(null, Methods.UpdateProductResponse); - //上传接口 - this.UpdateEntityIdList(null, Methods.UpdateApiResponse); + ////上传接口 + //this.UpdateEntityIdList(null, Methods.UpdateApiResponse); - //上传参数 - this.UpdateEntityIdList(null, Methods.UpdateParameterResponse); + ////上传参数 + //this.UpdateEntityIdList(null, Methods.UpdateParameterResponse); //上传设备Id列表、设备 this.UpdateEntityIdList(Methods.UpdateDeviceIdListResponse, Methods.UpdateDeviceResponse); @@ -447,7 +447,7 @@ namespace IoT.Shared.Services // return url; //} - private void UpdateEntityIdList(string updateIdListMethod, string updateEntityMethod, Func, IQueryable> include = null, Func predicate = null) where T : BaseEntity + public void UpdateEntityIdList(string updateIdListMethod, string updateEntityMethod, Func, IQueryable> include = null, Func predicate = null) where T : BaseEntity { using var scope = this._applicationServices.CreateScope(); var repo = scope.ServiceProvider.GetService>(); diff --git a/projects/IoTNode/Startup.cs b/projects/IoTNode/Startup.cs index a848f74a..b1142eca 100644 --- a/projects/IoTNode/Startup.cs +++ b/projects/IoTNode/Startup.cs @@ -46,9 +46,9 @@ namespace IoTNode if (Env.IsDevelopment()) { services.AddHostedService(o => o.GetService()); - services.AddHostedService(o => o.GetService()); - services.AddHostedService(o => o.GetService()); - services.AddHostedService(o => o.GetService()); + //services.AddHostedService(o => o.GetService()); + //services.AddHostedService(o => o.GetService()); + //services.AddHostedService(o => o.GetService()); } else { diff --git a/projects/IoTNode/db.sql b/projects/IoTNode/db.sql index f3c564c9..b7b0f192 100644 --- a/projects/IoTNode/db.sql +++ b/projects/IoTNode/db.sql @@ -90,7 +90,7 @@ CREATE TABLE "iot_IoTData" ( "Name" TEXT NULL, "DataType" INTEGER NOT NULL, "ValueType" INTEGER NOT NULL, - "EnumValues" TEXT NULL, + "ValueSchema" TEXT NULL, "Unit" TEXT NULL, "Description" TEXT NULL, "Timestamp" INTEGER NOT NULL, diff --git a/projects/Platform/Controllers/ServerController.cs b/projects/Platform/Controllers/ServerController.cs new file mode 100644 index 00000000..f62ba499 --- /dev/null +++ b/projects/Platform/Controllers/ServerController.cs @@ -0,0 +1,34 @@ +using Application.Domain.Entities; +using Infrastructure.Data; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Linq; + +namespace Platform.Controllers +{ + /// + /// 作为平台服务器,响应网关节点的HTTP请求 + /// + public class ServerController : ControllerBase + { + private readonly IServiceProvider _services; + + public ServerController(IServiceProvider services) + { + this._services = services; + } + + /// + /// 根据编号查询设备是否存在 + /// + /// + /// + public bool HasProduct(string number) + { + using var scope = this._services.CreateScope(); + var repo = scope.ServiceProvider.GetRequiredService>(); + return repo.ReadOnlyTable().Any(o => o.Number == number); + } + } +} diff --git a/projects/Platform/Services/IoTCenterEventHandler.cs b/projects/Platform/Services/IoTCenterEventHandler.cs index d07b4af8..dd4f1929 100644 --- a/projects/Platform/Services/IoTCenterEventHandler.cs +++ b/projects/Platform/Services/IoTCenterEventHandler.cs @@ -20,6 +20,7 @@ using System.Threading; using System.Threading.Tasks; using Vibrant.InfluxDB.Client; using Vibrant.InfluxDB.Client.Rows; +using IoT.Shared.Services; namespace Platform.Services { @@ -34,8 +35,8 @@ namespace Platform.Services IEventHander>, IEventHander>, IEventHander>, - IEventHander>, - IEventHander>, + //IEventHander>, + //IEventHander>, IEventHander>, IEventHander>, IEventHander>, @@ -49,6 +50,7 @@ namespace Platform.Services private readonly IConfiguration _cfg; private readonly ISettingService _settingService; private readonly ILogger _logger; + private readonly IRepository _productrepo; private readonly IRepository _nodeRepo; private readonly IRepository _organRepo; private readonly IRepository _buildingIoTGatewayRepo; @@ -62,6 +64,7 @@ namespace Platform.Services public IoTCenterEventHandler(IConfiguration cfg, ISettingService settingService, ILogger logger, + IRepository productRepo, IRepository nodeRepo, IRepository organRepo, IRepository buildingIoTGatewayRepo, @@ -75,6 +78,7 @@ namespace Platform.Services this._cfg = cfg; this._settingService = settingService; this._logger = logger; + this._productrepo = productRepo; this._nodeRepo = nodeRepo; this._organRepo = organRepo; this._buildingIoTGatewayRepo = buildingIoTGatewayRepo; @@ -135,18 +139,26 @@ namespace Platform.Services public void Handle(EntityInsertedEvent message) { + var product = this._productrepo.Table() + .Include(o=>o.IoTApis) + .ThenInclude(o=>o.IoTParameters) + .FirstOrDefault(o => o.Number == message.Data.Number); + if(product!=null) + { + OpenApiService.UpdateApi(product); + } this.Notify(message); } - public void Handle(EntityUpdatedEvent message) - { - this.Notify(message); - } + //public void Handle(EntityUpdatedEvent message) + //{ + // this.Notify(message); + //} - public void Handle(EntityDeletedEvent message) - { - this.Notify(message); - } + //public void Handle(EntityDeletedEvent message) + //{ + // this.Notify(message); + //} #endregion Product diff --git a/projects/Platform/db.sql b/projects/Platform/db.sql index 09d7a254..6b194a94 100644 --- a/projects/Platform/db.sql +++ b/projects/Platform/db.sql @@ -1,589 +1,618 @@ -CREATE TABLE "iot_Area" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Area" PRIMARY KEY, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_Area_iot_Area_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_Area" ("Id") ON DELETE RESTRICT +CREATE TABLE `iot_Area` ( + `Id` char(36) NOT NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_Area` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Area_iot_Area_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_Area` (`Id`) ON DELETE RESTRICT ); -CREATE TABLE "iot_IoTProductCategory" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTProductCategory" PRIMARY KEY, - "Image" TEXT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_IoTProductCategory_iot_IoTProductCategory_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_IoTProductCategory" ("Id") ON DELETE RESTRICT +CREATE TABLE `iot_IoTProductCategory` ( + `Id` char(36) NOT NULL, + `Image` longtext CHARACTER SET utf8mb4 NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_IoTProductCategory` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTProductCategory_iot_IoTProductCategory_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_IoTProductCategory` (`Id`) ON DELETE RESTRICT ); -CREATE TABLE "iot_LiveRecord" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_LiveRecord" PRIMARY KEY, - "DeviceNumber" TEXT NOT NULL, - "DeviceName" TEXT NULL, - "Name" TEXT NULL, - "Value" TEXT NULL, - "IsDeleted" TEXT NULL +CREATE TABLE `iot_LiveRecord` ( + `Id` char(36) NOT NULL, + `DeviceNumber` longtext CHARACTER SET utf8mb4 NOT NULL, + `DeviceName` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Value` longtext CHARACTER SET utf8mb4 NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_LiveRecord` PRIMARY KEY (`Id`) ); -CREATE TABLE "iot_Setting" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Setting" PRIMARY KEY, - "Name" TEXT NOT NULL, - "Value" TEXT NULL, - "Type" INTEGER NOT NULL, - "IsDeleted" TEXT NULL +CREATE TABLE `iot_Setting` ( + `Id` char(36) NOT NULL, + `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `Value` longtext CHARACTER SET utf8mb4 NULL, + `Type` int NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_Setting` PRIMARY KEY (`Id`) ); -CREATE TABLE "iot_Site" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Site" PRIMARY KEY, - "Name" TEXT NOT NULL, - "Icon" TEXT NULL, - "Description" TEXT NULL, - "Key" TEXT NULL, - "Home" TEXT NULL, - "Login" TEXT NULL, - "Logout" TEXT NULL, - "Disabled" INTEGER NOT NULL, - "DisplayOrder" INTEGER NOT NULL, - "IsDeleted" TEXT NULL +CREATE TABLE `iot_Site` ( + `Id` char(36) NOT NULL, + `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `Icon` longtext CHARACTER SET utf8mb4 NULL, + `Description` longtext CHARACTER SET utf8mb4 NULL, + `Key` longtext CHARACTER SET utf8mb4 NULL, + `Home` longtext CHARACTER SET utf8mb4 NULL, + `Login` longtext CHARACTER SET utf8mb4 NULL, + `Logout` longtext CHARACTER SET utf8mb4 NULL, + `Disabled` tinyint(1) NOT NULL, + `DisplayOrder` int NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_Site` PRIMARY KEY (`Id`) ); -CREATE TABLE "iot_User" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_User" PRIMARY KEY, - "UserName" TEXT NOT NULL, - "SecurityStamp" TEXT NULL, - "PasswordHash" TEXT NULL, - "PasswordConfirmed" INTEGER NOT NULL, - "Email" TEXT NULL, - "EmailConfirmed" INTEGER NOT NULL, - "PhoneNumber" TEXT NULL, - "PhoneNumberConfirmed" INTEGER NOT NULL, - "RealName" TEXT NULL, - "IdentityNumber" TEXT NULL, - "IdentityConfirmed" INTEGER NOT NULL, - "NickName" TEXT NULL, - "Avatar" TEXT NULL, - "Sex" INTEGER NULL, - "Birthday" TEXT NULL, - "LockoutEnabled" INTEGER NOT NULL, - "AccessFailedCount" INTEGER NOT NULL, - "LockoutEnd" TEXT NULL, - "RowVersion" TEXT NULL, - "IsDeleted" TEXT NULL +CREATE TABLE `iot_User` ( + `Id` char(36) NOT NULL, + `UserName` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `SecurityStamp` longtext CHARACTER SET utf8mb4 NULL, + `PasswordHash` longtext CHARACTER SET utf8mb4 NULL, + `PasswordConfirmed` tinyint(1) NOT NULL, + `Email` varchar(255) CHARACTER SET utf8mb4 NULL, + `EmailConfirmed` tinyint(1) NOT NULL, + `PhoneNumber` varchar(255) CHARACTER SET utf8mb4 NULL, + `PhoneNumberConfirmed` tinyint(1) NOT NULL, + `RealName` longtext CHARACTER SET utf8mb4 NULL, + `IdentityNumber` longtext CHARACTER SET utf8mb4 NULL, + `IdentityConfirmed` tinyint(1) NOT NULL, + `NickName` longtext CHARACTER SET utf8mb4 NULL, + `Avatar` longtext CHARACTER SET utf8mb4 NULL, + `Sex` int NULL, + `Birthday` datetime(6) NULL, + `LockoutEnabled` tinyint(1) NOT NULL, + `AccessFailedCount` int NOT NULL, + `LockoutEnd` datetime(6) NULL, + `RowVersion` longtext CHARACTER SET utf8mb4 NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_User` PRIMARY KEY (`Id`) ); -CREATE TABLE "iot_Organ" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Organ" PRIMARY KEY, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "Image" TEXT NULL, - "Description" TEXT NULL, - "AreaId" TEXT NULL, - "IsReadOnly" INTEGER NOT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_Organ_iot_Area_AreaId" FOREIGN KEY ("AreaId") REFERENCES "iot_Area" ("Id") ON DELETE SET NULL, - CONSTRAINT "FK_iot_Organ_iot_Organ_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_Organ" ("Id") ON DELETE RESTRICT +CREATE TABLE `iot_Organ` ( + `Id` char(36) NOT NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `Image` longtext CHARACTER SET utf8mb4 NULL, + `Description` longtext CHARACTER SET utf8mb4 NULL, + `AreaId` char(36) NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` varchar(255) CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_Organ` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Organ_iot_Area_AreaId` FOREIGN KEY (`AreaId`) REFERENCES `iot_Area` (`Id`) ON DELETE SET NULL, + CONSTRAINT `FK_iot_Organ_iot_Organ_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_Organ` (`Id`) ON DELETE RESTRICT ); -CREATE TABLE "iot_IoTProduct" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTProduct" PRIMARY KEY, - "Name" TEXT NULL, - "Number" TEXT NOT NULL, - "Image" TEXT NULL, - "Path" TEXT NULL, - "ApiJson" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "IoTProductCategoryId" TEXT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTProduct_iot_IoTProductCategory_IoTProductCategoryId" FOREIGN KEY ("IoTProductCategoryId") REFERENCES "iot_IoTProductCategory" ("Id") ON DELETE SET NULL +CREATE TABLE `iot_IoTProduct` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `Image` longtext CHARACTER SET utf8mb4 NULL, + `Path` longtext CHARACTER SET utf8mb4 NULL, + `ApiJson` longtext CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `IoTProductCategoryId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTProduct` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTProduct_iot_IoTProductCategory_IoTProductCategoryId` FOREIGN KEY (`IoTProductCategoryId`) REFERENCES `iot_IoTProductCategory` (`Id`) ON DELETE SET NULL ); -CREATE TABLE "iot_Building" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Building" PRIMARY KEY, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "Image" TEXT NULL, - "Description" TEXT NULL, - "OrganId" TEXT NOT NULL, - "AreaId" TEXT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_Building_iot_Area_AreaId" FOREIGN KEY ("AreaId") REFERENCES "iot_Area" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_Building_iot_Building_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_Building" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_Building_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_Building` ( + `Id` char(36) NOT NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `Image` longtext CHARACTER SET utf8mb4 NULL, + `Description` longtext CHARACTER SET utf8mb4 NULL, + `OrganId` char(36) NOT NULL, + `AreaId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_Building` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Building_iot_Area_AreaId` FOREIGN KEY (`AreaId`) REFERENCES `iot_Area` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_Building_iot_Building_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_Building` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_Building_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_Department" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Department" PRIMARY KEY, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "OrganId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_Department_iot_Department_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_Department" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_Department_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_Department` ( + `Id` char(36) NOT NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `OrganId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_Department` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Department_iot_Department_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_Department` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_Department_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_OrganRole" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_OrganRole" PRIMARY KEY, - "Name" TEXT NOT NULL, - "Number" TEXT NOT NULL, - "IsReadOnly" INTEGER NOT NULL, - "OrganId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_OrganRole_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_OrganRole` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NOT NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `OrganId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_OrganRole` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_OrganRole_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_OrganUser" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_OrganUser" PRIMARY KEY, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "OrganId" TEXT NOT NULL, - "UserId" TEXT NOT NULL, - "IsDefault" INTEGER NOT NULL, - "IsReadOnly" INTEGER NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_OrganUser_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_OrganUser_iot_User_UserId" FOREIGN KEY ("UserId") REFERENCES "iot_User" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_OrganUser` ( + `Id` char(36) NOT NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `OrganId` char(36) NOT NULL, + `UserId` char(36) NOT NULL, + `IsDefault` tinyint(1) NOT NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_OrganUser` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_OrganUser_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_OrganUser_iot_User_UserId` FOREIGN KEY (`UserId`) REFERENCES `iot_User` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_PermissionCategory" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_PermissionCategory" PRIMARY KEY, - "OrganId" TEXT NULL, - "IsDeleted" TEXT NULL, - "Name" TEXT NULL, - "Number" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Left" INTEGER NOT NULL, - "Right" INTEGER NOT NULL, - "ParentId" TEXT NULL, - CONSTRAINT "FK_iot_PermissionCategory_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_PermissionCategory_iot_PermissionCategory_ParentId" FOREIGN KEY ("ParentId") REFERENCES "iot_PermissionCategory" ("Id") ON DELETE RESTRICT +CREATE TABLE `iot_PermissionCategory` ( + `Id` char(36) NOT NULL, + `OrganId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` longtext CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Left` int NOT NULL, + `Right` int NOT NULL, + `ParentId` char(36) NULL, + CONSTRAINT `PK_iot_PermissionCategory` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_PermissionCategory_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_PermissionCategory_iot_PermissionCategory_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `iot_PermissionCategory` (`Id`) ON DELETE RESTRICT ); -CREATE TABLE "iot_Title" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Title" PRIMARY KEY, - "Name" TEXT NULL, - "MinLevel" INTEGER NOT NULL, - "MaxLevel" INTEGER NOT NULL, - "OrganId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_Title_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_Title` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `MinLevel` int NOT NULL, + `MaxLevel` int NOT NULL, + `OrganId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_Title` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Title_iot_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `iot_Organ` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTApi" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTApi" PRIMARY KEY, - "Name" TEXT NULL, - "Path" TEXT NULL, - "Command" TEXT NULL, - "Method" TEXT NULL, - "IoTProductId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTApi_iot_IoTProduct_IoTProductId" FOREIGN KEY ("IoTProductId") REFERENCES "iot_IoTProduct" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTApi` ( + `Id` char(36) NOT NULL, + `Name` varchar(255) CHARACTER SET utf8mb4 NULL, + `Path` longtext CHARACTER SET utf8mb4 NULL, + `Command` longtext CHARACTER SET utf8mb4 NULL, + `Method` longtext CHARACTER SET utf8mb4 NULL, + `IoTProductId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTApi` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTApi_iot_IoTProduct_IoTProductId` FOREIGN KEY (`IoTProductId`) REFERENCES `iot_IoTProduct` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTGateway" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTGateway" PRIMARY KEY, - "Name" TEXT NULL, - "Number" TEXT NOT NULL, - "IsOnline" INTEGER NOT NULL, - "Image" TEXT NULL, - "Version" TEXT NULL, - "Password" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Hidden" INTEGER NOT NULL, - "BuildingId" TEXT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTGateway_iot_Building_BuildingId" FOREIGN KEY ("BuildingId") REFERENCES "iot_Building" ("Id") ON DELETE SET NULL +CREATE TABLE `iot_IoTGateway` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `IsOnline` tinyint(1) NOT NULL, + `Image` longtext CHARACTER SET utf8mb4 NULL, + `Version` longtext CHARACTER SET utf8mb4 NULL, + `Password` longtext CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Hidden` tinyint(1) NOT NULL, + `BuildingId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTGateway` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTGateway_iot_Building_BuildingId` FOREIGN KEY (`BuildingId`) REFERENCES `iot_Building` (`Id`) ON DELETE SET NULL ); -CREATE TABLE "iot_IoTScene" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTScene" PRIMARY KEY, - "Name" TEXT NOT NULL, - "Image" TEXT NOT NULL, - "Hidden" INTEGER NOT NULL, - "DisplayOrder" INTEGER NOT NULL, - "BuildingId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTScene_iot_Building_BuildingId" FOREIGN KEY ("BuildingId") REFERENCES "iot_Building" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTScene` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NOT NULL, + `Image` longtext CHARACTER SET utf8mb4 NOT NULL, + `Hidden` tinyint(1) NOT NULL, + `DisplayOrder` int NOT NULL, + `BuildingId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTScene` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTScene_iot_Building_BuildingId` FOREIGN KEY (`BuildingId`) REFERENCES `iot_Building` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_OrganUserRole" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_OrganUserRole" PRIMARY KEY, - "IsReadOnly" INTEGER NOT NULL, - "OrganUserId" TEXT NOT NULL, - "OrganRoleId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_OrganUserRole_iot_OrganRole_OrganRoleId" FOREIGN KEY ("OrganRoleId") REFERENCES "iot_OrganRole" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_OrganUserRole_iot_OrganUser_OrganUserId" FOREIGN KEY ("OrganUserId") REFERENCES "iot_OrganUser" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_OrganUserRole` ( + `Id` char(36) NOT NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `OrganUserId` char(36) NOT NULL, + `OrganRoleId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_OrganUserRole` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_OrganUserRole_iot_OrganRole_OrganRoleId` FOREIGN KEY (`OrganRoleId`) REFERENCES `iot_OrganRole` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_OrganUserRole_iot_OrganUser_OrganUserId` FOREIGN KEY (`OrganUserId`) REFERENCES `iot_OrganUser` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_Permission" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Permission" PRIMARY KEY, - "Name" TEXT NOT NULL, - "Number" TEXT NOT NULL, - "IsReadOnly" INTEGER NOT NULL, - "Type" INTEGER NOT NULL, - "CategoryId" TEXT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_Permission_iot_PermissionCategory_CategoryId" FOREIGN KEY ("CategoryId") REFERENCES "iot_PermissionCategory" ("Id") ON DELETE SET NULL +CREATE TABLE `iot_Permission` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NOT NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `Type` int NOT NULL, + `CategoryId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_Permission` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Permission_iot_PermissionCategory_CategoryId` FOREIGN KEY (`CategoryId`) REFERENCES `iot_PermissionCategory` (`Id`) ON DELETE SET NULL ); -CREATE TABLE "iot_Job" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_Job" PRIMARY KEY, - "Name" TEXT NULL, - "Level" INTEGER NOT NULL, - "TitleId" TEXT NOT NULL, - "DepartmentId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_Job_iot_Department_DepartmentId" FOREIGN KEY ("DepartmentId") REFERENCES "iot_Department" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_Job_iot_Title_TitleId" FOREIGN KEY ("TitleId") REFERENCES "iot_Title" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_Job` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Level` int NOT NULL, + `TitleId` char(36) NOT NULL, + `DepartmentId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_Job` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_Job_iot_Department_DepartmentId` FOREIGN KEY (`DepartmentId`) REFERENCES `iot_Department` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_Job_iot_Title_TitleId` FOREIGN KEY (`TitleId`) REFERENCES `iot_Title` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTParameter" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTParameter" PRIMARY KEY, - "Type" TEXT NULL, - "Name" TEXT NULL, - "Description" TEXT NULL, - "Required" INTEGER NOT NULL, - "Maxinum" TEXT NULL, - "Minimum" TEXT NULL, - "IoTApiId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTParameter_iot_IoTApi_IoTApiId" FOREIGN KEY ("IoTApiId") REFERENCES "iot_IoTApi" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTParameter` ( + `Id` char(36) NOT NULL, + `Type` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Description` longtext CHARACTER SET utf8mb4 NULL, + `Required` tinyint(1) NOT NULL, + `Maxinum` longtext CHARACTER SET utf8mb4 NULL, + `Minimum` longtext CHARACTER SET utf8mb4 NULL, + `IoTApiId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTParameter` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTParameter_iot_IoTApi_IoTApiId` FOREIGN KEY (`IoTApiId`) REFERENCES `iot_IoTApi` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTDevice" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTDevice" PRIMARY KEY, - "Name" TEXT NULL, - "Number" TEXT NOT NULL, - "Gateway" TEXT NULL, - "DisplayName" TEXT NOT NULL, - "Tag" TEXT NULL, - "IsOnline" INTEGER NOT NULL, - "Icon" TEXT NULL, - "Ip" TEXT NULL, - "UserName" TEXT NULL, - "Password" TEXT NULL, - "ConnectId" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Disabled" INTEGER NOT NULL, - "IoTProductId" TEXT NOT NULL, - "IoTGatewayId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTDevice_iot_IoTGateway_IoTGatewayId" FOREIGN KEY ("IoTGatewayId") REFERENCES "iot_IoTGateway" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_IoTDevice_iot_IoTProduct_IoTProductId" FOREIGN KEY ("IoTProductId") REFERENCES "iot_IoTProduct" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTDevice` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `Gateway` longtext CHARACTER SET utf8mb4 NULL, + `DisplayName` longtext CHARACTER SET utf8mb4 NOT NULL, + `Tag` longtext CHARACTER SET utf8mb4 NULL, + `IsOnline` tinyint(1) NOT NULL, + `Icon` longtext CHARACTER SET utf8mb4 NULL, + `Ip` longtext CHARACTER SET utf8mb4 NULL, + `UserName` longtext CHARACTER SET utf8mb4 NULL, + `Password` longtext CHARACTER SET utf8mb4 NULL, + `ConnectId` longtext CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Disabled` tinyint(1) NOT NULL, + `IoTProductId` char(36) NOT NULL, + `IoTGatewayId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTDevice` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTDevice_iot_IoTGateway_IoTGatewayId` FOREIGN KEY (`IoTGatewayId`) REFERENCES `iot_IoTGateway` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_IoTDevice_iot_IoTProduct_IoTProductId` FOREIGN KEY (`IoTProductId`) REFERENCES `iot_IoTProduct` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTTimer" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTTimer" PRIMARY KEY, - "Name" TEXT NULL, - "Cron" TEXT NULL, - "Disabled" INTEGER NOT NULL, - "IoTSceneId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTTimer_iot_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "iot_IoTScene" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTTimer` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Cron` longtext CHARACTER SET utf8mb4 NULL, + `Disabled` tinyint(1) NOT NULL, + `IoTSceneId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTTimer` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTTimer_iot_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `iot_IoTScene` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_OrganRolePermission" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_OrganRolePermission" PRIMARY KEY, - "RoleId" TEXT NOT NULL, - "PermissionId" TEXT NOT NULL, - "IsReadOnly" INTEGER NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_OrganRolePermission_iot_OrganRole_RoleId" FOREIGN KEY ("RoleId") REFERENCES "iot_OrganRole" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_OrganRolePermission_iot_Permission_PermissionId" FOREIGN KEY ("PermissionId") REFERENCES "iot_Permission" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_OrganRolePermission` ( + `Id` char(36) NOT NULL, + `RoleId` char(36) NOT NULL, + `PermissionId` char(36) NOT NULL, + `IsReadOnly` tinyint(1) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_OrganRolePermission` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_OrganRolePermission_iot_OrganRole_RoleId` FOREIGN KEY (`RoleId`) REFERENCES `iot_OrganRole` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_OrganRolePermission_iot_Permission_PermissionId` FOREIGN KEY (`PermissionId`) REFERENCES `iot_Permission` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_DepartmentUser" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_DepartmentUser" PRIMARY KEY, - "Position" TEXT NULL, - "Type" INTEGER NOT NULL, - "CustomType" TEXT NULL, - "UserId" TEXT NOT NULL, - "DeparementId" TEXT NOT NULL, - "JobId" TEXT NULL, - "DepartmentId" TEXT NULL, - "OrganUserId" TEXT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_DepartmentUser_iot_Department_DepartmentId" FOREIGN KEY ("DepartmentId") REFERENCES "iot_Department" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_DepartmentUser_iot_Job_JobId" FOREIGN KEY ("JobId") REFERENCES "iot_Job" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_DepartmentUser_iot_OrganUser_OrganUserId" FOREIGN KEY ("OrganUserId") REFERENCES "iot_OrganUser" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_DepartmentUser_iot_User_UserId" FOREIGN KEY ("UserId") REFERENCES "iot_User" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_DepartmentUser` ( + `Id` char(36) NOT NULL, + `Position` longtext CHARACTER SET utf8mb4 NULL, + `Type` int NOT NULL, + `CustomType` longtext CHARACTER SET utf8mb4 NULL, + `UserId` char(36) NOT NULL, + `DeparementId` char(36) NOT NULL, + `JobId` char(36) NULL, + `DepartmentId` char(36) NULL, + `OrganUserId` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_DepartmentUser` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_DepartmentUser_iot_Department_DepartmentId` FOREIGN KEY (`DepartmentId`) REFERENCES `iot_Department` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_DepartmentUser_iot_Job_JobId` FOREIGN KEY (`JobId`) REFERENCES `iot_Job` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_DepartmentUser_iot_OrganUser_OrganUserId` FOREIGN KEY (`OrganUserId`) REFERENCES `iot_OrganUser` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_DepartmentUser_iot_User_UserId` FOREIGN KEY (`UserId`) REFERENCES `iot_User` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTCommand" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTCommand" PRIMARY KEY, - "Name" TEXT NULL, - "DisplayOrder" INTEGER NOT NULL, - "Disabled" INTEGER NOT NULL, - "Delay" INTEGER NOT NULL, - "QueryString" TEXT NULL, - "ApiId" TEXT NOT NULL, - "DeviceId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTCommand_iot_IoTApi_ApiId" FOREIGN KEY ("ApiId") REFERENCES "iot_IoTApi" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_IoTCommand_iot_IoTDevice_DeviceId" FOREIGN KEY ("DeviceId") REFERENCES "iot_IoTDevice" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTCommand` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `DisplayOrder` int NOT NULL, + `Disabled` tinyint(1) NOT NULL, + `Delay` int NOT NULL, + `QueryString` longtext CHARACTER SET utf8mb4 NULL, + `ApiId` char(36) NOT NULL, + `DeviceId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTCommand` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTCommand_iot_IoTApi_ApiId` FOREIGN KEY (`ApiId`) REFERENCES `iot_IoTApi` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_IoTCommand_iot_IoTDevice_DeviceId` FOREIGN KEY (`DeviceId`) REFERENCES `iot_IoTDevice` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTData" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTData" PRIMARY KEY, - "Key" TEXT NOT NULL, - "Value" TEXT NULL, - "Name" TEXT NULL, - "DataType" INTEGER NOT NULL, - "ValueType" INTEGER NOT NULL, - "EnumValues" TEXT NULL, - "Unit" TEXT NULL, - "Description" TEXT NULL, - "Timestamp" INTEGER NOT NULL, - "Hidden" INTEGER NOT NULL, - "IoTDeviceId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTData_iot_IoTDevice_IoTDeviceId" FOREIGN KEY ("IoTDeviceId") REFERENCES "iot_IoTDevice" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTData` ( + `Id` char(36) NOT NULL, + `Key` longtext CHARACTER SET utf8mb4 NOT NULL, + `Value` longtext CHARACTER SET utf8mb4 NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `DataType` int NOT NULL, + `ValueType` int NOT NULL, + `ValueSchema` longtext CHARACTER SET utf8mb4 NULL, + `Unit` longtext CHARACTER SET utf8mb4 NULL, + `Description` longtext CHARACTER SET utf8mb4 NULL, + `Timestamp` bigint NOT NULL, + `Hidden` tinyint(1) NOT NULL, + `IoTDeviceId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTData` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTData_iot_IoTDevice_IoTDeviceId` FOREIGN KEY (`IoTDeviceId`) REFERENCES `iot_IoTDevice` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTSceneIoTCommand" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTSceneIoTCommand" PRIMARY KEY, - "IoTSceneId" TEXT NOT NULL, - "IoTCommandId" TEXT NOT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTSceneIoTCommand_iot_IoTCommand_IoTCommandId" FOREIGN KEY ("IoTCommandId") REFERENCES "iot_IoTCommand" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_IoTSceneIoTCommand_iot_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "iot_IoTScene" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTSceneIoTCommand` ( + `Id` char(36) NOT NULL, + `IoTSceneId` char(36) NOT NULL, + `IoTCommandId` char(36) NOT NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTSceneIoTCommand` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTSceneIoTCommand_iot_IoTCommand_IoTCommandId` FOREIGN KEY (`IoTCommandId`) REFERENCES `iot_IoTCommand` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_IoTSceneIoTCommand_iot_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `iot_IoTScene` (`Id`) ON DELETE CASCADE ); -CREATE TABLE "iot_IoTTigger" ( - "Id" TEXT NOT NULL CONSTRAINT "PK_iot_IoTTigger" PRIMARY KEY, - "Name" TEXT NULL, - "Type" INTEGER NOT NULL, - "Condition" TEXT NULL, - "Start" TEXT NOT NULL, - "End" TEXT NOT NULL, - "Disabled" INTEGER NOT NULL, - "IoTDataId" TEXT NOT NULL, - "IoTSceneId" TEXT NOT NULL, - "IoTDataId1" TEXT NULL, - "IsDeleted" TEXT NULL, - CONSTRAINT "FK_iot_IoTTigger_iot_IoTData_IoTDataId" FOREIGN KEY ("IoTDataId") REFERENCES "iot_IoTData" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_iot_IoTTigger_iot_IoTData_IoTDataId1" FOREIGN KEY ("IoTDataId1") REFERENCES "iot_IoTData" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_iot_IoTTigger_iot_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "iot_IoTScene" ("Id") ON DELETE CASCADE +CREATE TABLE `iot_IoTTigger` ( + `Id` char(36) NOT NULL, + `Name` longtext CHARACTER SET utf8mb4 NULL, + `Type` int NOT NULL, + `Condition` longtext CHARACTER SET utf8mb4 NULL, + `Start` datetime(6) NOT NULL, + `End` datetime(6) NOT NULL, + `Disabled` tinyint(1) NOT NULL, + `IoTDataId` char(36) NOT NULL, + `IoTSceneId` char(36) NOT NULL, + `IoTDataId1` char(36) NULL, + `IsDeleted` longtext CHARACTER SET utf8mb4 NULL, + CONSTRAINT `PK_iot_IoTTigger` PRIMARY KEY (`Id`), + CONSTRAINT `FK_iot_IoTTigger_iot_IoTData_IoTDataId` FOREIGN KEY (`IoTDataId`) REFERENCES `iot_IoTData` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_iot_IoTTigger_iot_IoTData_IoTDataId1` FOREIGN KEY (`IoTDataId1`) REFERENCES `iot_IoTData` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_iot_IoTTigger_iot_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `iot_IoTScene` (`Id`) ON DELETE CASCADE ); -CREATE UNIQUE INDEX "IX_iot_Area_Number" ON "iot_Area" ("Number"); +CREATE UNIQUE INDEX `IX_iot_Area_Number` ON `iot_Area` (`Number`); -CREATE INDEX "IX_iot_Area_ParentId" ON "iot_Area" ("ParentId"); +CREATE INDEX `IX_iot_Area_ParentId` ON `iot_Area` (`ParentId`); -CREATE INDEX "IX_iot_Building_AreaId" ON "iot_Building" ("AreaId"); +CREATE INDEX `IX_iot_Building_AreaId` ON `iot_Building` (`AreaId`); -CREATE UNIQUE INDEX "IX_iot_Building_OrganId_ParentId_Number" ON "iot_Building" ("OrganId", "ParentId", "Number"); +CREATE UNIQUE INDEX `IX_iot_Building_OrganId_ParentId_Number` ON `iot_Building` (`OrganId`, `ParentId`, `Number`); -CREATE INDEX "IX_iot_Building_ParentId" ON "iot_Building" ("ParentId"); +CREATE INDEX `IX_iot_Building_ParentId` ON `iot_Building` (`ParentId`); -CREATE UNIQUE INDEX "IX_iot_Department_OrganId_Number" ON "iot_Department" ("OrganId", "Number"); +CREATE UNIQUE INDEX `IX_iot_Department_OrganId_Number` ON `iot_Department` (`OrganId`, `Number`); -CREATE INDEX "IX_iot_Department_ParentId" ON "iot_Department" ("ParentId"); +CREATE INDEX `IX_iot_Department_ParentId` ON `iot_Department` (`ParentId`); -CREATE INDEX "IX_iot_DepartmentUser_DepartmentId" ON "iot_DepartmentUser" ("DepartmentId"); +CREATE INDEX `IX_iot_DepartmentUser_DepartmentId` ON `iot_DepartmentUser` (`DepartmentId`); -CREATE INDEX "IX_iot_DepartmentUser_JobId" ON "iot_DepartmentUser" ("JobId"); +CREATE INDEX `IX_iot_DepartmentUser_JobId` ON `iot_DepartmentUser` (`JobId`); -CREATE INDEX "IX_iot_DepartmentUser_OrganUserId" ON "iot_DepartmentUser" ("OrganUserId"); +CREATE INDEX `IX_iot_DepartmentUser_OrganUserId` ON `iot_DepartmentUser` (`OrganUserId`); -CREATE INDEX "IX_iot_DepartmentUser_UserId" ON "iot_DepartmentUser" ("UserId"); +CREATE INDEX `IX_iot_DepartmentUser_UserId` ON `iot_DepartmentUser` (`UserId`); -CREATE UNIQUE INDEX "IX_iot_IoTApi_IoTProductId_Name" ON "iot_IoTApi" ("IoTProductId", "Name"); +CREATE UNIQUE INDEX `IX_iot_IoTApi_IoTProductId_Name` ON `iot_IoTApi` (`IoTProductId`, `Name`); -CREATE INDEX "IX_iot_IoTCommand_ApiId" ON "iot_IoTCommand" ("ApiId"); +CREATE INDEX `IX_iot_IoTCommand_ApiId` ON `iot_IoTCommand` (`ApiId`); -CREATE INDEX "IX_iot_IoTCommand_DeviceId" ON "iot_IoTCommand" ("DeviceId"); +CREATE INDEX `IX_iot_IoTCommand_DeviceId` ON `iot_IoTCommand` (`DeviceId`); -CREATE INDEX "IX_iot_IoTData_IoTDeviceId" ON "iot_IoTData" ("IoTDeviceId"); +CREATE INDEX `IX_iot_IoTData_IoTDeviceId` ON `iot_IoTData` (`IoTDeviceId`); -CREATE INDEX "IX_iot_IoTDevice_IoTGatewayId" ON "iot_IoTDevice" ("IoTGatewayId"); +CREATE INDEX `IX_iot_IoTDevice_IoTGatewayId` ON `iot_IoTDevice` (`IoTGatewayId`); -CREATE INDEX "IX_iot_IoTDevice_IoTProductId" ON "iot_IoTDevice" ("IoTProductId"); +CREATE INDEX `IX_iot_IoTDevice_IoTProductId` ON `iot_IoTDevice` (`IoTProductId`); -CREATE UNIQUE INDEX "IX_iot_IoTDevice_Number" ON "iot_IoTDevice" ("Number"); +CREATE UNIQUE INDEX `IX_iot_IoTDevice_Number` ON `iot_IoTDevice` (`Number`); -CREATE INDEX "IX_iot_IoTGateway_BuildingId" ON "iot_IoTGateway" ("BuildingId"); +CREATE INDEX `IX_iot_IoTGateway_BuildingId` ON `iot_IoTGateway` (`BuildingId`); -CREATE UNIQUE INDEX "IX_iot_IoTGateway_Number" ON "iot_IoTGateway" ("Number"); +CREATE UNIQUE INDEX `IX_iot_IoTGateway_Number` ON `iot_IoTGateway` (`Number`); -CREATE INDEX "IX_iot_IoTParameter_IoTApiId" ON "iot_IoTParameter" ("IoTApiId"); +CREATE INDEX `IX_iot_IoTParameter_IoTApiId` ON `iot_IoTParameter` (`IoTApiId`); -CREATE INDEX "IX_iot_IoTProduct_IoTProductCategoryId" ON "iot_IoTProduct" ("IoTProductCategoryId"); +CREATE INDEX `IX_iot_IoTProduct_IoTProductCategoryId` ON `iot_IoTProduct` (`IoTProductCategoryId`); -CREATE UNIQUE INDEX "IX_iot_IoTProduct_Number" ON "iot_IoTProduct" ("Number"); +CREATE UNIQUE INDEX `IX_iot_IoTProduct_Number` ON `iot_IoTProduct` (`Number`); -CREATE UNIQUE INDEX "IX_iot_IoTProductCategory_Number" ON "iot_IoTProductCategory" ("Number"); +CREATE UNIQUE INDEX `IX_iot_IoTProductCategory_Number` ON `iot_IoTProductCategory` (`Number`); -CREATE INDEX "IX_iot_IoTProductCategory_ParentId" ON "iot_IoTProductCategory" ("ParentId"); +CREATE INDEX `IX_iot_IoTProductCategory_ParentId` ON `iot_IoTProductCategory` (`ParentId`); -CREATE INDEX "IX_iot_IoTScene_BuildingId" ON "iot_IoTScene" ("BuildingId"); +CREATE INDEX `IX_iot_IoTScene_BuildingId` ON `iot_IoTScene` (`BuildingId`); -CREATE INDEX "IX_iot_IoTSceneIoTCommand_IoTCommandId" ON "iot_IoTSceneIoTCommand" ("IoTCommandId"); +CREATE INDEX `IX_iot_IoTSceneIoTCommand_IoTCommandId` ON `iot_IoTSceneIoTCommand` (`IoTCommandId`); -CREATE INDEX "IX_iot_IoTSceneIoTCommand_IoTSceneId" ON "iot_IoTSceneIoTCommand" ("IoTSceneId"); +CREATE INDEX `IX_iot_IoTSceneIoTCommand_IoTSceneId` ON `iot_IoTSceneIoTCommand` (`IoTSceneId`); -CREATE INDEX "IX_iot_IoTTigger_IoTDataId" ON "iot_IoTTigger" ("IoTDataId"); +CREATE INDEX `IX_iot_IoTTigger_IoTDataId` ON `iot_IoTTigger` (`IoTDataId`); -CREATE INDEX "IX_iot_IoTTigger_IoTDataId1" ON "iot_IoTTigger" ("IoTDataId1"); +CREATE INDEX `IX_iot_IoTTigger_IoTDataId1` ON `iot_IoTTigger` (`IoTDataId1`); -CREATE INDEX "IX_iot_IoTTigger_IoTSceneId" ON "iot_IoTTigger" ("IoTSceneId"); +CREATE INDEX `IX_iot_IoTTigger_IoTSceneId` ON `iot_IoTTigger` (`IoTSceneId`); -CREATE INDEX "IX_iot_IoTTimer_IoTSceneId" ON "iot_IoTTimer" ("IoTSceneId"); +CREATE INDEX `IX_iot_IoTTimer_IoTSceneId` ON `iot_IoTTimer` (`IoTSceneId`); -CREATE INDEX "IX_iot_Job_DepartmentId" ON "iot_Job" ("DepartmentId"); +CREATE INDEX `IX_iot_Job_DepartmentId` ON `iot_Job` (`DepartmentId`); -CREATE INDEX "IX_iot_Job_TitleId" ON "iot_Job" ("TitleId"); +CREATE INDEX `IX_iot_Job_TitleId` ON `iot_Job` (`TitleId`); -CREATE INDEX "IX_iot_Organ_AreaId" ON "iot_Organ" ("AreaId"); +CREATE INDEX `IX_iot_Organ_AreaId` ON `iot_Organ` (`AreaId`); -CREATE UNIQUE INDEX "IX_iot_Organ_Name" ON "iot_Organ" ("Name"); +CREATE UNIQUE INDEX `IX_iot_Organ_Name` ON `iot_Organ` (`Name`); -CREATE UNIQUE INDEX "IX_iot_Organ_Number" ON "iot_Organ" ("Number"); +CREATE UNIQUE INDEX `IX_iot_Organ_Number` ON `iot_Organ` (`Number`); -CREATE INDEX "IX_iot_Organ_ParentId" ON "iot_Organ" ("ParentId"); +CREATE INDEX `IX_iot_Organ_ParentId` ON `iot_Organ` (`ParentId`); -CREATE UNIQUE INDEX "IX_iot_OrganRole_OrganId_Number" ON "iot_OrganRole" ("OrganId", "Number"); +CREATE UNIQUE INDEX `IX_iot_OrganRole_OrganId_Number` ON `iot_OrganRole` (`OrganId`, `Number`); -CREATE INDEX "IX_iot_OrganRolePermission_PermissionId" ON "iot_OrganRolePermission" ("PermissionId"); +CREATE INDEX `IX_iot_OrganRolePermission_PermissionId` ON `iot_OrganRolePermission` (`PermissionId`); -CREATE UNIQUE INDEX "IX_iot_OrganRolePermission_RoleId_PermissionId" ON "iot_OrganRolePermission" ("RoleId", "PermissionId"); +CREATE UNIQUE INDEX `IX_iot_OrganRolePermission_RoleId_PermissionId` ON `iot_OrganRolePermission` (`RoleId`, `PermissionId`); -CREATE UNIQUE INDEX "IX_iot_OrganUser_OrganId_UserId" ON "iot_OrganUser" ("OrganId", "UserId"); +CREATE UNIQUE INDEX `IX_iot_OrganUser_OrganId_UserId` ON `iot_OrganUser` (`OrganId`, `UserId`); -CREATE INDEX "IX_iot_OrganUser_UserId" ON "iot_OrganUser" ("UserId"); +CREATE INDEX `IX_iot_OrganUser_UserId` ON `iot_OrganUser` (`UserId`); -CREATE INDEX "IX_iot_OrganUserRole_OrganRoleId" ON "iot_OrganUserRole" ("OrganRoleId"); +CREATE INDEX `IX_iot_OrganUserRole_OrganRoleId` ON `iot_OrganUserRole` (`OrganRoleId`); -CREATE UNIQUE INDEX "IX_iot_OrganUserRole_OrganUserId_OrganRoleId" ON "iot_OrganUserRole" ("OrganUserId", "OrganRoleId"); +CREATE UNIQUE INDEX `IX_iot_OrganUserRole_OrganUserId_OrganRoleId` ON `iot_OrganUserRole` (`OrganUserId`, `OrganRoleId`); -CREATE INDEX "IX_iot_Permission_CategoryId" ON "iot_Permission" ("CategoryId"); +CREATE INDEX `IX_iot_Permission_CategoryId` ON `iot_Permission` (`CategoryId`); -CREATE UNIQUE INDEX "IX_iot_Permission_Number" ON "iot_Permission" ("Number"); +CREATE UNIQUE INDEX `IX_iot_Permission_Number` ON `iot_Permission` (`Number`); -CREATE INDEX "IX_iot_PermissionCategory_OrganId" ON "iot_PermissionCategory" ("OrganId"); +CREATE INDEX `IX_iot_PermissionCategory_OrganId` ON `iot_PermissionCategory` (`OrganId`); -CREATE INDEX "IX_iot_PermissionCategory_ParentId" ON "iot_PermissionCategory" ("ParentId"); +CREATE INDEX `IX_iot_PermissionCategory_ParentId` ON `iot_PermissionCategory` (`ParentId`); -CREATE UNIQUE INDEX "IX_iot_Setting_Name" ON "iot_Setting" ("Name"); +CREATE UNIQUE INDEX `IX_iot_Setting_Name` ON `iot_Setting` (`Name`); -CREATE UNIQUE INDEX "IX_iot_Site_Name" ON "iot_Site" ("Name"); +CREATE UNIQUE INDEX `IX_iot_Site_Name` ON `iot_Site` (`Name`); -CREATE INDEX "IX_iot_Title_OrganId" ON "iot_Title" ("OrganId"); +CREATE INDEX `IX_iot_Title_OrganId` ON `iot_Title` (`OrganId`); -CREATE UNIQUE INDEX "IX_iot_User_Email" ON "iot_User" ("Email"); +CREATE UNIQUE INDEX `IX_iot_User_Email` ON `iot_User` (`Email`); -CREATE UNIQUE INDEX "IX_iot_User_PhoneNumber" ON "iot_User" ("PhoneNumber"); +CREATE UNIQUE INDEX `IX_iot_User_PhoneNumber` ON `iot_User` (`PhoneNumber`); -CREATE UNIQUE INDEX "IX_iot_User_UserName" ON "iot_User" ("UserName"); +CREATE UNIQUE INDEX `IX_iot_User_UserName` ON `iot_User` (`UserName`); diff --git a/projects/Platform/wwwroot/temp/teacher.html b/projects/Platform/wwwroot/temp/teacher.html new file mode 100644 index 00000000..327d0475 --- /dev/null +++ b/projects/Platform/wwwroot/temp/teacher.html @@ -0,0 +1,39 @@ + + + + + + + + 前端测试页 + + +
+ +
+ + + + + + + + + + +