From 4815ba8990b60ff879b99fec6e77cb73470bdccb Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期五, 19 七月 2024 15:24:25 +0800
Subject: [PATCH] 过站判断当前班次时段并保存

---
 Tiger.Business.MES/Transaction/CollectNode.cs                    |   10 +
 Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs                     |   76 +++++++-------
 Tiger.Business.MES/Transaction/PackingNode.cs                    |   10 +
 Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs                   |    2 
 Tiger.Business.MES/Transaction/Position.cs                       |   25 +++++
 Tiger.Business/MES/Biz.WorkBatch.cs                              |   29 +++++
 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs |    6 +
 Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs                         |   88 +++++++++--------
 Tiger.Business.MES/Transaction/TestNode.cs                       |   10 +
 9 files changed, 165 insertions(+), 91 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/CollectNode.cs b/Tiger.Business.MES/Transaction/CollectNode.cs
index c9bc4ea..b1527ff 100644
--- a/Tiger.Business.MES/Transaction/CollectNode.cs
+++ b/Tiger.Business.MES/Transaction/CollectNode.cs
@@ -205,9 +205,13 @@
                     wipSN.OPER_CODE = curNode.OPER_CODE;
                     wipSN.SEGMENT = curNode.SEGMENT;
                     wipSN.OPERATION_TIME = DateTime.Now;
-                    wipSN.SFTS_CODE = CurLine.SFTS_CODE;
-                    //wipSN.SFT_CODE = CurBatch.WO.ROUTE_CODE;
-                    //wipSN.PRD_CODE = CurBatch.WO.ROUTE_CODE;
+                    var curShiftPeriod = GetShiftPeriodForNow();
+                    if (!curShiftPeriod.IsNullOrEmpty())
+                    {
+                        wipSN.SFTS_CODE = curShiftPeriod.ShiftSys.SFTS_CODE;
+                        wipSN.SFT_CODE = curShiftPeriod.Shift.SFT_CODE;
+                        wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE;
+                    }
                     CurBatch.StartWorking(UserCode);
 
                     //濡傛灉鏄姇鍏ョ珯
diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs
index 5be4048..a1c08f5 100644
--- a/Tiger.Business.MES/Transaction/PackingNode.cs
+++ b/Tiger.Business.MES/Transaction/PackingNode.cs
@@ -205,9 +205,13 @@
 	                wipSN.OPER_CODE = curNode.OPER_CODE;
 	                wipSN.SEGMENT = curNode.SEGMENT;
 	                wipSN.OPERATION_TIME = DateTime.Now;
-	                wipSN.SFTS_CODE = CurLine.SFTS_CODE;
-	                //wipSN.SFT_CODE = CurBatch.WO.ROUTE_CODE;
-	                //wipSN.PRD_CODE = CurBatch.WO.ROUTE_CODE;
+                    var curShiftPeriod = GetShiftPeriodForNow();
+                    if (!curShiftPeriod.IsNullOrEmpty())
+                    {
+	                    wipSN.SFTS_CODE = curShiftPeriod.ShiftSys.SFTS_CODE;
+		                wipSN.SFT_CODE = curShiftPeriod.Shift.SFT_CODE;
+		                wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE;
+                    }
 	                CurBatch.StartWorking(UserCode);
 	
 	                //濡傛灉鏄姇鍏ョ珯
diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index fd494ab..dbcd9fd 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -39,6 +39,9 @@
             //if (CurFactory.IsNullOrEmpty()) throw new InvalidDataException($"MES.Transaction.Position.FactoryNotExistsException", new Exception($"{postCode}|{CurWorkshop.FTY_CODE}"));
             if (CurFactory.IsNullOrEmpty()) throw new InvalidDataException($"宀椾綅[{postCode}]鎵�灞炵殑宸ュ巶[{CurWorkshop.FTY_CODE}]涓嶅瓨鍦紝璇峰厛璁剧疆鎵�灞炲伐鍘�", new Exception($"{postCode}|{CurWorkshop.FTY_CODE}"));
 
