From 95ba406de3efbc6dc3a3c1386dcd52aed0ef2183 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 26 十一月 2024 16:08:07 +0800 Subject: [PATCH] 优化调试信息 --- Tiger.Business.MES/Transaction/YadaPacking.cs | 88 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 74 insertions(+), 14 deletions(-) diff --git a/Tiger.Business.MES/Transaction/YadaPacking.cs b/Tiger.Business.MES/Transaction/YadaPacking.cs index 562f8fa..c707902 100644 --- a/Tiger.Business.MES/Transaction/YadaPacking.cs +++ b/Tiger.Business.MES/Transaction/YadaPacking.cs @@ -11,6 +11,8 @@ using Tiger.Model; using Tiger.Model.Entitys.MES.Position; using Tiger.Business.MES.WorkAction; +using Tiger.Model.MES.Yada; +using System.Data; namespace Tiger.Business.MES.Transaction { @@ -37,6 +39,8 @@ public PackingAction TempPkgAction { get; set; } public bool IsPrintCustomerLabel { get; set; } public string ShippingOrder { get; set; } + public DateTime curtime = DateTime.Now; + public DateTime prevtime = DateTime.Now; #endregion Propertys & Variables #region Functions @@ -47,6 +51,7 @@ /// <returns></returns> public async Task<ApiAction<SubmitOutput>> Submit(SubmitInput input) { + curtime = prevtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 1 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; var action = new ApiAction<SubmitOutput>(new SubmitOutput()); try { @@ -64,10 +69,11 @@ { IsPrintCustomerLabel = input.Options["IsPrintCustomerLabel"].ToBoolean(); } - if (input.Options.ContainsKey("ShippingOrder")) - { - ShippingOrder = IsPrintCustomerLabel ? input.Options["ShippingOrder"].ToString() : ""; - } + + //if (input.Options.ContainsKey("ShippingOrder")) + //{ + // ShippingOrder = IsPrintCustomerLabel ? input.Options["ShippingOrder"].ToString() : ""; + //} //PkgSubmit锛氭墜鍔ㄧ粨鏉熷寘瑁咃紝鎵嬪姩淇濆瓨鏆傚瓨鐨勫寘瑁呮暟鎹� if (NodeCmd == "PkgSubmit") { @@ -88,13 +94,13 @@ var wosns = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER && q.BATCH_NO == s.BATCH_NO)) .ByAuth(input.AuthOption)//.Where((q, s) => s.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) .Where((q, s) => s.SN == input.SN || s.FLOW_SN == input.SN || s.TRAY_SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).ToList(); - + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 2 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //鍏堝垽鏂綋鍓嶅伐鍗曚笉涓虹┖涓斿綋鍓嶅矖浣嶅湪褰撳墠宸ュ崟鏄笉鏄绔欙紝濡傛灉鏄垯涓嶅厑璁稿彉鏇村綋鍓嶅伐鍗曪紝灏濊瘯鎶婃潯鐮佺粦瀹氬埌褰撳墠宸ュ崟 if (!CurBatch.IsNullOrEmpty() && CurBatch.IsFirstNode(PostCode)) { //鏇存柊CurBatch CurBatch?.Update(); - + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 3 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; var wosn = wosns.FirstOrDefault(q => q.Batch.ORDER_NO == CurBatch.WO.ORDER_NO && (q.SN.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue() || q.SN.STATUS == BIZ_MES_WO_SN.STATUSs.Scrap.GetValue())); if (!wosn.IsNullOrEmpty()) { @@ -108,6 +114,7 @@ { //鎻愪氦鏁版嵁 action = NodeSubmit(action, input); + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 4 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //鏇存柊宸ュ簭淇℃伅 if (!action.IsSuccessed) { @@ -228,20 +235,23 @@ { //鏇存柊CurBatch CurBatch?.Update(); - + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 5 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; var submitStep = Steps.Where(q => q.ID == input.CurStepID && !q.IsFinished).FirstOrDefault(); //濡傛灉瀹㈡埛绔繑鍥炵殑褰撳墠宸ユID鎵句笉鍒版湭瀹屾垚鐨勮涓哄伐姝ワ紝鍒欑洿鎺ュ紑濮嬩笅涓�涓涓哄伐姝� if (submitStep.IsNullOrEmpty()) { action = BeginNextActionStep(input); + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 6 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; } else { action = submitStep.Submit(input); + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 7 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //濡傛灉褰撳墠宸ユ宸插畬鎴愶紝寮�濮嬫墽琛屼笅涓�宸ユ if (action.IsSuccessed && submitStep.IsFinished) { action = BeginNextActionStep(input); + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 8 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; } //濡傛灉褰撳墠宸ユ鏈畬鎴� else @@ -286,6 +296,7 @@ //action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.SubmitException")); } + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 9 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; return action; } @@ -297,6 +308,7 @@ /// <returns></returns> public ApiAction<SubmitOutput> NodeSubmit(ApiAction<SubmitOutput> action, SubmitInput input) { + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 10 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; var curNode = CurBatch.GetNode(PostCode); try { @@ -380,7 +392,22 @@ //璁剧疆褰撳墠鎸囦护涓烘甯镐骇鍝佽繃绔� NodeCmd = "NodeSubmit"; - + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 11 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; + //鑾峰彇鍑鸿揣鐘舵�� + DbClient db = Biz.DataSource["YadaU9C"].Client; + var ship = db.Queryable<mes_ShipList>().Where(q => q.MoDoc == CurBatch.WO.ORDER_NO && q.Status == 2 && SqlFunc.DateIsSame(q.BusinessDate, DateTime.Now)).First(); + if (ship.IsNullOrEmpty()) { IsPrintCustomerLabel = false; } else + { + SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { BATCH = CurBatch.Batch.BATCH_NO, NodeIdOrName = curNode.NODE_NAME }); + var list = Biz.Db.Ado.UseStoredProcedure().GetDataTable("SP_MES_GET_NODE_BATCH_COUNT", pars).AsEnumerable().ToList(); + if (!list.IsNullOrEmpty()) + { + var batchCount = list.Where(q => q["ProdDate"].ToString() == "Whole").FirstOrDefault(); + IsPrintCustomerLabel = batchCount.IsNullOrEmpty() ? false : batchCount["WaitShipment"].ToInt32() >= ship.ShipQty ? false : true; + } + } + ShippingOrder = IsPrintCustomerLabel ? ship?.ShipDoc ?? "" : ""; + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 12 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //缁戝畾鏉$爜鍒板伐鍗� foreach (var wipSN in wipSNs) { @@ -424,6 +451,7 @@ wipSN.SEGMENT = curNode.SEGMENT; wipSN.OPERATION_TIME = DateTime.Now; wipSN.SHIPPING_ORDER = ShippingOrder; + wipSN.UNBIND_FLAG = "N"; var curShiftPeriod = GetShiftPeriodForNow(); if (!curShiftPeriod.IsNullOrEmpty()) { @@ -523,6 +551,7 @@ var _curNodeSetting = curNodeSetting.Clone(); var _Batch = CurBatch.Batch.Clone(); + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 13 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //鍒濆鍖栧伐姝ュ垪琛� Steps.Clear(); var curStep = new WorkStep(IWorkStep.NodeTypes.Node, this) @@ -646,6 +675,7 @@ //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯革紝璇锋鏌ュ伐搴忚妭鐐硅缃�"); action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmitException", curNode.NODE_NAME)); } + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 13.1 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; return action; } @@ -659,6 +689,7 @@ var curPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null; var operInfo = SetOperNodeInfo(CurOperInfo(locale)); Action endAction = null; + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 14 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; //濡傛灉褰撳墠鏉$爜宸茬粡璧板埌娴佺▼缁堢偣鍒欒褰曟潯鐮佸畬宸� if (operInfo.IsReachedEndNode) @@ -698,7 +729,8 @@ var _woSns = woSNs.Clone(); var _wipSns = CurWipSNs.Clone(); var _wipHiss = wipHiss.Clone(); - var _pkgList = curPkg?.IsFinished == true ? GetPackageList(curPkg.Item) : new(); + var _pkgList = curPkg?.IsFinished == true ? GetPackageList(curPkg.Item).Clone() : new(); + var _wipIDs = curPkg?.IsFinished == true ? curPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone() : new(); //淇濆瓨鏁版嵁 endAction = () => { @@ -710,14 +742,14 @@ db.Storageable(_wipHiss, UserCode).ExecuteCommand(); if (_pkgList.Any()) { - 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 wo = _pkgList.First().WORK_ORDER; //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� db.Updateable<MES_WIP_HIS>(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.OPER_CODE == "EndNode" && wipIDs.Contains(q.WIP_ID)) + .Where(q => q.WORK_ORDER == wo && q.OPER_CODE == "EndNode" && _wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); } }; @@ -725,7 +757,7 @@ //淇濆瓨鏁版嵁搴� SaveStepsCommitActionToDB(endAction); - + //淇濆瓨鎴愬姛锛岃繑鍥炶繃绔欐秷鎭� operInfo.InputQty += CurWipSNs.Count; action.Data.Data = new PackingActionOutput() { PkgInfo = curPkg }; @@ -742,7 +774,7 @@ //閲嶇疆宸ュ簭 ResetNode(); - + curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 15 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime; return action; } @@ -834,7 +866,7 @@ TempPkgAction.Init(this); int shipQty = input.Data.ToInt32(); - int curQty = CurPkg.Item.TotalQty; + double curQty = CurPkg.Item.TotalQty; int ruleQty = TempPkgAction.PkgRule.GetTotalQty(); //鏈夊~鍑鸿揣鏁伴噺鍒欓獙璇佸綋鍓嶅寘瑁呮暟閲忓繀椤荤瓑浜庯紙鍑鸿揣鏁伴噺/鍖呰瑙勫垯鏁伴噺锛夌殑浣欐暟 if (shipQty > 0 && curQty != shipQty % ruleQty) @@ -878,6 +910,34 @@ return action; } + /// <summary> + /// 鎵撳嵃娴嬭瘯鏍囩 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction<PackingActionOutput>> TestPrint() + { + var action = new ApiAction<PackingActionOutput>(); + try + { + var CurPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null; + var LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); + var label = CurPkg.Item.LABEL_CODE.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == CurPkg.Item.LABEL_CODE).IncludesAllFirstLayer().First(); + var printLb = SetLabelVariables(LabelPV, label, new PackingAction(), CurPkg); + action.Data = new PackingActionOutput() + { + ExecCode = "PrintTest", + PkgInfo = CurPkg, + PrintLable = printLb, + }; + } + catch (Exception ex) + { + action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭墦鍗版祴璇曟爣绛惧紓甯�"); + } + return action; + } + #endregion Functions /// <summary> -- Gitblit v1.9.3