From f55c2a5b2f1c9d3aad310766b8281f4b7f7c1ded Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期四, 22 八月 2024 12:06:56 +0800
Subject: [PATCH] 优化包装逻辑

---
 Tiger.Business/MES/Biz.WorkStep.cs |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/Tiger.Business/MES/Biz.WorkStep.cs b/Tiger.Business/MES/Biz.WorkStep.cs
index 332be9e..dfff6ea 100644
--- a/Tiger.Business/MES/Biz.WorkStep.cs
+++ b/Tiger.Business/MES/Biz.WorkStep.cs
@@ -10,12 +10,8 @@
 using System.Linq;
 using Newtonsoft.Json;
 using Tiger.IBusiness;
-using Microsoft.AspNetCore.Http;
 using Tiger.Business.MES;
-using Org.BouncyCastle.Ocsp;
 using Tiger.Model.Entitys.MES.Position;
-using static Tiger.Business.Biz;
-using System.ComponentModel;
 
 namespace Tiger.Business
 {
@@ -24,38 +20,70 @@
         /// <summary>
         /// 宸ユ
         /// </summary>
-        public partial class WorkStep
+        public partial class WorkStep : IWorkStep
         {
-            public WorkStep(string id, Types type)
+            public WorkStep(IWorkStep.Types type, IPosition position)
             {
-                ID = id;
                 Type = type;
+                CurPosition = position;
             }
 
             #region Propertys & Variables
             public string ID { get; set; } = Guid.NewGuid().ToString("N");
-            public enum Types { Node, Action }
-            public Types Type { get; set; }
-            public int Sequence { get; set; }
-            //public bool IsFinished { get; set; } = false;
+            
+            public IWorkStep.Types Type { get; set; }
             public MES_WO_NODE Node { get; set; }
             public MES_WO_NODE_ACT NodeAct { get; set; }
             public MES_WO_ACTION Setting { get; set; }
             public IPosition CurPosition { get; set; }
             public IWorkAction CurAction { get; set; }
-            public bool IsFinished => (Type == Types.Action && CurAction.IsFinished) || Type == Types.Node;
+            public int Sequence { get; set; }
+            public List<string> PrepNodeIDs { get; set; } = new();
+            public string NodeID => Type == IWorkStep.Types.Action ? NodeAct.ID : Node.ID;
+            private bool _IsFinished = false;
+            public bool IsFinished
+            {
+                get => Type == IWorkStep.Types.Action ? CurAction.IsFinished : _IsFinished; 
+                set { _IsFinished = value; }
+            }
             public Action DBSubmitAction { get; set; } = () => { };
             #endregion
 
             #region Functions
-            public ApiAction<SubmitOutput> Begin(IPosition position)
+            /// <summary>
+            /// 鍒濆鍖栧伐姝�
+            /// </summary>
+            /// <returns></returns>
+            public void Init()
             {
-                CurPosition = position;
                 CurAction = DI.Resolve(NodeAct.Definition.SERVICE_TYPE) as IWorkAction;
                 //CurAction = DI.Resolve("Tiger.IBusiness.IPrintLabel,Tiger.IBusiness") as IWorkAction;
-                return CurAction.Begin(ID, position, NodeAct, Setting);
+                CurAction.Init(this, CurPosition, NodeAct, Setting);
             }
 
+            /// <summary>
+            /// 灏濊瘯寮�濮嬫墽琛屽伐姝�
+            /// </summary>
+            /// <returns></returns>
+            public ApiAction<SubmitOutput> TryBegin(SubmitInput input)
+            {
+                return CurAction.TryBegin(input);
+            }
+
+            /// <summary>
+            /// 鑾峰彇琛屼负寮�濮嬬殑鎻愮ず淇℃伅
+            /// </summary>
+            /// <returns></returns>
+            public Locale GetBeginMsg()
+            {
+                return CurAction.GetBeginMsg();
+            }
+
+            /// <summary>
+            /// 宸ユ鎻愪氦鏁版嵁
+            /// </summary>
+            /// <param name="input"></param>
+            /// <returns></returns>
             public ApiAction<SubmitOutput> Submit(SubmitInput input)
             {
                 return CurAction.Submit(input);

--
Gitblit v1.9.3