林豪 左 2 år sedan
förälder
incheckning
4f3d006173

+ 2139 - 0
Projects/永冠OPP/WCS.Service/Migrations/20221010025311_新增状态记录.Designer.cs

@@ -0,0 +1,2139 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using WCS.Service;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    [DbContext(typeof(WCSDB))]
+    [Migration("20221010025311_新增状态记录")]
+    partial class 新增状态记录
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "6.0.4")
+                .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+            modelBuilder.Entity("WCS.Entity.Protocol.BCR.WCS_BCR80", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("Content")
+                        .HasMaxLength(130)
+                        .HasColumnType("nvarchar(130)");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_BCR80");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station520", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<short>("CmdType")
+                        .HasColumnType("smallint");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<short>("GoodsSize")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Goodscode")
+                        .HasColumnType("int");
+
+                    b.Property<short>("Goodsend")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Goodsnum")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Goodsstart")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Istation521Status")
+                        .HasColumnType("int");
+
+                    b.Property<short>("Request")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Tasknum")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<short>("VoucherNo")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_STATION520");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station521", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<short>("CmdType")
+                        .HasColumnType("smallint");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<short>("GoodsSize")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Goodscode")
+                        .HasColumnType("int");
+
+                    b.Property<short>("Goodsend")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Goodsnum")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Goodsstart")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("Request")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Tasknum")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<short>("VoucherNo")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_STATION521");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station523", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<int>("Alarm")
+                        .HasColumnType("int");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("RES")
+                        .HasColumnType("smallint");
+
+                    b.Property<float>("RunTime")
+                        .HasColumnType("real");
+
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_STATION523");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_AGVTask", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int");
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("AGVID")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("AGVStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("AGVUpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("Goodsnum")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Position")
+                        .IsRequired()
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("Station")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TaskType")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("Workshop")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_AGVTask");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_DEVICESTATELOG", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("STATE")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_DEVICESTATELOG");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_MAPPINGENTRY", b =>
+                {
+                    b.Property<int>("MEP_ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int");
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MEP_ID"), 1L, 1);
+
+                    b.Property<bool>("MEP_ISSTOP")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("MEP_MAPPINGCHNAME")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<int>("MEP_MAPPINGNO")
+                        .HasColumnType("int");
+
+                    b.Property<string>("MEP_MAPPINGTYPE")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.HasKey("MEP_ID");
+
+                    b.ToTable("WCS_MAPPINGENTRY");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV520", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<short>("DestPosition_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("DestPosition_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("Priority_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Priority_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES1_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES1_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("StartPosition_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("StartPosition_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("TaskID_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TaskID_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("TaskType_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("TaskType_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Trigger_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Trigger_2")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_RGV520");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV521", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<short>("DestPosition_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("DestPosition_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<float>("Mileage")
+                        .HasColumnType("real");
+
+                    b.Property<short>("PRIORITY_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("PRIORITY_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<float>("Position")
+                        .HasColumnType("real");
+
+                    b.Property<short>("RES1_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES1_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES6")
+                        .HasColumnType("smallint");
+
+                    b.Property<float>("Runtime")
+                        .HasColumnType("real");
+
+                    b.Property<short>("StartPosition_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("StartPosition_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Status_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Status_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("SystemStatus")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("TaskID_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TaskID_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("TaskType_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("TaskType_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Trigger_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Trigger_2")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.Property<short>("WorkMode")
+                        .HasColumnType("smallint");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_RGV521");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV523", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("Fault")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Fault1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Fault2")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Status1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Status2")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_RGV523");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM520", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<short>("ECol_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ECol_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("EDepth_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("EDepth_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELayer_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELayer_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELine_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELine_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<short>("FinishedACK_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("FinishedACK_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("GoodsType_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("GoodsType_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Handshake_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Handshake_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("RES1_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES1_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES2_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES3_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES3_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES4_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES4_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SCSpeedMode_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SCol_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SCol_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SDepth_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SDepth_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLayer_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLayer_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLine_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLine_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SpeedMode_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("TaskID_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TaskID_2")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<short>("VoucherNo_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("VoucherNo_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_SRM520");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM521", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<short>("Alarm")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Col_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Col_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<short>("ECol_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ECol_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("EDepth_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("EDepth_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELayer_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELayer_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELine_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("ELine_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("FinishedTask_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("FinishedTask_2")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ForkPos_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ForkPos_2")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ForkStatus_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ForkStatus_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("GoodsType_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("GoodsType_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("Layer_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Layer_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("LiftPos_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("LiftPos_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("Line_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Line_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Mode_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Mode_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES10_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES10_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("RES11_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES11_2")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES12_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES12_2")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES13_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES13_2")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES14_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RES14_2")
+                        .HasColumnType("int");
+
+                    b.Property<short>("RES9_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("RES9_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<float>("Runtime")
+                        .HasColumnType("real");
+
+                    b.Property<float>("Runtime_1")
+                        .HasColumnType("real");
+
+                    b.Property<float>("Runtime_2")
+                        .HasColumnType("real");
+
+                    b.Property<short>("SCol_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SCol_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SDepth_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SDepth_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLayer_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLayer_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLine_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SLine_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SRMMode")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("SRMStatus")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Status_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("Status_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("TaskID_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TaskID_2")
+                        .HasColumnType("int");
+
+                    b.Property<float>("TotalKM")
+                        .HasColumnType("real");
+
+                    b.Property<float>("TotalKM_1")
+                        .HasColumnType("real");
+
+                    b.Property<float>("TotalKM_2")
+                        .HasColumnType("real");
+
+                    b.Property<int>("TravelPos_1")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TravelPos_2")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<short>("VoucherNo_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("VoucherNo_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_SRM521");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM537", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("FRAME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<decimal>("SCAlarm")
+                        .HasColumnType("decimal(20,0)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_SRM537");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_StatusLog", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("NewStatus")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Node")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("OldStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCS_TASKID")
+                        .HasColumnType("int");
+
+                    b.Property<string>("msg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("upStatus")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_StatusLog");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SystemConfig", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("Code")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Describe")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Direction")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("TUNNEL")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_SystemConfig");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_TASK_OLD", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("ADDRFROM")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("ADDRNEXT")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("ADDRTO")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("AgvTask")
+                        .HasColumnType("int");
+
+                    b.Property<string>("BARCODE")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("CREATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("DEVICE")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("DOCID")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime?>("ENDTIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("FLOOR")
+                        .HasColumnType("int");
+
+                    b.Property<short>("FULLQTY")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("HEIGHT")
+                        .HasColumnType("smallint");
+
+                    b.Property<decimal>("Length")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("ManualRemarks")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("MaterialCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<short>("PALLETTYPE")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("PRODLINE")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Priority")
+                        .HasColumnType("int");
+
+                    b.Property<string>("SRMSTATION")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<DateTime?>("STARTTIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("STATUS")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TUNNEL")
+                        .HasMaxLength(10)
+                        .HasColumnType("nvarchar(10)");
+
+                    b.Property<int>("TYPE")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TaskGroupKey")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<int>("UPLOADED")
+                        .HasColumnType("int");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WMSTASK")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_TASK_OLD");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_Users", b =>
+                {
+                    b.Property<string>("USER_NO")
+                        .HasMaxLength(128)
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("USER_PWD")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<byte[]>("USER_TEXT")
+                        .HasColumnType("varbinary(max)");
+
+                    b.HasKey("USER_NO");
+
+                    b.ToTable("WCS_Users");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_CMD", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICE_CODE")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("PROPERTY")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("PROTOCOL")
+                        .HasMaxLength(256)
+                        .HasColumnType("nvarchar(256)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("VALUE")
+                        .HasMaxLength(512)
+                        .HasColumnType("nvarchar(512)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WCSVERSION")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_CMD");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DATABLOCK", b =>
+                {
+                    b.Property<string>("CODE")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("DATALENGTH")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("LENGTH")
+                        .HasColumnType("int");
+
+                    b.Property<string>("NAME")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("NO")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("NOUPDATE")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("PLCCODE")
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("PROTOCOL")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("nvarchar(200)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("CODE");
+
+                    b.HasIndex("PLCCODE");
+
+                    b.ToTable("WCS_DATABLOCK");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DEVICE", b =>
+                {
+                    b.Property<string>("CODE")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("NAME")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("CODE");
+
+                    b.ToTable("WCS_DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DEVICEPROTOCOL", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DBCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("DEVICECODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("POSITION")
+                        .HasColumnType("smallint");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DBCODE");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.ToTable("WCS_DEVICEPROTOCOL");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_EXCEPTION", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICE")
+                        .HasMaxLength(1000)
+                        .HasColumnType("nvarchar(1000)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("EXCEPTIONTYPE")
+                        .HasMaxLength(1000)
+                        .HasColumnType("nvarchar(1000)");
+
+                    b.Property<string>("MSG")
+                        .HasMaxLength(1000)
+                        .HasColumnType("nvarchar(1000)");
+
+                    b.Property<DateTime>("STARTTIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("TIMES")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_EXCEPTION");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_GROUPMEMBER", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("GROUPCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("MEMBERCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("GROUPCODE");
+
+                    b.HasIndex("MEMBERCODE");
+
+                    b.ToTable("WCS_GROUPMEMBER");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_PATH", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("ENDCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("PATH")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("STARTCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ENDCODE");
+
+                    b.HasIndex("STARTCODE");
+
+                    b.ToTable("WCS_PATH");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_PATHPOINT", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("ENDCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("NEXTCODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("PREVCODE")
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<string>("STARTCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.HasIndex("ENDCODE");
+
+                    b.HasIndex("NEXTCODE");
+
+                    b.HasIndex("PREVCODE");
+
+                    b.HasIndex("STARTCODE");
+
+                    b.ToTable("WCS_PATHPOINT");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_PLC", b =>
+                {
+                    b.Property<string>("CODE")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("IP")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("MODEL")
+                        .HasMaxLength(10)
+                        .HasColumnType("nvarchar(10)");
+
+                    b.Property<string>("NAME")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("PORT")
+                        .HasColumnType("int");
+
+                    b.Property<int>("RACK")
+                        .HasColumnType("int");
+
+                    b.Property<int>("SLOT")
+                        .HasColumnType("int");
+
+                    b.Property<int>("TYPE")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("CODE");
+
+                    b.ToTable("WCS_PLC");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_ROUTE", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("NEXTCODE")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("DEVICECODE");
+
+                    b.HasIndex("NEXTCODE");
+
+                    b.ToTable("WCS_ROUTE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_TASK", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("ADDRFROM")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("ADDRNEXT")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("ADDRTO")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("AgvTask")
+                        .HasColumnType("int");
+
+                    b.Property<string>("BARCODE")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<DateTime>("CREATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("DEVICE")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<string>("DEVICEDL")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<int>("DOCID")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime?>("ENDTIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("FLOOR")
+                        .HasColumnType("int");
+
+                    b.Property<short>("FULLQTY")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("HEIGHT")
+                        .HasColumnType("smallint");
+
+                    b.Property<decimal>("Length")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("ManualRemarks")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("MaterialCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<short>("PALLETTYPE")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("PRODLINE")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Priority")
+                        .HasColumnType("int");
+
+                    b.Property<string>("SRMSTATION")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property<DateTime?>("STARTTIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("STATUS")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TUNNEL")
+                        .HasMaxLength(10)
+                        .HasColumnType("nvarchar(10)");
+
+                    b.Property<string>("TUNNELDL")
+                        .HasMaxLength(10)
+                        .HasColumnType("nvarchar(10)");
+
+                    b.Property<int>("TYPE")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TaskGroupKey")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<int>("UPLOADED")
+                        .HasColumnType("int");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.Property<int>("WMSTASK")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_TASK");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.BCR.WCS_BCR80", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station520", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station521", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.Station.WCS_Station523", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV520", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV521", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_RGV523", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM520", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM521", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_SRM537", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DATABLOCK", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_PLC", "PLC")
+                        .WithMany()
+                        .HasForeignKey("PLCCODE");
+
+                    b.Navigation("PLC");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DEVICEPROTOCOL", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DATABLOCK", "DB")
+                        .WithMany()
+                        .HasForeignKey("DBCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany("PROTOCOLS")
+                        .HasForeignKey("DEVICECODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("DB");
+
+                    b.Navigation("DEVICE");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_GROUPMEMBER", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "GROUP")
+                        .WithMany("DEVICEGROUP")
+                        .HasForeignKey("GROUPCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "MEMBER")
+                        .WithMany()
+                        .HasForeignKey("MEMBERCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("GROUP");
+
+                    b.Navigation("MEMBER");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_PATH", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "END")
+                        .WithMany()
+                        .HasForeignKey("ENDCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "START")
+                        .WithMany("PATHS")
+                        .HasForeignKey("STARTCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("END");
+
+                    b.Navigation("START");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_PATHPOINT", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany()
+                        .HasForeignKey("DEVICECODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "END")
+                        .WithMany()
+                        .HasForeignKey("ENDCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "NEXT")
+                        .WithMany()
+                        .HasForeignKey("NEXTCODE");
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "PREV")
+                        .WithMany()
+                        .HasForeignKey("PREVCODE");
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "START")
+                        .WithMany()
+                        .HasForeignKey("STARTCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("DEVICE");
+
+                    b.Navigation("END");
+
+                    b.Navigation("NEXT");
+
+                    b.Navigation("PREV");
+
+                    b.Navigation("START");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_ROUTE", b =>
+                {
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
+                        .WithMany("ROUTES")
+                        .HasForeignKey("DEVICECODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("WCS.Entity.WCS_DEVICE", "NEXT")
+                        .WithMany()
+                        .HasForeignKey("NEXTCODE")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("DEVICE");
+
+                    b.Navigation("NEXT");
+                });
+
+            modelBuilder.Entity("WCS.Entity.WCS_DEVICE", b =>
+                {
+                    b.Navigation("DEVICEGROUP");
+
+                    b.Navigation("PATHS");
+
+                    b.Navigation("PROTOCOLS");
+
+                    b.Navigation("ROUTES");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}

+ 37 - 0
Projects/永冠OPP/WCS.Service/Migrations/20221010025311_新增状态记录.cs

@@ -0,0 +1,37 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    public partial class 新增状态记录 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "WCS_DEVICESTATELOG",
+                columns: table => new
+                {
+                    ID = table.Column<int>(type: "int", nullable: false)
+                        .Annotation("SqlServer:Identity", "1, 1"),
+                    DEVICECODE = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    STATE = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    ENABLED = table.Column<bool>(type: "bit", nullable: false),
+                    UPDATEUSER = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
+                    UPDATETIME = table.Column<DateTime>(type: "datetime2", nullable: false),
+                    VER = table.Column<byte[]>(type: "rowversion", rowVersion: true, nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_WCS_DEVICESTATELOG", x => x.ID);
+                });
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "WCS_DEVICESTATELOG");
+        }
+    }
+}

+ 36 - 0
Projects/永冠OPP/WCS.Service/Migrations/WCSDBModelSnapshot.cs

@@ -324,6 +324,42 @@ namespace WCS.Service.Migrations
                     b.ToTable("WCS_AGVTask");
                 });
 
+            modelBuilder.Entity("WCS.Entity.Protocol.WCS_DEVICESTATELOG", b =>
+                {
+                    b.Property<int>("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnOrder(0);
+
+                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"), 1L, 1);
+
+                    b.Property<string>("DEVICECODE")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("ENABLED")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("STATE")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime>("UPDATETIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("UPDATEUSER")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property<byte[]>("VER")
+                        .IsConcurrencyToken()
+                        .ValueGeneratedOnAddOrUpdate()
+                        .HasColumnType("rowversion");
+
+                    b.HasKey("ID");
+
+                    b.ToTable("WCS_DEVICESTATELOG");
+                });
+
             modelBuilder.Entity("WCS.Entity.Protocol.WCS_MAPPINGENTRY", b =>
                 {
                     b.Property<int>("MEP_ID")