From b2a011edd5bf1abb316900cfd041ae0f888f9dc8 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 04 九月 2024 21:02:57 +0800 Subject: [PATCH] 优化了三码合一行为 --- Tiger.Business.MES/WorkAction/ThreeInOne.cs | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/ThreeInOne.cs b/Tiger.Business.MES/WorkAction/ThreeInOne.cs index 669a4fb..1299575 100644 --- a/Tiger.Business.MES/WorkAction/ThreeInOne.cs +++ b/Tiger.Business.MES/WorkAction/ThreeInOne.cs @@ -9,6 +9,7 @@ using Tiger.IBusiness.MES.WorkAction; using Tiger.Model; using Tiger.Model.Entitys.MES.Position; +using Tiger.Model.MES.Yada; namespace Tiger.Business.MES.WorkAction { @@ -25,6 +26,7 @@ public MES_CUST_SN CurCSN { get; set; } public BAS_LABEL_TEMP Label { get; set; } public List<BAS_LABEL_PV> LabelPV { get; set; } + public List<mes_MOPickList> MoPickList { get; set; } #endregion Propertys & Variables #region Functions @@ -43,6 +45,7 @@ Label = Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == setting.LABEL_CODE).IncludesAllFirstLayer().First(); LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); + MoPickList = Biz.DataSource["YadaU9C"].Client.Queryable<mes_MOPickList>().Where(q => q.MoDocNo == CurPosition.WorkBatch.WO.ORDER_NO).ToList(); } /// <summary> @@ -84,7 +87,8 @@ //鍘傚唴鏉$爜宸茬粦瀹氬鎴锋潯鐮侊紝鐩存帴缁撴潫琛屼负 if (!CurCSN.IsNullOrEmpty()) { - if (CurCSN.WORK_ORDER == CurPosition.WorkBatch.WO.ORDER_NO) + //瀹㈡埛鏉$爜宸茬粦瀹氬綋鍓嶅伐鍗曟垨鑰呭叾鎵规灞炰簬褰撳墠宸ュ崟涓婃枡鐗╂枡鐨勬帹鑽愭壒娆� + if (CurCSN.WORK_ORDER == CurPosition.WorkBatch.WO.ORDER_NO || MoPickList.Any(q => q.Code == CurCSN.ITEM_CODE && q.SuggestedBatch == CurCSN.WORK_ORDER)) { CurCSN.WORK_ORDER = CurPosition.WorkBatch.WO.ORDER_NO; CurCSN.ITEM_CODE = CurPosition.WorkBatch.WO.ITEM_CODE; @@ -98,7 +102,24 @@ } else { - + action.Data.Data = new + { + NeedPrint = false, + NeedScan = false, + Label = "", + }; + CurStep.Message = Biz.L("鎶曟枡閿欒"); + CurStep.Status = StepStatus.Error; + action.Data.ShortMsg = new("鎶曟枡閿欒", ShortMessage.Types.Failed); + action.IsSuccessed = false; + //action.LocaleMsg = new($"浜у搧鐨勫鎴锋潯鐮乕{0}]灞炰簬宸ュ崟[{1}]涓嶉�傜敤浜庡綋鍓嶅伐鍗昜{2}]鐨勭敓浜�"); + action.LocaleMsg = new("MES.WorkAction.ThreeInOne.InputSnError", CurCSN.CUST_SN, CurCSN.WORK_ORDER, CurPosition.WorkBatch.WO.ORDER_NO); + //濡傛灉琛屼负璁剧疆涓哄嚭閿欓渶瑕侀噸缃伐搴忔搷浣� + if (NodeAct.NEED_RESET == "Y") + { + CurPosition.ResetNode(); + } + return action; } } //鍘傚唴鏉$爜鏈粦瀹氬鎴锋潯鐮� @@ -209,8 +230,20 @@ //璁板綍琛屼负鎿嶄綔璁板綍 var wipActs = new List<MES_WIP_ACT>(); + var woSns = new List<BIZ_MES_WO_SN>(); + var snHiss = new List<MES_WIP_HIS>(); foreach (var wipSn in CurPosition.CurWipSNs) { + //鏇存柊鍦ㄥ埗鍝佷俊鎭疭N涓哄鎴锋潯鐮� + wipSn.SN = CurCSN.CUST_SN; + //鏇存柊鍦ㄥ埗鍝佷俊鎭巻鍙插緱SN涓哄鎴锋潯鐮� + var his = CurPosition.CurWipSNHiss.First(q => q.WIP_ID == wipSn.ID); + his.SN = CurCSN.CUST_SN; + snHiss.Add(his); + //鏇存柊宸ュ崟鏉$爜琛ㄧ殑 + var woSn = CurPosition.WorkBatch.WoSNs.First(q => q.WIP_ID == wipSn.ID); + woSn.SN = CurCSN.CUST_SN; + woSns.Add(woSn); var wipAct = new MES_WIP_ACT() { AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, @@ -253,12 +286,18 @@ } //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� + var _wipSns = CurPosition.CurWipSNs.Clone(); + var _snHiss = snHiss.Clone(); + var _woSns = woSns.Clone(); var _wipActs = wipActs.Clone(); var _CurCSN = CurCSN.Clone(); //淇濆瓨鏁版嵁 CurStep.DBSubmitAction = () => { var db = CurPosition.GetCommitDB(); + db.Storageable(_wipSns, CurPosition.UserCode).ExecuteCommand(); + db.Storageable(_snHiss, CurPosition.UserCode).ExecuteCommand(); + db.Storageable(_woSns, CurPosition.UserCode).ExecuteCommand(); db.Storageable(_wipActs, CurPosition.UserCode).ExecuteCommand(); db.Storageable(_CurCSN, CurPosition.UserCode).ExecuteCommand(); }; -- Gitblit v1.9.3