From 6e1296126a4a9b1b808796a5ff2bfadf50da8bcc Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 08 十月 2024 22:54:47 +0800 Subject: [PATCH] 保存工步的数据库提交操作到数据库,增加可以保存完工步数据后,保存附加的内容 --- Tiger.Business.MES/Transaction/Position.cs | 55 ++++++++++++++++++++++----- Tiger.Business.MES/WorkAction/PackingAction.cs | 15 +++---- Tiger.IBusiness.MES/Transaction/IPosition.cs | 5 ++ 3 files changed, 57 insertions(+), 18 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 8c96810..ad4824e 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -395,15 +395,45 @@ /// <summary> /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱 /// </summary> - protected void SaveStepsCommitActionToDB() + /// <param name="appendToSave">鎻愪氦瀹屽伐姝ユ暟鎹悗锛屾彁浜ら檮鍔犵殑淇濆瓨鍐呭</param> + public void SaveStepsCommitActionToDB(Action appendToSave = null) { //淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� - var commitList = new List<Action>(); - foreach (var step in Steps.OrderBy(q => q.Sequence)) + if (!Steps.IsNullOrEmpty()) { - commitList.Add(step.DBSubmitAction); + var commitList = new List<Action>(); + foreach (var step in Steps.OrderBy(q => q.Sequence)) + { + commitList.Add(step.DBSubmitAction); + } + //璁板綍宸ュ簭鑰楁椂 + commitList.Add(() => + { + EndAt = DateTime.Now; + var ids = CurWipSNHiss.Select(q => q.ID).ToList(); + GetCommitDB().Updateable<MES_WIP_HIS>().SetColumns(q => q.ELAPSED_TIME == ElapsedTime.TotalMilliseconds.ToInt64()).Where(q => ids.Contains(q.ID)).ExecuteCommand(); + }); + //澧炲姞闄勫姞鐨勪繚瀛樺唴瀹� + if (!appendToSave.IsNullOrEmpty()) + { + commitList.Add(appendToSave); + } + DBCommitList.Add(CurSN, commitList); } - DBCommitList.Add(CurSN, commitList); + else + { + //澧炲姞闄勫姞鐨勪繚瀛樺唴瀹� + if (!appendToSave.IsNullOrEmpty()) + { + if (!DBCommitList.ContainsKey("AppendSaveAction")) + { + DBCommitList.Add("AppendSaveAction", new List<Action>()); + } + var commitList = DBCommitList["AppendSaveAction"]; + commitList.Add(appendToSave); + } + } + //濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴� if (!NeedTemporaryStoreDBCommitAction) { @@ -413,17 +443,21 @@ var dbTran = GetCommitDB().UseTran(() => { //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 - foreach (var wipSn in DBCommitList.Keys) + foreach (var wipSn in DBCommitList.Keys.Where(q => q != "AppendSaveAction")) { foreach (var action in DBCommitList[wipSn]) { action.Invoke(); } } - //璁板綍宸ュ簭鑰楁椂 - EndAt = DateTime.Now; - var ids = CurWipSNHiss.Select(q => q.ID).ToList(); - GetCommitDB().Updateable<MES_WIP_HIS>().SetColumns(q => q.ELAPSED_TIME == ElapsedTime.TotalMilliseconds.ToInt64()).Where(q => ids.Contains(q.ID)).ExecuteCommand(); + //闄勫姞鐨勪繚瀛樺唴瀹� + if (DBCommitList.ContainsKey("AppendSaveAction")) + { + foreach (var action in DBCommitList["AppendSaveAction"]) + { + action.Invoke(); + } + } }); if (dbTran.IsSuccess) { @@ -715,5 +749,6 @@ this.IsFinished = true; return IsFinished ? base.Close(needSaveHistoryLog) : IsFinished; } + }//endClass } \ No newline at end of file diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 0f50e4a..a8fbe4d 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -1,4 +1,5 @@ -锘縰sing Rhea.Common; +锘縰sing Microsoft.CodeAnalysis.Differencing; +using Rhea.Common; using SqlSugar; using System; using System.Collections.Generic; @@ -890,10 +891,13 @@ else { var _pkgList = CurPkg.IsFinished ? GetPackageList(CurPkg.Item) : new(); + + //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 + CurPosition.NeedTemporaryStoreDBCommitAction = false; //淇濆瓨鏁版嵁 - var db = Biz.Db; - var dbTran = db.UseTran(() => + CurPosition.SaveStepsCommitActionToDB(() => { + var db = CurPosition.GetCommitDB(); if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); @@ -915,11 +919,6 @@ } } }); - if (!dbTran.IsSuccess) - { - //鎶涘嚭寮傚父 - throw dbTran.ErrorException; - } } if (CurPkg.IsFinished) diff --git a/Tiger.IBusiness.MES/Transaction/IPosition.cs b/Tiger.IBusiness.MES/Transaction/IPosition.cs index 8d349df..112071d 100644 --- a/Tiger.IBusiness.MES/Transaction/IPosition.cs +++ b/Tiger.IBusiness.MES/Transaction/IPosition.cs @@ -53,6 +53,11 @@ /// <returns></returns> public DbClient GetCommitDB(); /// <summary> + /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱 + /// </summary> + /// <param name="appendAction">淇濆瓨瀹屽伐姝ユ暟鎹悗锛岄檮鍔犵殑淇濆瓨鍐呭</param> + public void SaveStepsCommitActionToDB(Action appendAction = null); + /// <summary> /// 鑾峰彇鎵撳嵃鏍囩妯℃澘杩囩▼鍙橀噺鍊� /// </summary> /// <param name="labelPVs">杩囩▼鍙橀噺鍒楄〃</param> -- Gitblit v1.9.3