From 0fa15afc31f7fb1a6100a78af3765d4d1bbab611 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期一, 28 十月 2024 21:23:55 +0800
Subject: [PATCH] 优化入库标签行为数据存储

---
 Tiger.Business.MES/WorkAction/PackingAction.cs |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index 4e0bfd3..28e0046 100644
--- a/Tiger.Business.MES/WorkAction/PackingAction.cs
+++ b/Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -6,6 +6,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Tiger.Business.MES.Transaction;
 using Tiger.IBusiness;
 using Tiger.IBusiness.MES.WorkAction;
 using Tiger.Model;
@@ -228,6 +229,13 @@
                 data.ExecCode = "Print";
                 data.PkgLevel = min.PKG_LEVEL;
                 data.PrintLable = LabelDic[min.PKG_LEVEL];
+                data.RealPrint = data.PkgLevel != CurPkg.Item.PKG_LEVEL || CurPosition is not YadaPacking || (CurPosition as YadaPacking).IsPrintCustomerLabel;
+                //鎵嬪姩缁撴潫鍖呰鏃讹紝濡傛灉鏄疪ealPrint涓篺alse锛屽垯杩斿洖褰撳墠鍖呰淇℃伅鐨勫叆搴撴爣绛惧苟鎵撳嵃
+                if (IsManually && !data.RealPrint && !CurPkg.InStoreLabel.IsNullOrEmpty())
+                {
+                    data.RealPrint = true;
+                    data.PrintLable = CurPkg.InStoreLabel;
+                }
                 CurCmd = data;
                 PrintTimes++;
                 CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩"));
@@ -396,6 +404,13 @@
                                     data.ExecCode = "Print";
                                     data.PkgLevel = dtl.PKG_LEVEL;
                                     data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+                                    data.RealPrint = data.PkgLevel != CurPkg.Item.PKG_LEVEL || CurPosition is not YadaPacking || (CurPosition as YadaPacking).IsPrintCustomerLabel;
+                                    //鎵嬪姩缁撴潫鍖呰鏃讹紝濡傛灉鏄疪ealPrint涓篺alse锛屽垯杩斿洖褰撳墠鍖呰淇℃伅鐨勫叆搴撴爣绛惧苟鎵撳嵃
+                                    if (IsManually && !data.RealPrint && !CurPkg.InStoreLabel.IsNullOrEmpty())
+                                    {
+                                        data.RealPrint = true;
+                                        data.PrintLable = CurPkg.InStoreLabel;
+                                    }
                                     CurCmd = data;
                                     PrintTimes++;
                                     CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩"));
@@ -493,6 +508,13 @@
                             data.ExecCode = "Print";
                             data.PkgLevel = dtl.PKG_LEVEL;
                             data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+                            data.RealPrint = data.PkgLevel != CurPkg.Item.PKG_LEVEL || CurPosition is not YadaPacking || (CurPosition as YadaPacking).IsPrintCustomerLabel;
+                            //鎵嬪姩缁撴潫鍖呰鏃讹紝濡傛灉鏄疪ealPrint涓篺alse锛屽垯杩斿洖褰撳墠鍖呰淇℃伅鐨勫叆搴撴爣绛惧苟鎵撳嵃
+                            if (IsManually && !data.RealPrint && !CurPkg.InStoreLabel.IsNullOrEmpty())
+                            {
+                                data.RealPrint = true;
+                                data.PrintLable = CurPkg.InStoreLabel;
+                            }
                             CurCmd = data;
                             PrintTimes++;
                             CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩"));
@@ -562,6 +584,7 @@
                     CurPkgItem.Package.OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE;
                     CurPkgItem.Package.SEGMENT = CurPosition.CurWipSNs.First().SEGMENT;
                     CurPkgItem.Package.ACT_ID = NodeAct.ID;
+                    CurPkgItem.Package.ACT_NAME = NodeAct.ACT_NAME;
                     CurPkgItem.Package.FLOW_SN = CurPosition.CurWipSNs.First().FLOW_SN;
                     FinishLevel++;
                     //瀹屾垚鍖呰鐨勫眰绾у皬浜庢渶澶栧眰鍖呰灞傜骇
@@ -625,6 +648,7 @@
                             OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE,
                             SEGMENT = CurPosition.CurWipSNs.First().SEGMENT,
                             ACT_ID = NodeAct.ID,
