Browse Source

变更RGV位置值的类型

林豪 左 3 years ago
parent
commit
f65affd6df

+ 32 - 75
Projects/永冠OPP/WCS.Entity.Protocol/RGV/IRGV521.cs

@@ -1,4 +1,5 @@
-using WCS.Entity.Protocol.RGV;
+using System;
+using WCS.Entity.Protocol.RGV;
 
 namespace WCS.Entity.Protocol
 {
@@ -45,44 +46,9 @@ namespace WCS.Entity.Protocol
         short RES2_1 { get; set; }
 
         /// <summary>
-        /// 光电有货状态
+        /// 一工位状态
         /// </summary>
-        bool PH_Status_1 { get; set; }
-
-        /// <summary>
-        /// RGV到站
-        /// </summary>
-        bool ToSition_1 { get; set; }
-
-        /// <summary>
-        /// 任务完成
-        /// </summary>
-        bool Finish_1 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES3_1 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES4_1 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES5_1 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES6_1 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES7_1 { get; set; }
+        RGVStatus Status_1 { get; set; }
 
         /// <summary>
         /// 触发信号 在通讯协议中为VoucherNo_1
@@ -129,44 +95,9 @@ namespace WCS.Entity.Protocol
         short RES2_2 { get; set; }
 
         /// <summary>
-        /// 光电有货状态
-        /// </summary>
-        bool PH_Status_2 { get; set; }
-
-        /// <summary>
-        /// RGV到站
+        /// 一工位状态
         /// </summary>
-        bool ToSition_2 { get; set; }
-
-        /// <summary>
-        /// 任务完成
-        /// </summary>
-        bool Finish_2 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES3_2 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES4_2 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES5_2 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES6_2 { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        bool RES7_2 { get; set; }
+        RGVStatus Status_2 { get; set; }
 
         /// <summary>
         /// 触发信号 在通讯协议中为VoucherNo_1
@@ -187,6 +118,11 @@ namespace WCS.Entity.Protocol
         /// </summary>
         RGVMode WorkMode { get; set; }
 
+        /// <summary>
+        /// 备用6
+        /// </summary>
+        short RES6 { get; set; }
+
         /// <summary>
         /// 位置
         /// </summary>
@@ -207,4 +143,25 @@ namespace WCS.Entity.Protocol
 
         #endregion 共用
     }
+
+    [Flags]
+    public enum RGVStatus : ushort
+    {
+        光电 = 1 << 0,
+        RGV到站 = 1 << 1,
+        任务完成 = 1 << 2,
+        备用 = 1 << 3,
+        备用9 = 1 << 4,
+        备用10 = 1 << 5,
+        备用11 = 1 << 6,
+        备用12 = 1 << 7,
+        备用1 = 1 << 8,
+        备用2 = 1 << 9,
+        备用3 = 1 << 10,
+        备用4 = 1 << 11,
+        备用5 = 1 << 12,
+        备用6 = 1 << 13,
+        备用7 = 1 << 14,
+        备用8 = 1 << 15,
+    }
 }

+ 19 - 55
Projects/永冠OPP/WCS.Entity.Protocol/RGV/WCS_RGV521.cs

@@ -30,94 +30,58 @@ namespace WCS.Entity.Protocol
         [DataMember(Order = 6)]
         public short RES2_1 { get; set; }
 
+        /// <summary>
+        ///
+        /// </summary>
         [DataMember(Order = 7)]
-        public bool PH_Status_1 { get; set; }
+        public RGVStatus Status_1 { get; set; }
 
         [DataMember(Order = 8)]
-        public bool ToSition_1 { get; set; }
+        public int Trigger_1 { get; set; }
 
         [DataMember(Order = 9)]
-        public bool Finish_1 { get; set; }
+        public int TaskID_2 { get; set; }
 
         [DataMember(Order = 10)]
-        public bool RES3_1 { get; set; }
+        public RGVTaskType TaskType_2 { get; set; }
 
         [DataMember(Order = 11)]
-        public bool RES4_1 { get; set; }
+        public short StartPosition_2 { get; set; }
 
         [DataMember(Order = 12)]
-        public bool RES5_1 { get; set; }
+        public short DestPosition_2 { get; set; }
 
         [DataMember(Order = 13)]
-        public bool RES6_1 { get; set; }
+        public short PRIORITY_2 { get; set; }
 
         [DataMember(Order = 14)]
-        public bool RES7_1 { get; set; }
+        public short RES1_2 { get; set; }
 
         [DataMember(Order = 15)]
-        public int Trigger_1 { get; set; }
+        public short RES2_2 { get; set; }
 
         [DataMember(Order = 16)]
-        public int TaskID_2 { get; set; }
+        public RGVStatus Status_2 { get; set; }
 
         [DataMember(Order = 17)]
-        public RGVTaskType TaskType_2 { get; set; }
+        public int Trigger_2 { get; set; }
 
         [DataMember(Order = 18)]
-        public short StartPosition_2 { get; set; }
+        public RGVRunStatus SystemStatus { get; set; }
 
         [DataMember(Order = 19)]
