From 268c945b3c2bcaf75950531283fb9a89919b564e Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期一, 14 十月 2024 23:51:17 +0800
Subject: [PATCH] 一些已知更改

---
 Tiger.Business.MES/Transaction/PackingNode.cs  |   27 +++++++++
 Tiger.Business.MES/Transaction/Position.cs     |   16 +++++
 Tiger.Business.MES/WorkAction/PackingAction.cs |   79 ++++++++++----------------
 Tiger.IBusiness.MES/Transaction/IPosition.cs   |    2 
 4 files changed, 75 insertions(+), 49 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs
index 6087d6d..c890d95 100644
--- a/Tiger.Business.MES/Transaction/PackingNode.cs
+++ b/Tiger.Business.MES/Transaction/PackingNode.cs
@@ -663,6 +663,7 @@
                 var _woSns = woSNs.Clone();
                 var _wipSns = CurWipSNs.Clone();
                 var _wipHiss = wipHiss.Clone();
+                var _pkgList = curPkg?.IsFinished == true ? GetPackageList(curPkg.Item) : new();
                 //淇濆瓨鏁版嵁
                 endAction = () =>
                 {
@@ -672,6 +673,32 @@
                     db.Storageable(_woSns, UserCode).ExecuteCommand();
                     db.Storageable(_wipSns, UserCode).ExecuteCommand();
                     db.Storageable(_wipHiss, UserCode).ExecuteCommand();
+                    if (_pkgList.Any())
+                    {
+                        foreach (var pkg in _pkgList)
+                        {
+                            ////鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛�
+                            //db.Updateable<MES_WIP_DATA>()
+                            //    .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
+                            //    .SetColumns(q => q.INNER_SN == q.CARTON_SN)
+                            //    .SetColumns(q => q.CARTON_SN == curPkg.Item.Package.SN)
+                            //    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID)
+                            //    .ExecuteCommand();
+                            //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰�
+                            db.Updateable<MES_WIP_HIS>()
+                                .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
+                                .SetColumns(q => q.INNER_SN == q.CARTON_SN)
+                                .SetColumns(q => q.CARTON_SN == curPkg.Item.Package.SN)
+                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.OPER_CODE == "EndNode")
+                                .ExecuteCommand();
+                            ////鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃
+                            //db.Updateable<BIZ_MES_WO_SN>()
+                            //    .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
+                            //    .SetColumns(q => q.OUTER_SN == curPkg.Item.Package.SN)
+                            //    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID)
+                            //    .ExecuteCommand();
+                        }
+                    }
                 };
             }
 
diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index ee00d86..2ceb4b8 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -782,6 +782,22 @@
             }
         }
         #endregion
+        #region 鍖呰涓撶敤鏂规硶
+        public List<MES_WIP_PKG> GetPackageList(WipPkgItem parent)
+        {
+            List<MES_WIP_PKG> list = new();
+            if (!parent.Package.IsNullOrEmpty())
+            {
+                list.Add(parent.Package);
+            }
+            foreach (var item in parent.Items)
+            {
+                item.Package.PARENT_SN = parent.Package?.SN;
+                list.AddRange(GetPackageList(item));
+            }
+            return list;
+        }
+        #endregion
         #endregion Functions
 
         public override bool Close(bool needSaveHistoryLog = false)
diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index bdc2ef7..f01a286 100644
--- a/Tiger.Business.MES/WorkAction/PackingAction.cs
+++ b/Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -53,15 +53,16 @@
             PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First();
 
             //鏍规嵁琛屼负璁剧疆鑾峰彇澶氬眰鍖呰鐨勬爣绛炬墦鍗版ā鏉垮瓧鍏�
