From 56f5b01b7fce60a659f18f7c840c0867cd42067a Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 01 四月 2025 23:48:47 +0800
Subject: [PATCH] 新增审核和确认接口,优化登录逻辑

---
 Tiger.Business.MES/Common/WorkStep.cs |   66 +++++++++++++++++++++++++++++++-
 1 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/Tiger.Business.MES/Common/WorkStep.cs b/Tiger.Business.MES/Common/WorkStep.cs
index 3ca316e..16e993e 100644
--- a/Tiger.Business.MES/Common/WorkStep.cs
+++ b/Tiger.Business.MES/Common/WorkStep.cs
@@ -11,6 +11,7 @@
 using Newtonsoft.Json;
 using Tiger.IBusiness;
 using Tiger.Model.Entitys.MES.Position;
+using Tiger.Business.MES.Transaction;
 
 namespace Tiger.Business
 {
@@ -38,9 +39,16 @@
         public MES_WO_ACTION ActSetting { get; set; }
         public IPosition CurPosition { get; set; }
         public IWorkAction CurAction { get; set; }
+        public Dictionary<string, string> ActionDic { get; set; } = new();
         public int Sequence { get; set; }
         public List<string> PrepNodeIDs { get; set; } = new();
         public string NodeID => NodeType == IWorkStep.NodeTypes.Action ? NodeAct.ID : Node.ID;
+        private bool _IsActive = true;
+        public bool IsActive
+        {
+            get => NodeType == IWorkStep.NodeTypes.Action ? ActSetting.IS_ACTIVE == "Y" : _IsActive;
+            set { _IsActive = value; }
+        }
         private bool _IsFinished = false;
         public bool IsFinished
         {
@@ -69,6 +77,10 @@
         {
             CurAction = DI.Resolve(NodeAct.Definition.SERVICE_TYPE) as IWorkAction;
             //CurAction = DI.Resolve("Tiger.IBusiness.IPrintLabel,Tiger.IBusiness") as IWorkAction;
+
+            //璁剧疆琛屼负瀛楀吀
+            ActionDic = NodeAct.Variables.ToDictionary(k => k.VAR_CODE, v => v.DEFAULT);
+
             CurAction.Init(this, CurPosition, NodeAct, ActSetting);
         }
 
@@ -79,7 +91,24 @@
         public ApiAction<SubmitOutput> TryBegin(SubmitInput input)
         {
             BeginAt = DateTime.Now;
-            return CurAction.TryBegin(input);
+            //宸ユ琛屼负鍚敤鍒欐甯告墽琛�
+            if (IsActive)
+            {
+                UpdateActionDic(input.ActionDic);
+                return ResetActionDic(CurAction.TryBegin(input));
+            }
+            //宸ユ琛屼负涓嶅惎鐢紝鍚﹀垯宸ユ榛樿瀹屾垚
+            else
+            {
+                CurAction.IsFinished = true;
+                var action = new ApiAction<SubmitOutput>(new SubmitOutput());
+                this.Message = Biz.L($"琛屼负鏈惎鐢�");
+                this.Status = StepStatus.InActive;
+                action.Data.ShortMsg = new($"琛屼负鏈惎鐢�", ShortMessage.Types.Success);
+                //action.LocaleMsg = new($"{0}琛屼负鏈惎鐢�");
+                action.LocaleMsg = new("MES.WorkAction.NotActive", NodeAct.ACT_NAME);
+                return action;
+            }
         }
 
         /// <summary>
@@ -98,7 +127,8 @@
         /// <returns></returns>
         public ApiAction<SubmitOutput> Submit(SubmitInput input)
         {
-            return CurAction.Submit(input);
+            UpdateActionDic(input.ActionDic);
+            return ResetActionDic(CurAction.Submit(input));
         }
 
         /// <summary>
@@ -107,9 +137,39 @@
         /// <returns></returns>
         public ApiAction<SubmitOutput> End(SubmitInput input)
         {
+            UpdateActionDic(input.ActionDic);
             var result = CurAction.End(input);
             EndAt = DateTime.Now;
-            return result;
+            return ResetActionDic(result);
+        }
+
+        /// <summary>
+        /// 鑾峰彇宸ユ褰撳墠鑰楁椂
+        /// </summary>
+        /// <returns></returns>
+        public void UpdateActionDic(Dictionary<string, string> newDic)
+        {
+            foreach (var item in newDic ?? new())
+            {
+                if (ActionDic.ContainsKey(item.Key))
+                {
+                    ActionDic[item.Key] = item.Value;
+                }
+                else
+                {
+                    ActionDic.Add(item.Key, item.Value);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇宸ユ褰撳墠鑰楁椂
+        /// </summary>
+        /// <returns></returns>
+        public ApiAction<SubmitOutput> ResetActionDic(ApiAction<SubmitOutput> output)
+        {
+            output.Data.ActionDic = ActionDic;
+            return output;
         }
 
         /// <summary>

--
Gitblit v1.9.3