-        public short DestPosition_2 { get; set; }
+        public RGVMode WorkMode { get; set; }
 
         [DataMember(Order = 20)]
-        public short PRIORITY_2 { get; set; }
+        public short RES6 { get; set; }
 
         [DataMember(Order = 21)]
-        public short RES1_2 { get; set; }
-
-        [DataMember(Order = 22)]
-        public short RES2_2 { get; set; }
-
-        [DataMember(Order = 21)]
-        public bool PH_Status_2 { get; set; }
-
-        [DataMember(Order = 22)]
-        public bool ToSition_2 { get; set; }
-
-        [DataMember(Order = 23)]
-        public bool Finish_2 { get; set; }
-
-        [DataMember(Order = 24)]
-        public bool RES3_2 { get; set; }
-
-        [DataMember(Order = 25)]
-        public bool RES4_2 { get; set; }
-
-        [DataMember(Order = 26)]
-        public bool RES5_2 { get; set; }
-
-        [DataMember(Order = 27)]
-        public bool RES6_2 { get; set; }
-
-        [DataMember(Order = 28)]
-        public bool RES7_2 { get; set; }
-
-        [DataMember(Order = 29)]
-        public int Trigger_2 { get; set; }
-
-        [DataMember(Order = 30)]
-        public RGVRunStatus SystemStatus { get; set; }
-
-        [DataMember(Order = 31)]
-        public RGVMode WorkMode { get; set; }
-
-        [DataMember(Order = 32)]
         public float Position { get; set; }
 
-        [DataMember(Order = 33)]
+        [DataMember(Order = 22)]
         public float Mileage { get; set; }
 
-        [DataMember(Order = 34)]
+        [DataMember(Order = 23)]
         public float Runtime { get; set; }
     }
 }

+ 2010 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220430065045_12.Designer.cs

@@ -0,0 +1,2010 @@
+// <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("20220430065045_12")]
+    partial class _12
+    {
+        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<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_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>("Finish_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("Finish_2")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("ISLAST")
+                        .HasColumnType("bit");
+
+                    b.Property<float>("Mileage")
+                        .HasColumnType("real");
+
+                    b.Property<bool>("PH_Status_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("PH_Status_2")
+                        .HasColumnType("bit");
+
+                    b.Property<short>("PRIORITY_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("PRIORITY_2")
+                        .HasColumnType("smallint");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("int");
+
+                    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<bool>("RES3_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES3_2")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES4_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES4_2")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES5_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES5_2")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES6_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES6_2")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES7_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("RES7_2")
+                        .HasColumnType("bit");
+
+                    b.Property<float>("Runtime")
+                        .HasColumnType("real");
+
+                    b.Property<short>("StartPosition_1")
+                        .HasColumnType("smallint");
+
+                    b.Property<short>("StartPosition_2")
+                        .HasColumnType("smallint");
+
+                    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<bool>("ToSition_1")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("ToSition_2")
+                        .HasColumnType("bit");
+
+                    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_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<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<string>("ManualRemarks")
+                        .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");
+                });
+
+            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
+        }
+    }
+}

+ 41 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220430065045_12.cs

@@ -0,0 +1,41 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    public partial class _12 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            //migrationBuilder.RenameColumn(
+            //    name: "Istation521Status",
+            //    table: "WCS_STATION521",
+            //    newName: "Status");
+
+            migrationBuilder.AlterColumn<int>(
+                name: "Position",
+                table: "WCS_RGV521",
+                type: "int",
+                nullable: false,
+                oldClrType: typeof(float),
+                oldType: "real");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            //migrationBuilder.RenameColumn(
+            //    name: "Status",
+            //    table: "WCS_STATION521",
+            //    newName: "Istation521Status");
+
+            migrationBuilder.AlterColumn<float>(
+                name: "Position",
+                table: "WCS_RGV521",
+                type: "real",
+                nullable: false,
+                oldClrType: typeof(int),
+                oldType: "int");
+        }
+    }
+}

+ 1968 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220430083606_13.Designer.cs

@@ -0,0 +1,1968 @@
+// <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("20220430083606_13")]
+    partial class _13
+    {
+        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<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_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<int>("Position")
+                        .HasColumnType("int");
+
+                    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<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_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<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<string>("ManualRemarks")
+                        .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");
+                });
+
+            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
+        }
+    }
+}

+ 213 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220430083606_13.cs

@@ -0,0 +1,213 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    public partial class _13 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "Finish_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "Finish_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "PH_Status_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "PH_Status_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES3_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES3_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES4_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES4_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES5_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES5_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES6_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES6_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES7_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "RES7_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "ToSition_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "ToSition_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.AddColumn<int>(
+                name: "Status_1",
+                table: "WCS_RGV521",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+
+            migrationBuilder.AddColumn<int>(
+                name: "Status_2",
+                table: "WCS_RGV521",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "Status_1",
+                table: "WCS_RGV521");
+
+            migrationBuilder.DropColumn(
+                name: "Status_2",
+                table: "WCS_RGV521");
+
+            migrationBuilder.AddColumn<bool>(
+                name: "Finish_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "Finish_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "PH_Status_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "PH_Status_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES3_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES3_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES4_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES4_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES5_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES5_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES6_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES6_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES7_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "RES7_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "ToSition_1",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "ToSition_2",
+                table: "WCS_RGV521",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+        }
+    }
+}