-            var codes = (Setting.OPTION_1 ?? "").JsonToObject<List<WipPkgItem>>();
+            var codes = (Setting.OPTION_1 ?? "").JsonToObject<List<WipPkgItem>>()?? new List<WipPkgItem>();
             foreach (var code in codes)
             {
                 var label = code.LABEL_CODE.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code.LABEL_CODE).IncludesAllFirstLayer().First();
                 LabelDic.Add(code.PKG_LEVEL, label);
             }
             LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList();
-            //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈夊垯鑾峰彇褰撳墠鐨勫寘瑁呰褰�
-            if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty())
+
+            //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈変笖鏈寘瑁呭畬鎴愬垯鑾峰彇褰撳墠鐨勫寘瑁呰褰�
+            if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty() && !(CurPosition.Context["CurPackage"] as WipPkg).IsFinished)
             {
                 CurPkg = (CurPosition.Context["CurPackage"] as WipPkg).Clone();
             }
@@ -108,6 +109,13 @@
                 if (!child.IsNullOrEmpty())
                 {
                     CurPkg.Item.Items.Add(child);
+                }
+
+                //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰�
+                if (CurPosition.Context.ContainsKey("CurPackage"))
+                {
+                    CurPosition.Context.Remove("CurPackage");
+                    CurPosition.Context.Remove("CurLabelDic");
                 }
             }
             //鑾峰彇鏄惁鍖呰瀹屽悗闇�瑕佺О閲�
@@ -259,7 +267,7 @@
                             return action;
                         }
                         //楠岃瘉褰撳墠鍖呰鏉$爜鏄惁宸茬粡琚壂鎻忚繃
-                        if (GetPackageList(CurPkg.Item).Any(q => q.SN == pInput.PkgSN))
+                        if (CurPosition.GetPackageList(CurPkg.Item).Any(q => q.SN == pInput.PkgSN))
                         {
                             var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel);
                             CurStep?.SetStatusMessage(StepStatus.Error, Biz.L("鎵弿閿欒"));
@@ -650,7 +658,7 @@
                         //娣诲姞褰撳墠鐨勫寘瑁呮槑缁嗗埌涓婁竴灞傚寘瑁呯殑鏄庣粏鍒楄〃
                         if (!curItem.Items.Contains(CurPkgItem))
                         {
-                        	curItem.Items.Add(CurPkgItem);
+                        	    curItem.Items.Add(CurPkgItem);
                         }
                         CurPkgItem = curItem;
 
@@ -735,21 +743,6 @@
                 CurPosition.ResetNode();
             }
             return action;
-        }
-
-        private List<MES_WIP_PKG> GetPackageList(WipPkgItem parent)
-        {
-            List<MES_WIP_PKG> list = new();
-            if (!parent.Package.IsNullOrEmpty())
-            {
-                list.Add(parent.Package);
-            }
-            foreach (var item in parent.Items)
-            {
-                item.Package.PARENT_SN = parent.Package?.SN;
-                list.AddRange(GetPackageList(item));
-            }
-            return list;
         }
 
         public List<MES_WIP_PKG> GetMinPackageList(WipPkgItem parent)
@@ -861,7 +854,7 @@
 
                 //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊�
                 var _wipActs = wipActs.Clone();
-                var _pkgList = CurPkg.IsFinished ? GetPackageList(CurPkg.Item) : new();
+                var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item) : new();
                 //淇濆瓨鏁版嵁
                 CurStep.DBSubmitAction = () =>
                 {
@@ -887,14 +880,14 @@
                                 .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                                 .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                                 .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN)
-                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID)
+                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID)
                                 .ExecuteCommand();
                             //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰�
                             db.Updateable<MES_WIP_ACT>()
                                 .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                                 .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                                 .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN)
-                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == NodeAct.ID)
+                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == NodeAct.ID)
                                 .ExecuteCommand();
                             //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃
                             db.Updateable<BIZ_MES_WO_SN>()
