From 9f49831b4fc9d883acaec0601dc0d5b3bb25bf4f Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期五, 11 十月 2024 19:30:48 +0800
Subject: [PATCH] 包装数量(出货数量)包装工序验证

---
 Tiger.Business.MES/Transaction/PackingNode.cs                    |   87 ++++++++++++++++++++++++-------------------
 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs |    4 ++
 2 files changed, 52 insertions(+), 39 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs
index c4cc211..0636df4 100644
--- a/Tiger.Business.MES/Transaction/PackingNode.cs
+++ b/Tiger.Business.MES/Transaction/PackingNode.cs
@@ -48,6 +48,15 @@
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
             try
             {
+                if (input.Qty.ToInt32() <= 0)
+                {
+                    action.Data.ShortMsg = new("璇疯緭鍏ュ寘瑁呮暟閲�", ShortMessage.Types.Error);
+                    action.Data.OperInfo = new();
+                    action.IsSuccessed = false;
+                    action.LocaleMsg = new($"鍖呰鏁伴噺[{input.Qty}]涓嶆纭紝璇烽噸鏂拌緭鍏ユ暟閲忓悗缁х画鍖呰鎿嶄綔");
+                    //action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.QtyError", input.Qty);
+                    return action;
+                }
                 //PkgSubmit锛氭墜鍔ㄧ粨鏉熷寘瑁咃紝鎵嬪姩淇濆瓨鏆傚瓨鐨勫寘瑁呮暟鎹�
                 if (NodeCmd == "PkgSubmit")
                 {
@@ -119,22 +128,22 @@
                                     action.IsSuccessed = false;
                                     //action.LocaleMsg = new($"鏉$爜[{0}]宸插湪浜х嚎[{1}]鎶曞叆鐢熶骇锛岃鍦ㄦ纭矖浣嶆壂鎻�");
                                     action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.NotCorrectLine", input.SN, wosns.First().Batch.ACT_LINE);
-                                } 
+                                }
                                 else
                                 {
-	                                if (CurBatch?.Batch?.ORDER_NO != wosns.First().Batch.ORDER_NO)
-	                                {
-	                                    //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟
-	                                    var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosns.First().Batch.ORDER_NO }, wosns.First().Batch.BATCH_NO);
+                                    if (CurBatch?.Batch?.ORDER_NO != wosns.First().Batch.ORDER_NO)
+                                    {
+                                        //鏉$爜宸茬粦瀹氱殑宸ュ崟涓嶇瓑浜庡綋鍓嶅伐鍗曞垯閲嶆柊閫夋嫨宸ュ崟
+                                        var result = await SelectOrder(new() { AuthOption = input.AuthOption, OrderNo = wosns.First().Batch.ORDER_NO }, wosns.First().Batch.BATCH_NO);
                                         if (!result.IsSuccessed)
-	                                    {
+                                        {
                                             action.Data.ShortMsg = new("宸ュ崟寮傚父", ShortMessage.Types.Error);
                                             action.Data.OperInfo = new();
                                             action.IsSuccessed = result.IsSuccessed;
-	                                        action.LocaleMsg = result.LocaleMsg;
-	                                        return action;
-	                                    }
-	                                }
+                                            action.LocaleMsg = result.LocaleMsg;
+                                            return action;
+                                        }
+                                    }
                                     //鏇存柊CurBatch
                                     CurBatch?.Update();
                                     //鏉$爜杩囩珯
@@ -225,9 +234,9 @@
                         action.Data.ShortMsg = new("閲嶇疆鎵弿", ShortMessage.Types.Error);
                         action.Data.OperInfo = CurOperInfo(input.Locale);
                         ResetNode();
