From 7bf8f292234bea48fd9318eee9267c6ef19e19ed Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 01 一月 2025 21:57:41 +0800 Subject: [PATCH] 工步增加行为变量字典 --- Tiger.Business.MES/Common/WorkStep.cs | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 41 insertions(+), 3 deletions(-) diff --git a/Tiger.Business.MES/Common/WorkStep.cs b/Tiger.Business.MES/Common/WorkStep.cs index 6b790d7..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,6 +39,7 @@ 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; @@ -75,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); } @@ -88,7 +94,8 @@ //宸ユ琛屼负鍚敤鍒欐甯告墽琛� if (IsActive) { - return CurAction.TryBegin(input); + UpdateActionDic(input.ActionDic); + return ResetActionDic(CurAction.TryBegin(input)); } //宸ユ琛屼负涓嶅惎鐢紝鍚﹀垯宸ユ榛樿瀹屾垚 else @@ -120,7 +127,8 @@ /// <returns></returns> public ApiAction<SubmitOutput> Submit(SubmitInput input) { - return CurAction.Submit(input); + UpdateActionDic(input.ActionDic); + return ResetActionDic(CurAction.Submit(input)); } /// <summary> @@ -129,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