From 869738d1cdf4385203e7a5fc5e4f2735e9840d46 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 16 十月 2024 00:25:14 +0800 Subject: [PATCH] 优化工序逻辑 --- Tiger.Business.MES/WorkAction/PackingAction.cs | 124 +++++++++++++++++++++-------------------- 1 files changed, 63 insertions(+), 61 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index ab7c1f1..22a62cc 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -868,36 +868,37 @@ if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - foreach (var pkg in _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty())) - { - //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� - 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.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.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == pkg.ACT_ID) - .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(); - } + 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; + //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� + 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 == wo && wipIDs.Contains(q.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 == wo && q.NODE_ID == nodeID && wipIDs.Contains(q.WIP_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 == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) + .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 == wo && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); } }; } @@ -916,37 +917,38 @@ if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - foreach (var pkg in _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty())) - { - //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� - 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(); - //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� - var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; - 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.NODE_ID == pkg.NODE_ID || q.OPER_CODE == endOperCode)) - .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.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_ID == pkg.ACT_ID) - .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(); - } + 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; + //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� + 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 == wo && wipIDs.Contains(q.ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� + var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; + 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 == wo && (q.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_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 == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) + .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 == wo && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); } }); //濡傛灉褰撳墠鏉$爜宸茬粡瀹屽伐锛屾鏌ュ綋鍓嶅伐鍗曟壒娆″拰宸ュ崟鏄惁瀹屽伐 -- Gitblit v1.9.3