-	                    action.IsSuccessed = false;
-	                    //action.LocaleMsg = new($"宀椾綅[{CurPosition.POST_CODE}]宸ユ鎵ц寮傚父锛岃閲嶆柊鎵弿浜у搧鏉$爜", CurPosition.POST_CODE);
-	                    action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.WorkStepException", CurPosition.POST_CODE);
+                        action.IsSuccessed = false;
+                        //action.LocaleMsg = new($"宀椾綅[{CurPosition.POST_CODE}]宸ユ鎵ц寮傚父锛岃閲嶆柊鎵弿浜у搧鏉$爜", CurPosition.POST_CODE);
+                        action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.WorkStepException", CurPosition.POST_CODE);
                     }
                 }
             }
@@ -365,21 +374,21 @@
                         wipSN.AUTH_PROD = CurLine.LINE_CODE;
                         wipSN.STATUS = MES_WIP_DATA.STATUSs.OK.GetValue();//wipSN.STATUS > 0 ? MES_WIP_DATA.STATUSs.OK.GetValue() : wipSN.STATUS;
                         wipSN.ROT_CODE = CurBatch.WO.ROUTE_CODE;
-	                    wipSN.NODE_ID = curNode.ID;
-	                    wipSN.NODE_NAME = curNode.NODE_NAME;
-	                    wipSN.FTY_CODE = CurFactory.FTY_CODE;
-	                    wipSN.WS_CODE = CurWorkshop.WS_CODE;
-	                    wipSN.LINE_CODE = CurLine.LINE_CODE;
-	                    wipSN.POST_CODE = CurPosition.POST_CODE;
-	                    wipSN.OPER_CODE = curNode.OPER_CODE;
-	                    wipSN.SEGMENT = curNode.SEGMENT;
-	                    wipSN.OPERATION_TIME = DateTime.Now;
+                        wipSN.NODE_ID = curNode.ID;
+                        wipSN.NODE_NAME = curNode.NODE_NAME;
+                        wipSN.FTY_CODE = CurFactory.FTY_CODE;
+                        wipSN.WS_CODE = CurWorkshop.WS_CODE;
+                        wipSN.LINE_CODE = CurLine.LINE_CODE;
+                        wipSN.POST_CODE = CurPosition.POST_CODE;
+                        wipSN.OPER_CODE = curNode.OPER_CODE;
+                        wipSN.SEGMENT = curNode.SEGMENT;
+                        wipSN.OPERATION_TIME = DateTime.Now;
                         var curShiftPeriod = GetShiftPeriodForNow();
                         if (!curShiftPeriod.IsNullOrEmpty())
                         {
-	                        wipSN.SFTS_CODE = curShiftPeriod.ShiftSys.SFTS_CODE;
-		                    wipSN.SFT_CODE = curShiftPeriod.Shift.SFT_CODE;
-		                    wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE;
+                            wipSN.SFTS_CODE = curShiftPeriod.ShiftSys.SFTS_CODE;
+                            wipSN.SFT_CODE = curShiftPeriod.Shift.SFT_CODE;
+                            wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE;
                         }
                         //濡傛灉鏄姇鍏ョ珯
                         if (curNodeSetting.IS_INPUT == "Y")
@@ -467,20 +476,20 @@
 
                     //鍒濆鍖栧伐姝ュ垪琛�
                     Steps.Clear();