+            //鍔犺浇褰撳墠浜х嚎鐨勭彮鍒�
+            CurShiftSys = Biz.Db.Queryable<MES_SHIFT_SYS>().Where(q => q.SFTS_CODE == CurLine.SFTS_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Shifts).First();
+
             return this;
         }
 
@@ -49,6 +52,7 @@
         public MES_WORKSHOP CurWorkshop { get; set; }
         public MES_LINE CurLine { get; set; }
         public MES_POSITION CurPosition { get; set; }
+        public MES_SHIFT_SYS CurShiftSys { get; set; }
         public WorkBatch CurBatch { get; set; }
         public IWorkBatch WorkBatch => CurBatch;
         public MES_WIP_DATA CurWipSN { get; set; }
@@ -121,6 +125,27 @@
         }
 
         /// <summary>
+        /// 鑾峰彇褰撳墠鏃堕棿鎵�灞炵殑鐝埗鐝鏃舵
+        /// </summary>
+        public ShiftPeriod GetShiftPeriodForNow()
+        {
+            var time = DateTime.Now.ToString("HHmm").ToInt32();
+            foreach (var shift in CurShiftSys.Shifts)
+            {
+                var period = shift.Periods.Where(q => q.PRD_BEGIN <= time && time <= q.PRD_END).FirstOrDefault();
+                if (!period.IsNullOrEmpty())
+                {
+                    var result = new ShiftPeriod();
+                    result.ShiftSys = CurShiftSys;
+                    result.Shift = shift;
+                    result.Period = period;
+                    return result;
+                }
+            }
+            return null;
+        }
+
+        /// <summary>
         /// 閲嶇疆褰撳墠宸ユ
         /// </summary>
         public void ResetSteps()
diff --git a/Tiger.Business.MES/Transaction/TestNode.cs b/Tiger.Business.MES/Transaction/TestNode.cs
index 3e2ad80..450b654 100644
--- a/Tiger.Business.MES/Transaction/TestNode.cs
+++ b/Tiger.Business.MES/Transaction/TestNode.cs
@@ -206,9 +206,13 @@
                     wipSN.OPER_CODE = curNode.OPER_CODE;
                     wipSN.SEGMENT = curNode.SEGMENT;
                     wipSN.OPERATION_TIME = DateTime.Now;
-                    wipSN.SFTS_CODE = CurLine.SFTS_CODE;
-                    //wipSN.SFT_CODE = CurBatch.WO.ROUTE_CODE;
-                    //wipSN.PRD_CODE = CurBatch.WO.ROUTE_CODE;
+                    var curShiftPeriod = GetShiftPeriodForNow();
+                    if (!curShiftPeriod.IsNullOrEmpty())
+                    {
+                        wipSN.SFTS_CODE = curShiftPeriod.ShiftSys.SFTS_CODE;
+                        wipSN.SFT_CODE = curShiftPeriod.Shift.SFT_CODE;
+                        wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE;
+                    }
                     CurBatch.StartWorking(UserCode);
 
                     //濡傛灉鏄姇鍏ョ珯
diff --git a/Tiger.Business/MES/Biz.WorkBatch.cs b/Tiger.Business/MES/Biz.WorkBatch.cs
index 28e9b99..bc5be89 100644
--- a/Tiger.Business/MES/Biz.WorkBatch.cs
+++ b/Tiger.Business/MES/Biz.WorkBatch.cs
@@ -78,7 +78,7 @@
             /// <returns></returns>
             public bool StartWorking(string user)
             {
-                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue() || Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue())
+                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue())
                 {
 	                WO.STATUS = BIZ_MES_WO.STATUSs.Working.GetValue();
 	                WO.ACT_START_TIME = WO.ACT_START_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : WO.ACT_START_TIME;
@@ -101,6 +101,33 @@
             }
 
             /// <summary>