@@ -910,7 +903,7 @@
             {
                 if (CurPkg.IsFinished)
                 {
-	                var _pkgList = GetPackageList(CurPkg.Item);
+	                var _pkgList = CurPosition.GetPackageList(CurPkg.Item);
 	               
 	                //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
 	                CurPosition.NeedTemporaryStoreDBCommitAction = false;
@@ -935,14 +928,14 @@
                                     .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                                     .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                                     .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN)
-                                    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID)
+                                    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID)
                                     .ExecuteCommand();
                                 //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰�
                                 db.Updateable<MES_WIP_ACT>()
                                     .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                                     .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                                     .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN)
-                                    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == NodeAct.ID)
+                                    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == NodeAct.ID)
                                     .ExecuteCommand();
                                 //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃
                                 db.Updateable<BIZ_MES_WO_SN>()
@@ -961,34 +954,22 @@
                 }
             }
 
-            if (CurPkg.IsFinished)
+            //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
+            //鏈�澶栧眰鍖呰鏈畬鎴愬寘瑁咃紝鍒欐妸宸ュ簭涓殏瀛樻爣璁拌涓簍rue锛屽緟鍏ㄩ儴鍖呰瀹屾垚鍐嶇粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
+            CurPosition.NeedTemporaryStoreDBCommitAction = !CurPkg.IsFinished;
+            //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓�
+            if (CurPosition.Context.ContainsKey("CurPackage"))
             {
-                //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
-                CurPosition.NeedTemporaryStoreDBCommitAction = false;
-                //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰�
-                CurPosition.Context.Remove("CurPackage");
-                CurPosition.Context.Remove("CurLabelDic");
-                //action.LocaleMsg = new($"鏉$爜[{CurPkg.Item.Package?.SN}]鍖呰瀹屾垚");
-                action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPkg.Item.Package.SN);
+                CurPosition.Context["CurPackage"] = CurPkg;
+                CurPosition.Context["CurLabelDic"] = LabelDic;
             }
             else
             {
-                //鏈�澶栧眰鍖呰鏈畬鎴愬寘瑁咃紝鍒欐妸宸ュ簭涓殏瀛樻爣璁拌涓簍rue锛屽緟鍏ㄩ儴鍖呰瀹屾垚鍐嶇粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
-                CurPosition.NeedTemporaryStoreDBCommitAction = true;
-                //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓�
-                if (CurPosition.Context.ContainsKey("CurPackage"))
-                {
-                    CurPosition.Context["CurPackage"] = CurPkg;
-                    CurPosition.Context["CurLabelDic"] = LabelDic;
-                }
-                else
-                {
-                    CurPosition.Context.Add("CurPackage", CurPkg);
-                    CurPosition.Context.Add("CurLabelDic", LabelDic);
-                }
-                //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚");
-                action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN);
+                CurPosition.Context.Add("CurPackage", CurPkg);
+                CurPosition.Context.Add("CurLabelDic", LabelDic);
             }
+            //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚");
+            action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN);
 
             IsFinished = true;
             CurStep?.SetStatusMessage(StepStatus.Finished, Biz.L("鍖呰瀹屾垚"));
diff --git a/Tiger.IBusiness.MES/Transaction/IPosition.cs b/Tiger.IBusiness.MES/Transaction/IPosition.cs
index 112071d..c845cfc 100644
--- a/Tiger.IBusiness.MES/Transaction/IPosition.cs
+++ b/Tiger.IBusiness.MES/Transaction/IPosition.cs
@@ -5,6 +5,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using Tiger.Model;
+using Tiger.Model.Entitys.MES.Position;
 
 namespace Tiger.IBusiness
 {
@@ -71,6 +72,7 @@
         /// <param name="lv">鏍囩妯℃澘鍙橀噺</param>
         /// <returns></returns>
         public string GetPrintProcessValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv, List<BAS_LABEL_VAR> lvars, IWorkAction action);
+        public List<MES_WIP_PKG> GetPackageList(WipPkgItem parent);
         #endregion Functions
     }
 }

--
Gitblit v1.9.3