-	                var curStep = new WorkStep(IWorkStep.NodeTypes.Node, this) 
+                    var curStep = new WorkStep(IWorkStep.NodeTypes.Node, this)
                     {
                         Name = "鎵弿浜у搧",
                         Sequence = Steps.Count + 1,
-	                    Node = curNode,
+                        Node = curNode,
                         OperSetting = CurBatch.NodeSets.FirstOrDefault(q => q.NODE_ID == curNode.ID),
                         DBSubmitAction = () =>
-	                    {
+                        {
                             //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄
                             var db = GetCommitDB();
                             //鏁版嵁淇濆瓨閫昏緫
-	                        db.Storageable(_woSns, UserCode).ExecuteCommand();
-	                        db.Storageable(_wipSns, UserCode).ExecuteCommand();
-	                        db.Storageable(_wipHiss, UserCode).ExecuteCommand();
+                            db.Storageable(_woSns, UserCode).ExecuteCommand();
+                            db.Storageable(_wipSns, UserCode).ExecuteCommand();
+                            db.Storageable(_wipHiss, UserCode).ExecuteCommand();
                             //濡傛灉鏈変笉鑹垯淇濆瓨
                             if (_defect.Any())
                             {
@@ -499,8 +508,8 @@
                                 db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + _woSns.Count).Where(q => q.BATCH_NO == _Batch.BATCH_NO).ExecuteCommand();
                             }
                         }
-	                };
-	                Steps.Add(curStep);
+                    };
+                    Steps.Add(curStep);
 
                     //鏈夐渶瑕佺敤鎴锋彁浜や俊鎭垯娣诲姞宸ュ簭鑺傜偣鐨勫叾浠栧伐姝�
 
@@ -520,7 +529,7 @@
                     curStep.IsFinished = true;
                     curStep.Status = StepStatus.Finished;
                     CurStep = curStep;
-                } 
+                }
                 else if (!IsFinishNodeSteps)
                 {
                     var curStep = Steps.Where(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished).OrderBy(q => q.Sequence).First();
@@ -606,11 +615,11 @@
             action.Data.OperInfo = SetOperNodeInfo(CurOperInfo(locale));
             action.Data.ShortMsg = new(CurWipSNs.Any(q => q.DFT_FLAG == "Y") ? "涓嶈壇杩囩珯" : "鑹搧杩囩珯", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"宸ュ崟[{CurWipSN.WORK_ORDER}]鐨勬潯鐮乕{CurWipSN.SN}]鍦ㄥ矖浣峓{CurWipSN.POST_CODE}]宸ュ簭[{CurWipSN.NODE_NAME}]杩囩珯鎴愬姛锛岀姸鎬乕{CurWipSN.STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()}]");
-            action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME,CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>());
-            
+            action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME, CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>());
+
             //閲嶇疆宸ュ簭
             ResetNode();
-            
+
             return action;
         }
 
@@ -636,11 +645,11 @@
                         int curQty = CurPkg.Item.TotalQty;
                         int ruleQty = TempPkgAction.PkgRule.GetTotalQty();
                         //鏈夊~鍑鸿揣鏁伴噺鍒欓獙璇佸綋鍓嶅寘瑁呮暟閲忓繀椤荤瓑浜庯紙鍑鸿揣鏁伴噺/鍖呰瑙勫垯鏁伴噺锛夌殑浣欐暟
-                        if (shipQty > 0 &&  curQty != shipQty % ruleQty)
+                        if (shipQty > 0 && curQty != shipQty % ruleQty)
                         {
                             action.IsSuccessed = false;
                             //action.LocaleMsg = new($"鍑鸿揣鏁伴噺璁惧畾涓篬{0}]锛岀洰鍓嶅寘瑁呬簡[{1}]锛屽寘瑁呭熬鏁扮殑鏁伴噺蹇呴渶鏄痆{2}]锛岃瑁呭鏁伴噺鍚庡啀缁撴潫鍖呰");
-                            action.LocaleMsg = new("MES.Transaction.PackingNode.NotMatchShipQty", shipQty, curQty, shipQty % ruleQty); 
+                            action.LocaleMsg = new("MES.Transaction.PackingNode.NotMatchShipQty", shipQty, curQty, shipQty % ruleQty);
                             return action;
                         }
 
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
index ddd2199..a5c99b3 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
@@ -45,6 +45,10 @@
         /// 褰撳墠鎿嶄綔闇�瑕佹彁浜ょ殑鏁版嵁
         /// </summary>
         public string Data { get; set; }
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public string Qty { get; set; }
     }
 
     public class SubmitOutput

--
Gitblit v1.9.3