+            /// 宸ュ崟鏆傚仠
+            /// </summary>
+            /// <param name="user"></param>
+            /// <returns></returns>
+            public bool PausedWorking(string user)
+            {
+                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())
+                {
+                    WO.STATUS = BIZ_MES_WO.STATUSs.Paused.GetValue();
+                    Batch.STATUS = BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue();
+                    //淇濆瓨鏁版嵁搴�
+                    var db = Biz.Db;
+                    var dbTran = db.UseTran(() =>
+                    {
+                        db.Updateable(WO, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand();
+                        db.Updateable(Batch, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand();
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        //throw dbTran.ErrorException;
+                        return false;
+                    }
+                }
+                return true;
+            }
+
+            /// <summary>
             /// 鏍规嵁宀椾綅缂栫爜鍒ゆ柇鏄笉鏄绔�
             /// </summary>
             /// <param name="postCode"></param>
diff --git a/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs b/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs
index 88ffe4d..4cdf10f 100644
--- a/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs
+++ b/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs
@@ -7,95 +7,97 @@
 namespace Tiger.Model
 {
 	/// <summary>
-	/// 实体:班次
+	/// 瀹炰綋锛氱彮娆�
 	/// </summary>
 	[Description("Primary:ID")]
-	[DisplayName("班次")]
+	[DisplayName("鐝")]
 	[Serializable]
 	[SugarTable("MES_SHIFT")]
 	public class MES_SHIFT : DbEntityWithAuth
 	{
-		#region 构造函数
+		#region 鏋勯�犲嚱鏁�
 		/// <summary>
-		/// 实体:班次
+		/// 瀹炰綋锛氱彮娆�
 		/// </summary>
 		public MES_SHIFT() {}
 		#endregion
 
-		#region 公共属性
+		#region 鍏叡灞炴��
 		/// <summary>
-		/// 班次编码
+		/// 鐝缂栫爜
 		/// </summary>
-		[DisplayName("班次编码")]
+		[DisplayName("鐝缂栫爜")]
 		public string SFT_CODE { get; set; }
 		/// <summary>
-		/// 班次名称
+		/// 鐝鍚嶇О
 		/// </summary>
-		[DisplayName("班次名称")]
+		[DisplayName("鐝鍚嶇О")]
 		public string SFT_NAME { get; set; }
 		/// <summary>
-		/// 班制编码
+		/// 鐝埗缂栫爜
 		/// </summary>
-		[DisplayName("班制编码")]
+		[DisplayName("鐝埗缂栫爜")]
 		public string SFTS_CODE { get; set; }
 		/// <summary>
-		/// 班次开始时间
+		/// 鐝寮�濮嬫椂闂�
 		/// </summary>
-		[DisplayName("班次开始时间")]
+		[DisplayName("鐝寮�濮嬫椂闂�")]
 		public int SFT_BEGIN { get; set; }
 		/// <summary>
-		/// 班次结束时间
+		/// 鐝缁撴潫鏃堕棿
 		/// </summary>
-		[DisplayName("班次结束时间")]
+		[DisplayName("鐝缁撴潫鏃堕棿")]
 		public int SFT_END { get; set; }
 		/// <summary>
-		/// 是否跨天(Y/N)
+		/// 鏄惁璺ㄥぉ(Y/N)
 		/// </summary>
-		[DisplayName("是否跨天(Y/N)")]
+		[DisplayName("鏄惁璺ㄥぉ(Y/N)")]
 		public string IS_ACROSS_DAY { get; set; }
 		/// <summary>
-		/// 备注
+		/// 澶囨敞
 		/// </summary>
-		[DisplayName("备注")]
+		[DisplayName("澶囨敞")]
 		public string REMARK { get; set; }
-		#endregion
+        #endregion
 
-		#region 虚拟属性
-		/*例子
+        #region 铏氭嫙灞炴��
+        /*渚嬪瓙
 		[SugarColumn(IsIgnore = true)]
 		public string FieldName { get; set; }
 		*/
-		#endregion
+        #endregion
 
-		#region 外键属性
-		/*例子
-		//一对一外键导航
-		[Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_SHIFT类里面的外键ID字段
-		public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
-		//一对多外键导航
-		[Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFTId))]//ClassA表中的MES_SHIFTId
-		public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
-		//多对多外键导航
-		[Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFTId), nameof(MappingClass.ClassAId))]//注意顺序
-		public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
+        #region 澶栭敭灞炴��
+        /*渚嬪瓙
+		//涓�瀵逛竴澶栭敭瀵艰埅
+		[Navigate(NavigateType.OneToOne, nameof(ClassAId))]//涓�瀵逛竴 ClassAId鏄疢ES_SHIFT绫婚噷闈㈢殑澶栭敭ID瀛楁
+		public ClassA ClassA { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+		//涓�瀵瑰澶栭敭瀵艰埅
+		[Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFTId))]//ClassA琛ㄤ腑鐨凪ES_SHIFTId
+		public List<ClassA> ClassAList { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+		//澶氬澶氬閿鑸�
+		[Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFTId), nameof(MappingClass.ClassAId))]//娉ㄦ剰椤哄簭
+		public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
 		*/
-		#endregion
+        [Navigate(NavigateType.OneToMany, nameof(MES_SHIFT_PRD.SFT_CODE), nameof(SFT_CODE), "GHOST_ROW = 0")]//ClassA琛ㄤ腑鐨凚AS_DEFECT_GRPId
+        public List<MES_SHIFT_PRD> Periods { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+        #endregion
 
-		#region 枚举变量
-		/*例子
+        #region 鏋氫妇鍙橀噺
+        /*渚嬪瓙
 		public enum FieldNames
 		{
-			[Description("枚举描述0")]
+			[Description("鏋氫妇鎻忚堪0")]
 			Enum0,
-			[Description("枚举描述1")]
+			[Description("鏋氫妇鎻忚堪1")]
 			Enum1,
 		}
 		*/
-		#endregion
+        #endregion
 
-		#region 公共方法
+        #region 鍏叡鏂规硶
 
-		#endregion
+        #endregion
 
-	}//endClass
+    }//endClass
 }
\ No newline at end of file
diff --git a/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs
index 397b294..d627846 100644
--- a/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs
+++ b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs
@@ -7,80 +7,82 @@
 namespace Tiger.Model
 {
 	/// <summary>
-	/// 实体:班制
+	/// 瀹炰綋锛氱彮鍒�
 	/// </summary>
 	[Description("Primary:ID")]
-	[DisplayName("班制")]
+	[DisplayName("鐝埗")]
 	[Serializable]
 	[SugarTable("MES_SHIFT_SYS")]
 	public class MES_SHIFT_SYS : DbEntityWithAuth
 	{
-		#region 构造函数
+		#region 鏋勯�犲嚱鏁�
 		/// <summary>
-		/// 实体:班制
+		/// 瀹炰綋锛氱彮鍒�
 		/// </summary>
 		public MES_SHIFT_SYS() {}
 		#endregion
 
-		#region 公共属性
+		#region 鍏叡灞炴��
 		/// <summary>
-		/// 班制编码
+		/// 鐝埗缂栫爜
 		/// </summary>
-		[DisplayName("班制编码")]
+		[DisplayName("鐝埗缂栫爜")]
 		public string SFTS_CODE { get; set; }
 		/// <summary>
-		/// 班制名称
+		/// 鐝埗鍚嶇О
 		/// </summary>
-		[DisplayName("班制名称")]
+		[DisplayName("鐝埗鍚嶇О")]
 		public string SFTS_NAME { get; set; }
 		/// <summary>
-		/// 是否启用(Y/N)
+		/// 鏄惁鍚敤(Y/N)
 		/// </summary>
-		[DisplayName("是否启用(Y/N)")]
+		[DisplayName("鏄惁鍚敤(Y/N)")]
 		public string IS_ACTIVE { get; set; }
 		/// <summary>
-		/// 备注
+		/// 澶囨敞
 		/// </summary>
-		[DisplayName("备注")]
+		[DisplayName("澶囨敞")]
 		public string REMARK { get; set; }
-		#endregion
+        #endregion
 
-		#region 虚拟属性
-		/*例子
+        #region 铏氭嫙灞炴��
+        /*渚嬪瓙
 		[SugarColumn(IsIgnore = true)]
 		public string FieldName { get; set; }
 		*/
-		#endregion
+        #endregion
 
-		#region 外键属性
-		/*例子
-		//一对一外键导航
-		[Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_SHIFT_SYS类里面的外键ID字段
-		public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
-		//一对多外键导航
-		[Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFT_SYSId))]//ClassA表中的MES_SHIFT_SYSId
-		public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
-		//多对多外键导航
-		[Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFT_SYSId), nameof(MappingClass.ClassAId))]//注意顺序
-		public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
+        #region 澶栭敭灞炴��
+        /*渚嬪瓙
+		//涓�瀵逛竴澶栭敭瀵艰埅
+		[Navigate(NavigateType.OneToOne, nameof(ClassAId))]//涓�瀵逛竴 ClassAId鏄疢ES_SHIFT_SYS绫婚噷闈㈢殑澶栭敭ID瀛楁
+		public ClassA ClassA { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+		//涓�瀵瑰澶栭敭瀵艰埅
+		[Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFT_SYSId))]//ClassA琛ㄤ腑鐨凪ES_SHIFT_SYSId
+		public List<ClassA> ClassAList { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+		//澶氬澶氬閿鑸�
+		[Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFT_SYSId), nameof(MappingClass.ClassAId))]//娉ㄦ剰椤哄簭
+		public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
 		*/
-		#endregion
+        [Navigate(NavigateType.OneToMany, nameof(MES_SHIFT.SFTS_CODE), nameof(SFTS_CODE), "GHOST_ROW = 0")]//ClassA琛ㄤ腑鐨凚AS_DEFECT_GRPId
+        public List<MES_SHIFT> Shifts { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
+        #endregion
 
-		#region 枚举变量
-		/*例子
+        #region 鏋氫妇鍙橀噺
+        /*渚嬪瓙
 		public enum FieldNames
 		{
-			[Description("枚举描述0")]
+			[Description("鏋氫妇鎻忚堪0")]
 			Enum0,
-			[Description("枚举描述1")]
+			[Description("鏋氫妇鎻忚堪1")]
 			Enum1,
 		}
 		*/
-		#endregion
+        #endregion
 
-		#region 公共方法
+        #region 鍏叡鏂规硶
 
-		#endregion
+        #endregion
 
-	}//endClass
+    }//endClass
 }
\ No newline at end of file
diff --git a/Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs b/Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs
index f609fae..3c82390 100644
--- a/Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs
+++ b/Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs
@@ -154,7 +154,7 @@
 		[Navigate(typeof(MappingClass), nameof(MappingClass.MES_WO_NODE_ACTId), nameof(MappingClass.ClassAId))]//娉ㄦ剰椤哄簭
 		public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
 		*/
-        [Navigate(NavigateType.OneToOne, nameof(ACT_CODE), nameof(MES_CUSTOM_ACT.ACT_CODE))]//涓�瀵逛竴 ClassAId鏄疢ES_WO_NODE_ACT绫婚噷闈㈢殑澶栭敭ID瀛楁
+        [Navigate(NavigateType.OneToOne, nameof(ACT_CODE), nameof(MES_CUSTOM_ACT.ACT_CODE), "GHOST_ROW = 0")]//涓�瀵逛竴 ClassAId鏄疢ES_WO_NODE_ACT绫婚噷闈㈢殑澶栭敭ID瀛楁
         public MES_CUSTOM_ACT Definition { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull
         #endregion
 
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
index d42ab64..602edec 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
@@ -11,6 +11,12 @@
         public string USER_CODE { get; set; }
         public string POST_CODE { get; set; }
     }
+    public class ShiftPeriod
+    {
+        public MES_SHIFT_SYS ShiftSys { get; set; }
+        public MES_SHIFT Shift { get; set; }
+        public MES_SHIFT_PRD Period { get; set; }
+    }
 
     public class WoInput : ApiInput
     {

--
Gitblit v1.9.3