From 25f8eb843fd2046d8b94b410185e4ecdd3c07f57 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 04 八月 2024 18:44:28 +0800
Subject: [PATCH] 工单工艺路线编辑

---
 Tiger.Business.MES/Transaction/Position.cs |   61 ++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 17 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index eef212d..95596c4 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -147,9 +147,25 @@
         }
 
         /// <summary>
-        /// 閲嶇疆褰撳墠宸ユ
+        /// 閲嶇疆宸ュ簭鎿嶄綔
         /// </summary>
-        public void ResetSteps()
+        /// <returns></returns>
+        public ApiAction Reset()
+        {
+            var action = new ApiAction();
+
+            ResetNode();
+            action.IsSuccessed = true;
+            action.LocaleMsg = new($"宸ュ簭鎿嶄綔宸查噸缃紝璇烽噸鏂版壂鎻忚繘绔欎骇鍝佹潯鐮�");
+            action.LocaleMsg = new("MES.Transaction.Position.ResetNode");
+
+            return action;
+        }
+
+        /// <summary>
+        /// 閲嶇疆褰撳墠宸ュ簭锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉�
+        /// </summary>
+        public virtual void ResetNode()
         {
             Steps.Clear();
             CurWipSN = null;
@@ -201,12 +217,12 @@
                 {
                     var next = new WorkStep(IWorkStep.Types.Action, this)
                     {
-                        NodeID = act.ID,
                         Sequence = parent.Sequence + 1,
                         Node = parent.Node,
                         NodeAct = act,
                         Setting = CurBatch.ActionSets.FirstOrDefault(q => q.ACT_ID == act.ID),
                     };
+                    next.Init();
                     next.PrepNodeIDs.Add(parent.NodeID);
                     next.PrepNodeIDs.AddRange(parent.PrepNodeIDs);
                     next.PrepNodeIDs = next.PrepNodeIDs.Distinct().ToList();
@@ -265,7 +281,7 @@
         /// <param name="input"></param>
         public ApiAction<SubmitOutput> BeginNextActionStep(SubmitInput input)
         {
-            var result = new ApiAction<SubmitOutput>();
+            var result = new ApiAction<SubmitOutput>(new SubmitOutput());
             //璁剧疆鍚庣画鍙墽琛岀殑宸ユ鍒楄〃
             NextSteps = GetNextSteps(CurStep);
             //灏濊瘯鏈夋病鏈夊彲浠ョ洿鎺ュ紑濮嬬殑鍚庣画宸ユ
@@ -282,24 +298,14 @@
                     NextSteps = GetNextSteps(CurStep);
                     //杩斿洖缁撴灉鍒板鎴风
                     result = canBegin;
-                    result.Data.IsFinished = IsFinishAllSteps;
-                    result.Data.CurWO = CurBatch.WO.ORDER_NO;
-                    result.Data.CurBatch = CurBatch.Batch.BATCH_NO;
-                    result.Data.CurNode = CurStep?.NodeAct.ACT_NAME;
-                    result.Data.StepActCode = CurStep?.NodeAct.ACT_CODE;
-                    result.Data.NextStepID = CurStep?.ID;
-                    
+                    result.Data.SetValue(CurBatch, CurStep, CurStep?.ID, IsFinishAllSteps);
+
                     return result;
                 }
             }
 
             //娌℃湁鍙互鐩存帴寮�濮嬬殑鍚庣画宸ユ锛屾牴鎹悗缁伐姝ヨ繑鍥濧piAction
-            result.Data.IsFinished = IsFinishAllSteps;
-            result.Data.CurWO = CurBatch.WO.ORDER_NO;
-            result.Data.CurBatch = CurBatch.Batch.BATCH_NO;
-            result.Data.CurNode = CurStep?.Node.NODE_NAME;
-            result.Data.StepActCode = CurStep?.NodeAct.ACT_CODE;
-            result.Data.NextStepID = "";
+            result.Data.SetValue(CurBatch, CurStep, "", IsFinishAllSteps);
 
             //娌℃湁鍙互鐩存帴寮�濮嬬殑鍚庣画宸ユ锛屾牴鎹悗缁彲鎵ц宸ユ鍒楄〃杩斿洖鐩稿簲鐨勬搷浣滄彁绀�
             if (NextSteps.Count == 1)
@@ -367,6 +373,8 @@
                                     return WorkBatch.Product.ToJson();
                                 case "GetCustomer":
                                     return WorkBatch.Batch.ToJson();
+                                case "GetVarByWo":
+                                    return GetLabelVarWo(lv);
                                 default:
                                     return "";
                             }
@@ -381,6 +389,25 @@
             }
             return "";
         }
+        /// <summary>
+        /// 鑾峰彇宸ュ崟缁存姢鐨勬ā鏉垮彉閲�
+        /// </summary>
+        /// <param name="labelId"></param>
+        /// <returns></returns>
+        private string GetLabelVarWo(BAS_LABEL_VAR lv)
+        {
+            string result = "";
+            var labelVarwos = Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(x => x.LABEL_ID == lv.LABEL_ID && x.VAR_NAME == lv.VAR_NAME).ToList();
+            if (labelVarwos.Any(q => q.WORK_ORDER == WorkBatch.Batch.ORDER_NO))
+            {
+                result = labelVarwos.First(q => q.WORK_ORDER == WorkBatch.Batch.ORDER_NO).VAR_VALUE;
+            }
+            else
+            {
+                result = labelVarwos.Count > 0 ? labelVarwos[0].DEFAULT_VALUE : "";
+            }
+            return result;
+        }
 
         #endregion Functions
 

--
Gitblit v1.9.3