+                            ACT_NAME = NodeAct.ACT_NAME,
                             FLOW_SN = CurPosition.CurWipSNs.First().FLOW_SN,
                         };
                         FinishLevel++;
@@ -712,6 +736,13 @@
                                     data.ExecCode = "Print";
                                     data.PkgLevel = dtl.PKG_LEVEL;
                                     data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+                                    data.RealPrint = data.PkgLevel != CurPkg.Item.PKG_LEVEL || CurPosition is not YadaPacking || (CurPosition as YadaPacking).IsPrintCustomerLabel;
+                                    //鎵嬪姩缁撴潫鍖呰鏃讹紝濡傛灉鏄疪ealPrint涓篺alse锛屽垯杩斿洖褰撳墠鍖呰淇℃伅鐨勫叆搴撴爣绛惧苟鎵撳嵃
+                                    if (IsManually && !data.RealPrint && !CurPkg.InStoreLabel.IsNullOrEmpty())
+                                    {
+                                        data.RealPrint = true;
+                                        data.PrintLable = CurPkg.InStoreLabel;
+                                    }
                                     CurCmd = data;
                                     PrintTimes++;
                                     CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩"));
@@ -856,6 +887,10 @@
                         ACT_TYPE = NodeAct.ACT_TYPE,
                         ACT_SN = wipSn.SN,
                         ACT_RESULT = "Y",
+                        ACT_VALUE_1 = CurPkg.IsFinished ? "Y" : "N",
+                        ACT_VALUE_2 = CurPkg.ToJson(),
+                        ACT_VALUE_3 = CurPkg.IsFinished ? LabelDic[CurPkg.Item.PKG_LEVEL].ToJson() : "",
+                        ACT_VALUE_4 = "Customer",
                         ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(),
                         TRACE_INFO = $"浜у搧鏉$爜[{string.Join("锛�", CurPosition.CurSN)}]鍖呰瀹屾垚",
                     };
@@ -915,6 +950,7 @@
                 if (CurPkg.IsFinished)
                 {
                     var _pkgList = CurPosition.GetPackageList(CurPkg.Item).Clone();
+                    var _lastWipID = CurPosition.LastWipSNs?.FirstOrDefault()?.ID;
 
                     //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
                     CurPosition.NeedTemporaryStoreDBCommitAction = false;
@@ -951,6 +987,21 @@
                                 .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN)
                                 .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID))
                                 .ExecuteCommand();
+                            db.Updateable<MES_WIP_ACT>()
+                                .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N"))
+                                .SetColumns(q => q.ACT_VALUE_2 == CurPkg.ToJson())
+                                .SetColumns(q => q.ACT_VALUE_3 == (CurPkg.IsFinished ? LabelDic[CurPkg.Item.PKG_LEVEL].ToJson() : ""))
+                                .SetColumns(q => q.ACT_VALUE_4 == "Customer")
+                                .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && q.WIP_ID == _lastWipID)
+                                .ExecuteCommand();
+                            var InStoreLabel = CurPkg.IsFinished ? CurPkg.InStoreLabel?.ToJson() : "";
+                            db.Updateable<MES_WIP_ACT>()
+                                .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N"))
+                                .SetColumns(q => q.ACT_VALUE_2 == CurPkg.ToJson())
+                                .SetColumns(q => q.ACT_VALUE_3 == InStoreLabel)
+                                .SetColumns(q => q.ACT_VALUE_4 == "InStroe")
+                                .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == CurPkg.InStoreActID && q.WIP_ID == _lastWipID)
+                                .ExecuteCommand();
                             //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃
                             db.Updateable<BIZ_MES_WO_SN>()
                                 .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
@@ -960,7 +1011,7 @@
                         }
                     });
                     //濡傛灉褰撳墠鏉$爜宸茬粡瀹屽伐锛屾鏌ュ綋鍓嶅伐鍗曟壒娆″拰宸ュ崟鏄惁瀹屽伐
-                    if (CurPkg.IsReachedEndNode)
+                    //if (CurPkg.IsReachedEndNode)
                     {
                         CurPosition.WorkBatch.CheckIsComplete(CurPosition.UserCode);
                     }

--
Gitblit v1.9.3