+ 1968 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220501045239_14.Designer.cs

@@ -0,0 +1,1968 @@
+// <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("20220501045239_14")]
+    partial class _14
+    {
+        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<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_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<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_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<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<string>("ManualRemarks")
+                        .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");
+                });
+
+            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
+        }
+    }
+}

+ 31 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220501045239_14.cs

@@ -0,0 +1,31 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    public partial class _14 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AlterColumn<float>(
+                name: "Position",
+                table: "WCS_RGV521",
+                type: "real",
+                nullable: false,
+                oldClrType: typeof(int),
+                oldType: "int");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AlterColumn<int>(
+                name: "Position",
+                table: "WCS_RGV521",
+                type: "int",
+                nullable: false,
+                oldClrType: typeof(float),
+                oldType: "real");
+        }
+    }
+}

+ 1971 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220501070420_15.Designer.cs

@@ -0,0 +1,1971 @@
+// <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("20220501070420_15")]
+    partial class _15
+    {
+        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<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_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_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<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<string>("ManualRemarks")
+                        .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");
+                });
+
+            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
+        }
+    }
+}

+ 26 - 0
Projects/永冠OPP/WCS.Service/Migrations/20220501070420_15.cs

@@ -0,0 +1,26 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WCS.Service.Migrations
+{
+    public partial class _15 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<short>(
+                name: "RES6",
+                table: "WCS_RGV521",
+                type: "smallint",
+                nullable: false,
+                defaultValue: (short)0);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "RES6",
+                table: "WCS_RGV521");
+        }
+    }
+}

+ 13 - 54
Projects/永冠OPP/WCS.Service/Migrations/WCSDBModelSnapshot.cs

@@ -17,7 +17,7 @@ namespace WCS.Service.Migrations
         {
 #pragma warning disable 612, 618
             modelBuilder
-                .HasAnnotation("ProductVersion", "6.0.3")
+                .HasAnnotation("ProductVersion", "6.0.4")
                 .HasAnnotation("Relational:MaxIdentifierLength", 128);
 
             SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -183,12 +183,12 @@ namespace WCS.Service.Migrations
                     b.Property<bool>("ISLAST")
                         .HasColumnType("bit");
 
-                    b.Property<int>("Istation521Status")
-                        .HasColumnType("int");
-
                     b.Property<short>("Request")
                         .HasColumnType("smallint");
 
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
                     b.Property<int>("Tasknum")
                         .HasColumnType("int");
 
@@ -466,24 +466,12 @@ namespace WCS.Service.Migrations
                     b.Property<DateTime>("FRAME")
                         .HasColumnType("datetime2");
 
-                    b.Property<bool>("Finish_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("Finish_2")
-                        .HasColumnType("bit");
-
                     b.Property<bool>("ISLAST")
                         .HasColumnType("bit");
 
                     b.Property<float>("Mileage")
                         .HasColumnType("real");
 
-                    b.Property<bool>("PH_Status_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("PH_Status_2")
-                        .HasColumnType("bit");
-
                     b.Property<short>("PRIORITY_1")
                         .HasColumnType("smallint");
 
@@ -505,35 +493,8 @@ namespace WCS.Service.Migrations
                     b.Property<short>("RES2_2")
                         .HasColumnType("smallint");
 
-                    b.Property<bool>("RES3_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES3_2")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES4_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES4_2")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES5_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES5_2")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES6_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES6_2")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES7_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("RES7_2")
-                        .HasColumnType("bit");
+                    b.Property<short>("RES6")
+                        .HasColumnType("smallint");
 
                     b.Property<float>("Runtime")
                         .HasColumnType("real");
@@ -544,6 +505,12 @@ namespace WCS.Service.Migrations
                     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");
 
@@ -559,12 +526,6 @@ namespace WCS.Service.Migrations
                     b.Property<short>("TaskType_2")
                         .HasColumnType("smallint");
 
-                    b.Property<bool>("ToSition_1")
-                        .HasColumnType("bit");
-
-                    b.Property<bool>("ToSition_2")
-                        .HasColumnType("bit");
-
                     b.Property<int>("Trigger_1")
                         .HasColumnType("int");
 
@@ -1937,7 +1898,7 @@ namespace WCS.Service.Migrations
             modelBuilder.Entity("WCS.Entity.WCS_PATHPOINT", b =>
                 {
                     b.HasOne("WCS.Entity.WCS_DEVICE", "DEVICE")
-                        .WithMany("PATHPOINTS")
+                        .WithMany()
                         .HasForeignKey("DEVICECODE")
                         .OnDelete(DeleteBehavior.Restrict)
                         .IsRequired();
@@ -1996,8 +1957,6 @@ namespace WCS.Service.Migrations
                 {
                     b.Navigation("DEVICEGROUP");
 
-                    b.Navigation("PATHPOINTS");
-
                     b.Navigation("PATHS");
 
                     b.Navigation("PROTOCOLS");