From 37c4128d884e46d1f50c0a003c34a1749cda5841 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 15 十月 2024 08:45:40 +0800 Subject: [PATCH] 一些已知更改 --- Tiger.Business.MES/Common/WorkBatch.cs | 79 +++++++++++++++++++++++++++++++++++---- 1 files changed, 70 insertions(+), 9 deletions(-) diff --git a/Tiger.Business.MES/Common/WorkBatch.cs b/Tiger.Business.MES/Common/WorkBatch.cs index cbfdad6..7554540 100644 --- a/Tiger.Business.MES/Common/WorkBatch.cs +++ b/Tiger.Business.MES/Common/WorkBatch.cs @@ -62,20 +62,26 @@ public void Update() { - WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).IncludesAllFirstLayer().First(); - Batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.BATCH_NO == Batch.BATCH_NO).First(); - if (WoContext.WoBatchDic.ContainsKey(Batch.BATCH_NO)) + var wo = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).IncludesAllFirstLayer().First(); + var batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.BATCH_NO == Batch.BATCH_NO).First(); + if (WoContext.WoBatchDic.ContainsKey(batch.BATCH_NO)) { - if (WO.STATUS > BIZ_MES_WO.STATUSs.Working.GetValue() || Batch.STATUS > BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()) + if (wo.STATUS > BIZ_MES_WO.STATUSs.Working.GetValue() || batch.STATUS > BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()) { WoContext.WoBatchDic.Remove(Batch.BATCH_NO); + } + else if(wo.UPDATE_TIME > WO.UPDATE_TIME || batch.UPDATE_TIME > Batch.UPDATE_TIME) + { + GetBatchInfo(); } } else { GetBatchInfo(); - WoContext.WoBatchDic.Add(Batch.BATCH_NO, this); + WoContext.WoBatchDic.Add(batch.BATCH_NO, this); } + WO = wo; + Batch = batch; } private void GetBatchInfo() @@ -99,7 +105,7 @@ } /// <summary> - /// 娣诲姞鑺傜偣鐨勪笅涓�涓涓哄埌宸ユ鍒楄〃 + /// 閫掑綊閬嶅巻宸ュ簭鑺傜偣锛岀粰涓嬬骇宸ュ簭鑺傜偣鎺掑簭鍜屾暣鐞嗗墠缃伐搴� /// </summary> /// <param name="parent"></param> private void NodeSorting(MES_WO_NODE parent) @@ -231,6 +237,61 @@ } /// <summary> + /// 妫�鏌ュ伐鍗曟槸鍚﹀畬宸ワ紝宸插畬宸ュ垯淇敼鐩稿簲鐘舵�佸苟璁板綍鍒版暟鎹簱 + /// </summary> + /// <param name="user"></param> + /// <returns></returns> + public async Task<bool> CheckIsComplete(string user) + { + var woSNs = Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.WORK_ORDER == OrderNo).ToList(); + + //鍒ゆ柇褰撳墠宸ュ崟鎵规鏄惁宸插畬宸� + if (!woSNs.Any(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) && + woSNs.Count(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) == Batch.PLAN_QTY) + { + Batch.STATUS = BIZ_MES_WO_BATCH.STATUSs.Closed.GetValue(); + Batch.ACT_END_TIME = DateTime.Now; + } + + //鍒ゆ柇褰撳墠宸ュ崟鏄惁宸插畬宸� + if (!woSNs.Any(q => q.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) && + woSNs.Count(q => q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) == WO.PLAN_QTY) + { + WO.STATUS = BIZ_MES_WO.STATUSs.Closed.GetValue(); + WO.ACT_END_TIME = DateTime.Now; + } + + //淇濆瓨鏁版嵁搴� + var db = Biz.Db; + var dbTran = db.UseTran(() => + { + db.Updateable(WO, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.ACT_END_TIME }).ExecuteCommand(); + db.Updateable(Batch, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.ACT_END_TIME }).ExecuteCommand(); + }); + if (!dbTran.IsSuccess) + { + //throw dbTran.ErrorException; + Logger.Default.Fatal(dbTran.ErrorException, $"妫�鏌ュ伐鍗曟壒娆{Batch.BATCH_NO}]鏄惁瀹屽伐寮傚父"); + return false; + } + //鍒犻櫎缂撳瓨 + if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Closed.GetValue()) + { + WoContext.WoBatchDic.Remove(Batch.BATCH_NO); + } + if (WO.STATUS == BIZ_MES_WO.STATUSs.Closed.GetValue()) + { + var list = WoContext.WoBatchDic.Where(q => q.Value.WO.ORDER_NO == OrderNo).Select(q => q.Key); + foreach (var item in list) + { + WoContext.WoBatchDic.Remove(item); + } + } + + return true; + } + + /// <summary> /// 鏍规嵁宀椾綅缂栫爜鍒ゆ柇鏄笉鏄绔� /// </summary> /// <param name="postCode"></param> @@ -346,7 +407,7 @@ } //濡傛灉褰撳墠宸ュ簭鏈夊繀椤绘墽琛岀殑鍚庣画宸ュ簭锛屽垯鎶ラ敊 - if (nextNodes.Any(q => NodeSets.Any(s => s.NODE_ID == q.ID && s.IS_ACTIVE == "Y" && s.CAN_SKIP != "Y"))) + if (nextNodes.Any(q => q.OPER_CODE != "EndNode" && NodeSets.Any(s => s.NODE_ID == q.ID && s.IS_ACTIVE == "Y" && s.CAN_SKIP != "Y"))) { action.IsSuccessed = false; action.Data.SetValue(this, null); @@ -391,7 +452,7 @@ } /// <summary> - /// 娣诲姞鑺傜偣鐨勪笅涓�涓彲鎵ц鑺傜偣 + /// 鑾峰彇鑺傜偣鐨勪笅涓�涓彲鎵ц鑺傜偣锛堟帓闄ゆ湁鍓嶇疆宸ュ簭鏈畬鎴愮殑鑺傜偣锛� /// </summary> /// <param name="parent"></param> /// <param name="wipSN">褰撳墠鐨勬潯鐮佽繃绔欒褰曪紝闇�瑕佸鑸煡璇㈢敓浜ц繃绋嬭褰曚俊鎭�</param> @@ -426,7 +487,7 @@ } /// <summary> - /// 鏍规嵁浼犲叆鐨勬潯鐮佽繑鍥炰笅涓�绔欏彲杩涘叆杩涘叆鐨勭洰鏍囧伐搴� + /// 鏍规嵁浼犲叆鐨勬潯鐮佽繑鍥炰笅涓�绔欏彲杩涘叆鐨勭洰鏍囧伐搴� /// </summary> /// <param name="wipSN">褰撳墠鐨勬潯鐮佽繃绔欒褰曪紝闇�瑕佸鑸煡璇㈢敓浜ц繃绋嬭褰曞拰鐢熶骇涓嶈壇璁板綍淇℃伅</param> /// <returns></returns> -- Gitblit v1.9.3