From 97edd18da0049ca22fa452618639469ab40ef0e6 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 19 十一月 2024 14:45:46 +0800 Subject: [PATCH] 优化包装行为获取包装在制品ID的获取方法 --- Tiger.Business.MES/WorkAction/PackingAction.cs | 24 +++++++++++++----------- 1 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 184758f..1ac272a 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -882,7 +882,8 @@ //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� var _wipActs = wipActs.Clone(); - var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item) : new(); + var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item).Clone() : new(); + var _wipIDs = CurPkg.IsFinished ? CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone() : new(); //淇濆瓨鏁版嵁 CurStep.DBSubmitAction = () => { @@ -894,7 +895,7 @@ if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); + //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); var nodeID = _pkgList.First().NODE_ID; var actID = _pkgList.First().ACT_ID; var wo = _pkgList.First().WORK_ORDER; @@ -903,27 +904,27 @@ .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 == wo && wipIDs.Contains(q.ID)) + .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� db.Updateable<MES_WIP_HIS>(CurPosition.UserCode) .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 == wo && q.NODE_ID == nodeID && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰� db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) .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 == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃 db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode) .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) - .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); } }; @@ -933,6 +934,7 @@ if (CurPkg.IsFinished) { var _pkgList = CurPosition.GetPackageList(CurPkg.Item).Clone(); + var _wipIDs = CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone(); var _lastWipID = CurPosition.LastWipSNs?.FirstOrDefault()?.ID; //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 @@ -944,7 +946,7 @@ if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); + //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); var nodeID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).NODE_ID; var actID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).ACT_ID; var wo = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).WORK_ORDER; @@ -953,7 +955,7 @@ .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 == wo && wipIDs.Contains(q.ID)) + .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; @@ -961,14 +963,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 == wo && (q.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && (q.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰� db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) .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 == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) + .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>(CurPosition.UserCode) .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N")) @@ -989,7 +991,7 @@ db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode) .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) - .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); } }); -- Gitblit v1.9.3