From f55c2a5b2f1c9d3aad310766b8281f4b7f7c1ded Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期四, 22 八月 2024 12:06:56 +0800
Subject: [PATCH] 优化包装逻辑

---
 Tiger.Business.MES/WorkAction/PackingAction.cs                   |  146 +++++++++++++++++++++++++++++++++++-------------
 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs |    2 
 2 files changed, 107 insertions(+), 41 deletions(-)

diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index e6db837..60fe6f5 100644
--- a/Tiger.Business.MES/WorkAction/PackingAction.cs
+++ b/Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -274,12 +274,78 @@
                         }
                     }
                     break;
+                // Weighing锛氱О閲嶏紝瀹屾垚鍖呰鍚庡鏁翠釜鍖呰鎴愮О閲�
+                case "Weighing":
+                    if (CurCmd.ExecCode == "Weighing")
+                    {
+                        if (!pInput.WeightInfo.IsNullOrEmpty() && pInput.WeightInfo.Weight > 0)
+                        {
+                            CurCmd = null;
+                            PrintTimes = 0;
+                            CurPkg.WeightInfo.Weight = pInput.WeightInfo.Weight;
+                            CurPkg.WeightInfo.Unit = pInput.WeightInfo.Unit;
+                            NeedWeighing = false;
+
+                            //绉伴噸鎴愬姛锛岀户缁涓�
+                            var dtl = PkgRule.Details.FirstOrDefault(q => q.PKG_LEVEL == FinishLevel + 1);
+                            //鏈�澶栧眰鍖呰宸插鐞嗗畬鎴愬垯鐩存帴缁撴潫琛屼负
+                            if (CurPkg.Item.PKG_LEVEL == FinishLevel)
+                            {
+                                action = End();
+                            }
+                            //鏈�澶栧眰鍖呰鏈墦鍗版壂鎻忓垯缁х画
+                            else
+                            {
+                                //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗�
+                                if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
+	                            {
+	                                var data = new PackingActionOutput() { PkgInfo = CurPkg };
+	                                data.ExecCode = "Scan";
+	                                data.PkgLevel = dtl.PKG_LEVEL;
+	                                CurCmd = data;
+	                                action.Data.Data = data;
+	                                action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal);
+	                                //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
+	                                action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
+	                            }
+	                            else
+	                            {
+	                                //璁剧疆鎵撳嵃鍙橀噺鍊�
+	                                LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]);
+	
+	                                var data = new PackingActionOutput() { PkgInfo = CurPkg };
+	                                data.ExecCode = "Print";
+	                                data.PkgLevel = dtl.PKG_LEVEL;
+	                                data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+	                                CurCmd = data;
+	                                PrintTimes++;
+	                                action.Data.Data = data;
+	                                action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal);
+	                                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
+	                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
+	                            }
+                            }
+                            
+                            
+                        }
+                        else
+                        {
+                            action.IsSuccessed = false;
+                            action.Data.Data = CurCmd;
+                            action.Data.ShortMsg = new("绉伴噸澶辫触", ShortMessage.Types.Failed);
+                            //action.LocaleMsg = new($"鍖呰[{CurPkgItem.Package.SN}]绉伴噸鏁版嵁寮傚父锛岃閲嶆柊涓婄О绉伴噸");
+                            action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighingAgain", CurPkgItem.Package.SN);
+                            return action;
+                        }
+                    }
+                    break;
                 // Complete锛氬畬鎴愶紝瀹屾垚鍏ㄩ儴鍖呰鍚庣粨鏉熻涓�
                 case "Complete":
                     if (CurCmd.ExecCode == "Complete")
                     {
                         CurCmd = null;
                         PrintTimes = 0;
+                        //鎵撳嵃鍚庣О閲�
                         if (NeedWeighing)
                         {
                             var data = new PackingActionOutput() { PkgInfo = CurPkg };
@@ -294,28 +360,6 @@
                         else
                         {
                             action = End();
-                        }
-                    }
-                    break;
-                // Complete锛氬畬鎴愶紝瀹屾垚鍏ㄩ儴鍖呰鍚庣粨鏉熻涓�
-                case "Weighing":
-                    if (CurCmd.ExecCode == "Weighing")
-                    {
-                        if (!pInput.WeightInfo.IsNullOrEmpty() && pInput.WeightInfo.Weight > 0)
-                        {
-                            CurCmd = null;
-                            PrintTimes = 0;
-                            CurPkgItem.Package.WEIGHT = pInput.WeightInfo.Weight;
-                            CurPkgItem.Package.WEIGHT_UNIT = pInput.WeightInfo.Unit;
-                            action = End();
-                        }
-                        else
-                        {
-                            action.IsSuccessed = false;
-                            action.Data.ShortMsg = new("绉伴噸澶辫触", ShortMessage.Types.Failed);
-                            //action.LocaleMsg = new($"鍖呰[{CurPkgItem.Package.SN}]绉伴噸鏁版嵁寮傚父锛岃閲嶆柊涓婄О绉伴噸");
-                            action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighingAgain", CurPkgItem.Package.SN);
-                            return action;
                         }
                     }
                     break;
@@ -500,31 +544,48 @@
                         //娣诲姞鏄庣粏鍚庡垽鏂綋鍓嶅寘瑁呭眰绾х殑鏄庣粏鏁伴噺鏄惁绛変簬鍖呰鏁伴噺锛岃嫢鐩哥瓑鍒欐爣璁板綋鍓嶅寘瑁呭眰绾т负瀹屾垚骞跺皾璇曟墦鍗版爣绛�
                         if (CurPkgItem.Items.Count(q => q.IsFinished) == CurPkgItem.PKG_QTY || CurStep.IsNullOrEmpty())
                         {
-                            //琛屼负璁惧畾鐨凮PTION_1-9鏄寘瑁呬笉鍚屽眰绾х殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗�
-                            if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
+                            //鎵撳嵃鍓嶇О閲嶏細濡傛灉褰撳墠鐨勫寘瑁呮槑缁嗙殑涓婁竴灞傚寘瑁呭璞℃槸鏈�澶栧眰鍖呰涓旈渶瑕佺О閲嶆椂锛屽厛绉伴噸锛屽悎鏍煎悗鍦ㄥ彂鍗版垨鑰呮壂鎻忔渶澶栧眰鍖呰鏍囩
+                            if (CurPkgItem.PKG_LEVEL == CurPkg.Item.PKG_LEVEL && NeedWeighing)
                             {
                                 var data = new PackingActionOutput() { PkgInfo = CurPkg };
-                                data.ExecCode = "Scan";
-                                data.PkgLevel = dtl.PKG_LEVEL;
+                                data.ExecCode = "Weighing";
+                                data.PkgLevel = CurPkgItem.PKG_LEVEL;
                                 CurCmd = data;
                                 action.Data.Data = data;
-                                //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
-                                action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
-                            }
+                                action.Data.ShortMsg = new("涓婄О绉伴噸", ShortMessage.Types.Success);
+                                //action.LocaleMsg = new($"璇锋妸澶栧寘瑁呬笂绉扮О閲�");
+                                action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighing");
+                            } 
                             else
                             {
-                                //璁剧疆鎵撳嵃鍙橀噺鍊�
-                                LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]);
-
-                                var data = new PackingActionOutput() { PkgInfo = CurPkg };
-                                data.ExecCode = "Print";
-                                data.PkgLevel = dtl.PKG_LEVEL;
-                                data.PrintLable = LabelDic[dtl.PKG_LEVEL];
-                                CurCmd = data;
-                                PrintTimes++;
-                                action.Data.Data = data;
-                                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
-                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);                
+	                            //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗�
+	                            if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
+	                            {
+	                                var data = new PackingActionOutput() { PkgInfo = CurPkg };
+	                                data.ExecCode = "Scan";
+	                                data.PkgLevel = dtl.PKG_LEVEL;
+	                                CurCmd = data;
+	                                action.Data.Data = data;
+                                    action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal);
+                                    //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
+                                    action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
+	                            }
+	                            else
+	                            {
+	                                //璁剧疆鎵撳嵃鍙橀噺鍊�
+	                                LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]);
+	
+	                                var data = new PackingActionOutput() { PkgInfo = CurPkg };
+	                                data.ExecCode = "Print";
+	                                data.PkgLevel = dtl.PKG_LEVEL;
+	                                data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+	                                CurCmd = data;
+	                                PrintTimes++;
+	                                action.Data.Data = data;
+                                    action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal);
+                                    //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
+                                    action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);                
+	                            }
                             }
                         }
                         //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔�
@@ -649,6 +710,9 @@
 	                wipActs.Add(wipAct);
 	            }
             }
+            //璁板綍澶栧寘瑁呯殑绉伴噸鏁版嵁
+            CurPkg.Item.Package.WEIGHT = CurPkg.WeightInfo.Weight;
+            CurPkg.Item.Package.WEIGHT_UNIT = CurPkg.WeightInfo.Unit;
 
             //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊�
             var _wipActs = wipActs.Clone();
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
index c81ac27..9567167 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
@@ -158,6 +158,8 @@
         public string RULE_CODE { get; set; }
         public string RULE_NAME { get; set; }
         public WipPkgItem Item { get; set; }
+        public bool IsWeighed { get; set; } = false;
+        public WeightInfo WeightInfo { get; set; }
         public bool IsFinished => Item.IsFinished;
     }
 

--
Gitblit v1.9.3