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/PackingNode.cs |   90 ++++++++++++++++++++++++++++++--------------
 1 files changed, 61 insertions(+), 29 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs
index 404ff34..6a65b6c 100644
--- a/Tiger.Business.MES/Transaction/PackingNode.cs
+++ b/Tiger.Business.MES/Transaction/PackingNode.cs
@@ -76,26 +76,35 @@
                         else
                         {
                             var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
-                                                        .ByAuth(input.AuthOption)
-                                                        .Where((q, s) => s.SN == input.SN && q.ACT_LINE == CurLine.LINE_CODE && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
-                                                        .Select((q, s) => new { Batch = q, SN = s }).First();
+                                                        .ByAuth(input.AuthOption).Where((q, s) => s.SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).First();
+                                                        
                             //鏌ユ壘鍒版潯鐮佸凡缁戝畾鐨勫伐鍗�
                             if (!wosn.IsNullOrEmpty())
                             {
-                                if (CurBatch?.Batch?.ORDER_NO != wosn.Batch.ORDER_NO)
+                                if (wosn.Batch.ACT_LINE != CurLine.LINE_CODE)
                                 {
-                                    //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟
-                                    var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosn.Batch.ORDER_NO });
-                                    if (!result.IsSuccessed)
-                                    {
-                                        action.IsSuccessed = result.IsSuccessed;
-                                        action.LocaleMsg = result.LocaleMsg;
-                                        return action;
-                                    }
+                                    action.IsSuccessed = false;
+                                    //action.LocaleMsg = new($"鏉$爜[{0}]宸插湪浜х嚎[{1}]鎶曞叆鐢熶骇锛岃鍦ㄦ纭矖浣嶆壂鎻�");
+                                    action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.NotCorrectLine", input.SN, wosn.Batch.ACT_LINE);
+                                    return action;
+                                } 
+                                else
+                                {
+	                                if (CurBatch?.Batch?.ORDER_NO != wosn.Batch.ORDER_NO)
+	                                {
+	                                    //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟
+	                                    var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosn.Batch.ORDER_NO });
+	                                    if (!result.IsSuccessed)
+	                                    {
+	                                        action.IsSuccessed = result.IsSuccessed;
+	                                        action.LocaleMsg = result.LocaleMsg;
+	                                        return action;
+	                                    }
+	                                }
+	                                //鏉$爜杩囩珯
+	                                action = NodeSubmit(action, input);
+	                                return action;
                                 }
-                                //鏉$爜杩囩珯
-                                action = NodeSubmit(action, input);
-                                return action;
                             }
                             //鏌ユ壘涓嶅埌鏉$爜宸茬粦瀹氱殑宸ュ崟
                             else
@@ -166,7 +175,8 @@
             }
             catch (Exception ex)
             {
-                action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�");
+                //action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�");
+                action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.SubmitException"));
             }
             return action;
         }
@@ -179,11 +189,11 @@
         /// <returns></returns>
         public ApiAction<SubmitOutput> NodeSubmit(ApiAction<SubmitOutput> action, SubmitInput input)
         {
+            var curNode = CurBatch.GetNode(PostCode);
             try
             {
-                var curNode = CurBatch.GetNode(PostCode);
-                //鍒ゆ柇宸ュ崟瀹炴椂鐘舵�佸垽鏂�
-                var woStatus = CurBatch.CheckStatus();
+                //鍒ゆ柇宸ュ崟瀹炴椂鐘舵�佸垽鏂槸鍚﹀彲浠ョ敓浜�
+                var woStatus = CurBatch.CheckCanProduce(curNode);
                 if (!woStatus.IsSuccessed)
                 {
                     return woStatus;
@@ -287,17 +297,38 @@
 	                        db.Storageable(woSN, UserCode).ExecuteCommand();
 	                        db.Storageable(wipSN, UserCode).ExecuteCommand();
 	                        db.Storageable(CurWipSNHis, UserCode).ExecuteCommand();
-	                    }
+                            //濡傛灉鏄姇鍏ョ珯
+                            if (curNode.IS_INPUT == "Y")
+                            {
+                                db.Updateable<BIZ_MES_WO>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + 1).Where(q => q.ORDER_NO == CurBatch.WO.ORDER_NO).ExecuteCommand();
+                                db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + 1).Where(q => q.BATCH_NO == CurBatch.Batch.BATCH_NO).ExecuteCommand();
+                            }
+                            //濡傛灉鏄骇鍑虹珯
+                            if (curNode.IS_OUTPUT == "Y")
+                            {
+                                db.Updateable<BIZ_MES_WO>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + 1).Where(q => q.ORDER_NO == CurBatch.WO.ORDER_NO).ExecuteCommand();
+                                db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + 1).Where(q => q.BATCH_NO == CurBatch.Batch.BATCH_NO).ExecuteCommand();
+                            }
+                        }
 	                };
 	                Steps.Add(curStep);
-	
-	                //鏈夐渶瑕佺敤鎴锋彁浜や俊鎭垯娣诲姞宸ュ簭鑺傜偣鐨勫叾浠栧伐姝�
-	
-	                //鏈�鍚庢坊鍔犲綋鍓嶅伐搴忕殑琛屼负宸ユ
-	                GenerateSteps(curStep);
-	
-	                //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝�
-	                curStep.IsFinished = true;
+
+                    //鏈夐渶瑕佺敤鎴锋彁浜や俊鎭垯娣诲姞宸ュ簭鑺傜偣鐨勫叾浠栧伐姝�
+
+                    //鏈�鍚庢坊鍔犲綋鍓嶅伐搴忕殑琛屼负宸ユ
+                    try
+                    {
+                        GenerateSteps(curStep);
+                    }
+                    catch (System.Exception ex)
+                    {
+                        ResetNode();
+                        //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚涓哄伐姝ョ敓鎴愬紓甯革紝璇锋鏌ュ伐搴忚涓鸿缃�");
+                        action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmit.GenerateStepsException", curNode.NODE_NAME));
+                    }
+
+                    //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝�
+                    curStep.IsFinished = true;
 					CurStep = curStep;
                 } 
                 else if (!IsFinishNodeSteps)
@@ -351,7 +382,8 @@
             catch (Exception ex)
             {
                 ResetNode();
-                action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯�");
+                //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯革紝璇锋鏌ュ伐搴忚妭鐐硅缃�");
+                action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmitException", curNode.NODE_NAME));
             }
             return action;
         }

--
Gitblit v1.9.3