From 3f364634b79a0f97a550c54f67313dfc0cfd4cb5 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 27 十一月 2024 22:16:01 +0800 Subject: [PATCH] 一大波签入来了 --- Tiger.Business.MES/WorkAction/ThreeInOne.cs | 12 + Tiger.Business.MES/Transaction/YadaPacking.cs | 26 ++-- Tiger.Model.Net/Entitys/MQTTEntity.cs | 60 ++++++++++ Tiger.Business.MES/Transaction/CollectNode.cs | 8 Tiger.Business.MES/WorkAction/Assembly.cs | 8 Tiger.Business.MES/WorkAction/Weighing.cs | 4 Tiger.Business.MESTests/Tiger.Business.MESTests.csproj | 6 Tiger.Business.MES/Transaction/PackingNode.cs | 12 +- Tiger.Dependencies/Tiger.Dependencies.csproj | 2 Tiger.Model.Net/Tiger.Model.Net.csproj | 5 Tiger.Business.MES/Transaction/Position.cs | 72 ++++++++++- Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs | 6 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs | 12 + Tiger.IBusiness.MES/Transaction/IPosition.cs | 1 Tiger.Business.MES/Transaction/TestNode.cs | 8 Tiger.Business.MES/WorkAction/PackageInputCheck.cs | 6 Tiger.Business.MES/WorkAction/IPQC.cs | 2 Tiger.Business.MES/WorkAction/YadaWoReport.cs | 2 Tiger.Model.Net/packages.config | 2 Tiger.Business.MES/WorkAction/YadaAssembly.cs | 10 + Tiger.Business.MES/WorkAction/PackingAction.cs | 21 ++- Tiger.Business.MES/WorkAction/PrintLabel.cs | 6 Tiger.Business.MES/WorkAction/VerifyCustomSN.cs | 4 Tiger.Business.MES/WorkAction/WipExtInfo.cs | 6 24 files changed, 222 insertions(+), 79 deletions(-) diff --git a/Tiger.Business.MES/Transaction/CollectNode.cs b/Tiger.Business.MES/Transaction/CollectNode.cs index ed53ddd..880b248 100644 --- a/Tiger.Business.MES/Transaction/CollectNode.cs +++ b/Tiger.Business.MES/Transaction/CollectNode.cs @@ -43,7 +43,7 @@ //宸ユ鍒楄〃涓虹┖鎴栬�呭伐搴忚妭鐐瑰伐姝ユ湁鏈畬鎴愭椂锛屼紭鍏堝畬鎴愬伐搴忚妭鐐瑰伐姝� if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps) { - 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)) + var wosns = MainDB.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(); //鍏堝垽鏂綋鍓嶅伐鍗曚笉涓虹┖涓斿綋鍓嶅矖浣嶅湪褰撳墠宸ュ崟鏄笉鏄绔欙紝濡傛灉鏄垯涓嶅厑璁稿彉鏇村綋鍓嶅伐鍗曪紝灏濊瘯鎶婃潯鐮佺粦瀹氬埌褰撳墠宸ュ崟 @@ -105,7 +105,7 @@ action.Data.OperInfo = new(); action.IsSuccessed = result.IsSuccessed; action.LocaleMsg = result.LocaleMsg; - return action; + return SetOutPutMqttMsg(action, input.Locale); } } //鏇存柊CurBatch @@ -224,7 +224,7 @@ //action.CatchExceptionWithLog(ex, $"閲囬泦宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.CollectNode.SubmitException")); } - return action; + return SetOutPutMqttMsg(action, input.Locale); } /// <summary> @@ -262,7 +262,7 @@ return woStatus; } - var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); + var wipSNs = MainDB.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); if (wipSNs.IsNullOrEmpty()) { var wipSN = new MES_WIP_DATA() diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs index ddf7f7a..47d5edc 100644 --- a/Tiger.Business.MES/Transaction/PackingNode.cs +++ b/Tiger.Business.MES/Transaction/PackingNode.cs @@ -66,7 +66,7 @@ if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps) { - 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)) + var wosns = MainDB.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(); @@ -116,7 +116,7 @@ action.IsSuccessed = false; //action.LocaleMsg = new($"鏉$爜[{0}]鏄浇鍏锋潯鐮侊紝璇锋壂鎻忚浇鍏蜂腑鐨勪骇鍝佹潯鐮佺户缁寘瑁呮搷浣�"); action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.OnlyMinPackage", input.SN); - return action; + return SetOutPutMqttMsg(action, input.Locale); } var curPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null; if (!curPkg.IsNullOrEmpty() && !curPkg.IsFinished && curPkg.WorkBatch != curSNs.First().Batch.BATCH_NO) @@ -126,7 +126,7 @@ action.IsSuccessed = false; //action.LocaleMsg = new($"姝e湪鍖呰宸ュ崟鎵规[{0}]鐨勪骇鍝侊紝璇峰厛瀹屾垚褰撳墠鍖呰鍚庡啀鎵弿鍏朵粬鎵规[{1}]鐨勪骇鍝乕{2}]"); action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.BatchError", curPkg.WorkBatch, curSNs.First().Batch.BATCH_NO, input.SN); - return action; + return SetOutPutMqttMsg(action, input.Locale); } if (curSNs.First().Batch.ACT_LINE != CurLine.LINE_CODE) { @@ -148,7 +148,7 @@ action.Data.OperInfo = new(); action.IsSuccessed = result.IsSuccessed; action.LocaleMsg = result.LocaleMsg; - return action; + return SetOutPutMqttMsg(action, input.Locale); } } //鏇存柊CurBatch @@ -267,7 +267,7 @@ //action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.SubmitException")); } - return action; + return SetOutPutMqttMsg(action, input.Locale); } /// <summary> @@ -304,7 +304,7 @@ return woStatus; } - var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); + var wipSNs = MainDB.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); if (wipSNs.IsNullOrEmpty()) { var wipSN = new MES_WIP_DATA() diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 707f714..5696ae8 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -30,22 +30,23 @@ UserCode = userCode; ApiHost = apiHost; PostCode = postCode; + _MainDB = Biz.Db; - CurPosition = Biz.Db.Queryable<MES_POSITION>().Where(q => q.POST_CODE == postCode).First(); + CurPosition = MainDB.Queryable<MES_POSITION>().Where(q => q.POST_CODE == postCode).First(); //if (CurPosition.IsNullOrEmpty()) throw new InvalidDataException($"MES.Transaction.Position.PositionNotExistsException", new Exception($"{postCode}|")); if (CurPosition.IsNullOrEmpty()) throw new InvalidDataException($"宀椾綅[{postCode}]涓嶅瓨鍦紝璇锋彁浜ゆ纭殑宀椾綅浠g爜", new Exception($"{postCode}|")); - CurLine = Biz.Db.Queryable<MES_LINE>().Where(q => q.LINE_CODE == CurPosition.LINE_CODE).First(); + CurLine = MainDB.Queryable<MES_LINE>().Where(q => q.LINE_CODE == CurPosition.LINE_CODE).First(); //if (CurLine.IsNullOrEmpty()) throw new InvalidDataException($"MES.Transaction.Position.LineNotExistsException", new Exception($"{postCode}|{CurPosition.LINE_CODE}")); if (CurLine.IsNullOrEmpty()) throw new InvalidDataException($"宀椾綅[{postCode}]鎵�灞炵殑浜х嚎[{CurPosition.LINE_CODE}]涓嶅瓨鍦紝璇峰厛璁剧疆鎵�灞炰骇绾�", new Exception($"{postCode}|{CurPosition.LINE_CODE}")); - CurWorkshop = Biz.Db.Queryable<MES_WORKSHOP>().Where(q => q.WS_CODE == CurLine.WS_CODE).First(); + CurWorkshop = MainDB.Queryable<MES_WORKSHOP>().Where(q => q.WS_CODE == CurLine.WS_CODE).First(); //if (CurWorkshop.IsNullOrEmpty()) throw new InvalidDataException($"MES.Transaction.Position.WorkshopNotExistsException", new Exception($"{postCode}|{CurLine.WS_CODE}")); if (CurWorkshop.IsNullOrEmpty()) throw new InvalidDataException($"宀椾綅[{postCode}]鎵�灞炵殑杞﹂棿[{CurLine.WS_CODE}]涓嶅瓨鍦紝璇峰厛璁剧疆鎵�灞炶溅闂�", new Exception($"{postCode}|{CurLine.WS_CODE}")); - CurFactory = Biz.Db.Queryable<MES_FACTORY>().Where(q => q.FTY_CODE == CurWorkshop.FTY_CODE).First(); + CurFactory = MainDB.Queryable<MES_FACTORY>().Where(q => q.FTY_CODE == CurWorkshop.FTY_CODE).First(); //if (CurFactory.IsNullOrEmpty()) throw new InvalidDataException($"MES.Transaction.Position.FactoryNotExistsException", new Exception($"{postCode}|{CurWorkshop.FTY_CODE}")); if (CurFactory.IsNullOrEmpty()) throw new InvalidDataException($"宀椾綅[{postCode}]鎵�灞炵殑宸ュ巶[{CurWorkshop.FTY_CODE}]涓嶅瓨鍦紝璇峰厛璁剧疆鎵�灞炲伐鍘�", new Exception($"{postCode}|{CurWorkshop.FTY_CODE}")); //鍔犺浇褰撳墠浜х嚎鐨勭彮鍒� - CurShiftSys = Biz.Db.Queryable<MES_SHIFT_SYS>().Where(q => q.SFTS_CODE == CurLine.SFTS_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Shifts).First(); + CurShiftSys = MainDB.Queryable<MES_SHIFT_SYS>().Where(q => q.SFTS_CODE == CurLine.SFTS_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Shifts).First(); return this; } @@ -75,6 +76,8 @@ public bool IsFinishNodeSteps => !Steps.Any(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished); public bool IsFinishAllSteps => Steps.Any() && !Steps.Any(q => !q.IsFinished); //public int CurStep => Steps.Where(q => !q.IsFinished).OrderBy(q => q.Sequence).FirstOrDefault()?.Sequence ?? 0; + private DbClient _MainDB; + public DbClient MainDB => _MainDB; private DbClient CommitDB; /// <summary> /// 鏄惁闇�瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽緟闇�瑕佺殑鏃跺�欏啀鎻愪氦 @@ -107,7 +110,7 @@ { if (!WoContext.ExistsBatch(input.OrderNo, CurLine.LINE_CODE, batchNo, true)) { - var wo = await Biz.Db.Queryable<BIZ_MES_WO>().ByAuth(input.AuthOption).Where(q => q.ORDER_NO == input.OrderNo).FirstAsync(); + var wo = await MainDB.Queryable<BIZ_MES_WO>().ByAuth(input.AuthOption).Where(q => q.ORDER_NO == input.OrderNo).FirstAsync(); //楠岃瘉鏄庣粏鏄惁姝g‘ if (wo.IsNullOrEmpty()) { @@ -123,7 +126,7 @@ action.LocaleMsg = new("MES.Transaction.Position.SelectOrder.StatusException", input.OrderNo, wo.STATUS.GetEnumDesc<BIZ_MES_WO.STATUSs>()); return action; } - var batch = await Biz.Db.Queryable<BIZ_MES_WO_BATCH>().ByAuth(input.AuthOption) + var batch = await MainDB.Queryable<BIZ_MES_WO_BATCH>().ByAuth(input.AuthOption) .Where(q => q.ORDER_NO == input.OrderNo && q.ACT_LINE == CurLine.LINE_CODE) .WhereIF(!batchNo.IsNullOrEmpty(), q => q.BATCH_NO == batchNo) .OrderBy(q => q.STATUS).FirstAsync(); @@ -242,6 +245,55 @@ info.NextNode = " 鈥� "; } return info; + } + + /// <summary> + /// 璁剧疆褰撳墠鏉$爜鐨勫伐搴忎俊鎭� + /// </summary> + public ApiAction<SubmitOutput> SetOutPutMqttMsg(ApiAction<SubmitOutput> action, string locale = null) + { + MQTT.Message msg = new() + { + IsSuccessed = action.IsSuccessed, + Content = Biz.T(action.LocaleMsg, locale), + }; + switch (action.Status) + { + case ApiAction.StatusCodes.Success: + if (action.Data.IsFinished) + { + msg.Voice = MQTT.Voice.Pass; + msg.Color = "#FF228B22"; + } + else + { + msg.Voice = MQTT.Voice.Success; + msg.Color = "#FF1E90FF"; + } + break; + case ApiAction.StatusCodes.Warning: + msg.Voice = MQTT.Voice.Warning; + msg.Color = "#FFB8860B"; + break; + case ApiAction.StatusCodes.Error: + case ApiAction.StatusCodes.Failed: + msg.Voice = MQTT.Voice.Fail; + msg.Color = "#FFFF0000"; + break; + case ApiAction.StatusCodes.Exception: + msg.Voice = MQTT.Voice.Fail; + msg.Color = "#FF8B0000"; + break; + case ApiAction.StatusCodes.Normal: + case ApiAction.StatusCodes.NeedConfrim: + case ApiAction.StatusCodes.Confrimed: + default: + msg.Voice = MQTT.Voice.Silent; + msg.Color = "#FF000000"; + break; + } + action.Data.MqttMsg = msg; + return action; } /// <summary> @@ -663,7 +715,7 @@ { snList.Add(_orderAction.CurPkg.CustSN?.FLOW_SN); } - _lotnos = string.Join(",", Biz.Db.Queryable<MES_CUST_SN>() + _lotnos = string.Join(",", MainDB.Queryable<MES_CUST_SN>() .Where((q) => snList.Contains(q.FLOW_SN)) .Select((q) => q.WORK_ORDER).Distinct().ToList()); return _lotnos; @@ -742,7 +794,7 @@ private string GetLabelVarWo(BAS_LABEL_VAR lv, string value) { string result = ""; - var labelVarwos = Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(x => x.LABEL_ID == lv.LABEL_ID && x.VAR_NAME == lv.VAR_NAME).ToList(); + var labelVarwos = MainDB.Queryable<BAS_LABEL_VAR_WO>().Where(x => x.LABEL_ID == lv.LABEL_ID && x.VAR_NAME == lv.VAR_NAME).ToList(); if (labelVarwos.Any(q => q.WORK_ORDER == WorkBatch.Batch.ORDER_NO)) { result = labelVarwos.First(q => q.WORK_ORDER == WorkBatch.Batch.ORDER_NO).VAR_VALUE; @@ -854,7 +906,7 @@ private string GetHuaWeiWeek(string pkgOrder, List<string> snList) { Dictionary<string, string> dic = new(); - var snOrder = Biz.Db.Queryable<MES_CUST_SN, BIZ_MES_WO>((q, w) => new JoinQueryInfos(JoinType.Left, q.WORK_ORDER == w.ORDER_NO)) + var snOrder = MainDB.Queryable<MES_CUST_SN, BIZ_MES_WO>((q, w) => new JoinQueryInfos(JoinType.Left, q.WORK_ORDER == w.ORDER_NO)) .Where((q, w) => q.PKG_ORDER == pkgOrder && (snList.Contains(q.FLOW_SN) || snList.Contains(q.CUST_SN))) .Select((q, w) => new { q.PKG_ORDER, q.WORK_ORDER, w.ACT_START_TIME, w.PLAN_START_TIME, q.FLOW_SN, q.CUST_SN }).ToList(); foreach (var sn in snList) diff --git a/Tiger.Business.MES/Transaction/TestNode.cs b/Tiger.Business.MES/Transaction/TestNode.cs index acea8bc..62455eb 100644 --- a/Tiger.Business.MES/Transaction/TestNode.cs +++ b/Tiger.Business.MES/Transaction/TestNode.cs @@ -37,7 +37,7 @@ //宸ユ鍒楄〃涓虹┖鎴栬�呭伐搴忚妭鐐瑰伐姝ユ湁鏈畬鎴愭椂锛屼紭鍏堝畬鎴愬伐搴忚妭鐐瑰伐姝� if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps) { - 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)) + var wosns = MainDB.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(); @@ -100,7 +100,7 @@ action.Data.OperInfo = new(); action.IsSuccessed = result.IsSuccessed; action.LocaleMsg = result.LocaleMsg; - return action; + return SetOutPutMqttMsg(action, input.Locale); } } //鏇存柊CurBatch @@ -219,7 +219,7 @@ //action.CatchExceptionWithLog(ex, $"娴嬭瘯宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�"); action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.TestNode.SubmitException")); } - return action; + return SetOutPutMqttMsg(action, input.Locale); } /// <summary> @@ -257,7 +257,7 @@ return woStatus; } - var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); + var wipSNs = MainDB.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); if (wipSNs.IsNullOrEmpty()) { var wipSN = new MES_WIP_DATA() diff --git a/Tiger.Business.MES/Transaction/YadaPacking.cs b/Tiger.Business.MES/Transaction/YadaPacking.cs index 7ea9974..ee9a561 100644 --- a/Tiger.Business.MES/Transaction/YadaPacking.cs +++ b/Tiger.Business.MES/Transaction/YadaPacking.cs @@ -63,7 +63,7 @@ // action.IsSuccessed = false; // action.LocaleMsg = new($"鍖呰鏁伴噺[{input.Qty}]涓嶆纭紝璇烽噸鏂拌緭鍏ユ暟閲忓悗缁х画鍖呰鎿嶄綔"); // //action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.QtyError", input.Qty); - // return action; + // return SetOutPutMqttMsg(action, input.Locale); //} if (input.Options.ContainsKey("IsPrintCustomerLabel")) { @@ -91,7 +91,7 @@ //宸ユ鍒楄〃涓虹┖鎴栬�呭伐搴忚妭鐐瑰伐姝ユ湁鏈畬鎴愭椂锛屼紭鍏堝畬鎴愬伐搴忚妭鐐瑰伐姝� if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps) { - 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)) + var wosns = MainDB.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; @@ -142,7 +142,7 @@ action.IsSuccessed = false; //action.LocaleMsg = new($"鏉$爜[{0}]鏄浇鍏锋潯鐮侊紝璇锋壂鎻忚浇鍏蜂腑鐨勪骇鍝佹潯鐮佺户缁寘瑁呮搷浣�"); action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.OnlyMinPackage", input.SN); - return action; + return SetOutPutMqttMsg(action, input.Locale); } var curPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null; if (!curPkg.IsNullOrEmpty() && !curPkg.IsFinished && curPkg.WorkBatch != curSNs.First().Batch.BATCH_NO) @@ -152,7 +152,7 @@ action.IsSuccessed = false; //action.LocaleMsg = new($"姝e湪鍖呰宸ュ崟鎵规[{0}]鐨勪骇鍝侊紝璇峰厛瀹屾垚褰撳墠鍖呰鍚庡啀鎵弿鍏朵粬鎵规[{1}]鐨勪骇鍝乕{2}]"); action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.BatchError", curPkg.WorkBatch, curSNs.First().Batch.BATCH_NO, input.SN); - return action; + return SetOutPutMqttMsg(action, input.Locale); } if (curSNs.First().Batch.ACT_LINE != CurLine.LINE_CODE) { @@ -174,7 +174,7 @@ action.Data.OperInfo = new(); action.IsSuccessed = result.IsSuccessed; action.LocaleMsg = result.LocaleMsg; - return action; + return SetOutPutMqttMsg(action, input.Locale); } } //鏇存柊CurBatch @@ -297,7 +297,7 @@ 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; + return SetOutPutMqttMsg(action, input.Locale); } /// <summary> @@ -335,7 +335,7 @@ return woStatus; } - var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); + var wipSNs = MainDB.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).Where(q => q.FINISHED_FLAG != "Y").ToList(); if (wipSNs.IsNullOrEmpty()) { var wipSN = new MES_WIP_DATA() @@ -404,8 +404,8 @@ { CurShipQty = ship.ShipQty; IsPrintCustomerLabel = true; - 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(); + SugarParameter[] pars = MainDB.Ado.GetParameters(new { BATCH = CurBatch.Batch.BATCH_NO, NodeIdOrName = curNode.NODE_NAME }); + var list = MainDB.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(); @@ -904,7 +904,7 @@ action.IsSuccessed = false; //action.LocaleMsg = new($"鍑鸿揣鏁伴噺璁惧畾涓篬{0}]锛岀洰鍓嶅寘瑁呬簡[{1}]锛屽寘瑁呭熬鏁扮殑鏁伴噺蹇呴渶鏄痆{2}]锛岃瑁呭鏁伴噺鍚庡啀缁撴潫鍖呰"); action.LocaleMsg = new("MES.Transaction.PackingNode.NotMatchShipQty", shipQty, curQty, shipQty % ruleQty); - return action; + return SetOutPutMqttMsg(action); } NodeCmd = "PkgSubmit"; @@ -937,7 +937,7 @@ action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭墜鍔ㄧ粨鏉熷寘瑁呭紓甯�"); NodeCmd = null; } - return action; + return SetOutPutMqttMsg(action); } /// <summary> @@ -951,8 +951,8 @@ 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 LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); + var label = CurPkg.Item.LABEL_CODE.IsNullOrEmpty() ? null : MainDB.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() { diff --git a/Tiger.Business.MES/WorkAction/Assembly.cs b/Tiger.Business.MES/WorkAction/Assembly.cs index e5b0ed7..7173fd3 100644 --- a/Tiger.Business.MES/WorkAction/Assembly.cs +++ b/Tiger.Business.MES/WorkAction/Assembly.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -34,6 +35,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -41,7 +43,7 @@ #endregion //鑾峰彇浜у搧BOM - Boms = Biz.Db.Queryable<BAS_PROD_BOM>().Where(q => q.PROD_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).ToList(); + Boms = MainDB.Queryable<BAS_PROD_BOM>().Where(q => q.PROD_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).ToList(); //鑾峰彇涓婃枡鐗╂枡 var assyList = new List<AssemblySetting>(); try @@ -57,7 +59,7 @@ } } var codes = assyList.Select(q => q.ITEM_CODE).ToList(); - var items = Biz.Db.Queryable<BAS_ITEM>().Where(q => codes.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); + var items = MainDB.Queryable<BAS_ITEM>().Where(q => codes.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); //鑾峰彇涓婃枡鐗╂枡鐨勬浛浠f枡 foreach (var assy in assyList) { @@ -74,7 +76,7 @@ if (!bom.IsNullOrEmpty()) { var subs = bom.SUB_CODE.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); - var surItems = Biz.Db.Queryable<BAS_ITEM>().Where(q => subs.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); + var surItems = MainDB.Queryable<BAS_ITEM>().Where(q => subs.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); foreach (var sub in surItems) { if (!item.SubItems.Any(q => q.ITEM_CODE == sub.ITEM_CODE)) diff --git a/Tiger.Business.MES/WorkAction/IPQC.cs b/Tiger.Business.MES/WorkAction/IPQC.cs index 8e423ab..6034819 100644 --- a/Tiger.Business.MES/WorkAction/IPQC.cs +++ b/Tiger.Business.MES/WorkAction/IPQC.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -32,6 +33,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; diff --git a/Tiger.Business.MES/WorkAction/PackageInputCheck.cs b/Tiger.Business.MES/WorkAction/PackageInputCheck.cs index bb135d0..1d2cb52 100644 --- a/Tiger.Business.MES/WorkAction/PackageInputCheck.cs +++ b/Tiger.Business.MES/WorkAction/PackageInputCheck.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -37,6 +38,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -44,7 +46,7 @@ #endregion //鑾峰彇褰撳墠浜у搧鍦ㄥ綋鍓嶅鎴风殑鍏崇郴 - CustInfo = Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); + CustInfo = MainDB.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); CurStep.Message = Biz.L("鎵弿鍘傚唴鏉$爜鎴栧鎴锋潯鐮�"); CurStep.Status = StepStatus.Normal; @@ -118,7 +120,7 @@ } U9Cost = (DateTime.Now - begin).TotalSeconds; - FlowCSN = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); + FlowCSN = MainDB.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); //鎵句笉鍒扮敓浜ц褰曪紝璁や负鎵弿閿欒 if (FlowCSN.IsNullOrEmpty()) { diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 15fbec4..528c272 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -18,6 +18,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -48,19 +49,20 @@ CurPosition = position; NodeAct = nodeAct; Setting = setting; + MainDB = position.MainDB; #endregion //姝e父鏉$爜杩囩珯鎵ц鍖呰琛屼负 - PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First(); + PkgRule = MainDB.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First(); //鏍规嵁琛屼负璁剧疆鑾峰彇澶氬眰鍖呰鐨勬爣绛炬墦鍗版ā鏉垮瓧鍏� var codes = (Setting.OPTION_1 ?? "").JsonToObject<List<WipPkgItem>>() ?? new List<WipPkgItem>(); foreach (var code in codes) { - var label = code.LABEL_CODE.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code.LABEL_CODE).IncludesAllFirstLayer().First(); + var label = code.LABEL_CODE.IsNullOrEmpty() ? null : MainDB.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code.LABEL_CODE).IncludesAllFirstLayer().First(); LabelDic.Add(code.PKG_LEVEL, label); } - LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); + LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈変笖鏈寘瑁呭畬鎴愬垯鑾峰彇褰撳墠鐨勫寘瑁呰褰� if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty() && !(CurPosition.Context["CurPackage"] as WipPkg).IsFinished) @@ -76,7 +78,7 @@ RULE_CODE = PkgRule.RULE_CODE, RULE_NAME = PkgRule.RULE_NAME, PROD_CODE = CurPosition.WorkBatch.WO.ITEM_CODE, - CustSN = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == CurPosition.CurWipSNs.First().FLOW_SN).First(), + CustSN = MainDB.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == CurPosition.CurWipSNs.First().FLOW_SN).First(), Item = new WipPkgItem() { PKG_CODE = max.PKG_CODE, @@ -125,7 +127,7 @@ //鑾峰彇鏄惁鍖呰瀹屽悗闇�瑕佺О閲� CurPkg.NeedWeighing = Setting.OPTION_2 == "Y"; //鑾峰彇鍖呰瑙勫垯鐨勭О閲嶈寖鍥� - PkgProd = Biz.Db.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).First(); + PkgProd = MainDB.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).First(); CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("璁板綍鍖呰鏁版嵁")); } @@ -141,6 +143,7 @@ CurPosition = position; NodeAct = null; Setting = null; + MainDB = position.MainDB; #endregion //鑾峰彇褰撳墠鐨勫寘瑁呰褰� if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty()) @@ -152,13 +155,13 @@ throw new Exception("鎵句笉鍒板寘瑁呮暟鎹紝璇烽噸鏂版壂鎻忛渶瑕佸寘瑁呯殑浜у搧"); } //鎵嬪姩缁撴潫鍖呰涓撶敤锛屼复鏃舵墽琛岃涓� - PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == CurPkg.RULE_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First(); + PkgRule = MainDB.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == CurPkg.RULE_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First(); //鏍规嵁琛屼负璁剧疆鑾峰彇澶氬眰鍖呰鐨勬爣绛炬墦鍗版ā鏉垮瓧鍏� LabelDic = CurPosition.Context["CurLabelDic"] as Dictionary<int, BAS_LABEL_TEMP>; - LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); + LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); //鑾峰彇鍖呰瑙勫垯鐨勭О閲嶈寖鍥� - PkgProd = Biz.Db.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPkg.PROD_CODE).First(); + PkgProd = MainDB.Queryable<BAS_PKG_PROD>().Where(q => q.PKG_RULE_ID == PkgRule.ID && q.ITEM_CODE == CurPkg.PROD_CODE).First(); //鎶� CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("璁板綍鍖呰鏁版嵁")); @@ -566,7 +569,7 @@ IsFinished = true, }; - CurPkgItem.Package = Biz.Db.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPkgItem.SN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() + CurPkgItem.Package = MainDB.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPkgItem.SN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() { AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, AUTH_PROD = CurPosition.CurLine.LINE_CODE, diff --git a/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs b/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs index 2eb4b6d..2a79431 100644 --- a/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs +++ b/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -37,14 +38,15 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; Setting = setting; #endregion - 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(); + Label = MainDB.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == setting.LABEL_CODE).IncludesAllFirstLayer().First(); + LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); CurStep.Message = Biz.L("绛夊緟鏍囩鎵撳嵃"); CurStep.Status = StepStatus.Normal; diff --git a/Tiger.Business.MES/WorkAction/PrintLabel.cs b/Tiger.Business.MES/WorkAction/PrintLabel.cs index ca49e4b..29a1b6b 100644 --- a/Tiger.Business.MES/WorkAction/PrintLabel.cs +++ b/Tiger.Business.MES/WorkAction/PrintLabel.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -34,14 +35,15 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; Setting = setting; #endregion - 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(); + Label = MainDB.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == setting.LABEL_CODE).IncludesAllFirstLayer().First(); + LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); CurStep.Message = Biz.L("绛夊緟鏍囩鎵撳嵃"); CurStep.Status = StepStatus.Normal; diff --git a/Tiger.Business.MES/WorkAction/ThreeInOne.cs b/Tiger.Business.MES/WorkAction/ThreeInOne.cs index 1a77309..abcb818 100644 --- a/Tiger.Business.MES/WorkAction/ThreeInOne.cs +++ b/Tiger.Business.MES/WorkAction/ThreeInOne.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -39,6 +40,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -46,11 +48,11 @@ #endregion //鑾峰彇鎵撳嵃妯℃澘 - 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(); + Label = MainDB.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == setting.LABEL_CODE).IncludesAllFirstLayer().First(); + LabelPV = MainDB.Queryable<BAS_LABEL_PV>().ToList(); //鑾峰彇褰撳墠浜у搧鍦ㄥ綋鍓嶅鎴风殑鍏崇郴 - CustInfo = Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); + CustInfo = MainDB.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); CurStep.Message = Biz.L("鎵弿鍘傚唴鏉$爜鎴栧鎴锋潯鐮�"); CurStep.Status = StepStatus.Normal; @@ -100,7 +102,7 @@ } var wipSn = CurPosition.CurWipSNs.First(); - FlowCSN = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); + FlowCSN = MainDB.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); //鎵句笉鍒扮敓浜ц褰曪紝璁や负鎵弿閿欒 if (FlowCSN.IsNullOrEmpty()) { @@ -264,7 +266,7 @@ var action = new ApiAction<SubmitOutput>(new SubmitOutput()); //鏌ヨ鏄惁瀛樺湪宸插鍏ョ殑瀹㈡埛鏉$爜 - CustCSN = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.CUST_SN == input.Data).First(); + CustCSN = MainDB.Queryable<MES_CUST_SN>().Where(q => q.CUST_SN == input.Data).First(); var isOK = true; //瀹㈡埛鏉$爜鎵埌鍘傚唴鏉$爜 diff --git a/Tiger.Business.MES/WorkAction/VerifyCustomSN.cs b/Tiger.Business.MES/WorkAction/VerifyCustomSN.cs index 9c18553..cac915d 100644 --- a/Tiger.Business.MES/WorkAction/VerifyCustomSN.cs +++ b/Tiger.Business.MES/WorkAction/VerifyCustomSN.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -34,6 +35,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -41,7 +43,7 @@ #endregion //鑾峰彇褰撳墠浜у搧鍦ㄥ綋鍓嶅鎴风殑鍏崇郴 - CustInfo = Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); + CustInfo = MainDB.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); CurStep.SetStatusMessage(StepStatus.Normal, Biz.L("楠岃瘉鏄惁瀹㈡埛鏍囩")); } diff --git a/Tiger.Business.MES/WorkAction/Weighing.cs b/Tiger.Business.MES/WorkAction/Weighing.cs index 091f1a0..354b4bb 100644 --- a/Tiger.Business.MES/WorkAction/Weighing.cs +++ b/Tiger.Business.MES/WorkAction/Weighing.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -33,13 +34,14 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; Setting = setting; #endregion - CurPkg = Biz.Db.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() + CurPkg = MainDB.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() { AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, AUTH_PROD = CurPosition.CurLine.LINE_CODE, diff --git a/Tiger.Business.MES/WorkAction/WipExtInfo.cs b/Tiger.Business.MES/WorkAction/WipExtInfo.cs index 6f3aa22..238d3fe 100644 --- a/Tiger.Business.MES/WorkAction/WipExtInfo.cs +++ b/Tiger.Business.MES/WorkAction/WipExtInfo.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -34,6 +35,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -42,9 +44,9 @@ //鑾峰彇鎵╁睍瀛楁瀹氫箟 var seq = Setting.ITEM_CODE.ToInt32(); - ExtInfo = Biz.Db.Queryable<BAS_WIP_EXT>().Where(q => q.SEQ == seq).First(); + ExtInfo = MainDB.Queryable<BAS_WIP_EXT>().Where(q => q.SEQ == seq).First(); //鑾峰彇褰撳墠SN鐨勬墿灞曚俊鎭� - CurWipExt = Biz.Db.Queryable<MES_WIP_EXT>().Where(q => CurPosition.CurWipSNs.Any(w => w.SN == q.SN)).ToList(); + CurWipExt = MainDB.Queryable<MES_WIP_EXT>().Where(q => CurPosition.CurWipSNs.Any(w => w.SN == q.SN)).ToList(); foreach (var wipSN in CurPosition.CurWipSNs) { if (!CurWipExt.Any(q => q.SN == wipSN.SN)) diff --git a/Tiger.Business.MES/WorkAction/YadaAssembly.cs b/Tiger.Business.MES/WorkAction/YadaAssembly.cs index 3168265..e199743 100644 --- a/Tiger.Business.MES/WorkAction/YadaAssembly.cs +++ b/Tiger.Business.MES/WorkAction/YadaAssembly.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -36,6 +37,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -43,7 +45,7 @@ #endregion //鑾峰彇浜у搧BOM - Boms = Biz.Db.Queryable<BAS_PROD_BOM>().Where(q => q.PROD_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).ToList(); + Boms = MainDB.Queryable<BAS_PROD_BOM>().Where(q => q.PROD_CODE == CurPosition.WorkBatch.WO.ITEM_CODE).ToList(); //鑾峰彇涓婃枡鐗╂枡 var assyList = new List<AssemblySetting>(); try @@ -59,7 +61,7 @@ } } var codes = assyList.Select(q => q.ITEM_CODE).ToList(); - var items = Biz.Db.Queryable<BAS_ITEM>().Where(q => codes.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); + var items = MainDB.Queryable<BAS_ITEM>().Where(q => codes.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); //鑾峰彇涓婃枡鐗╂枡鐨勬浛浠f枡 foreach (var assy in assyList) { @@ -76,7 +78,7 @@ if (!bom.IsNullOrEmpty()) { var subs = bom.SUB_CODE.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); - var surItems = Biz.Db.Queryable<BAS_ITEM>().Where(q => subs.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); + var surItems = MainDB.Queryable<BAS_ITEM>().Where(q => subs.Contains(q.ITEM_CODE) && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).ToList(); foreach (var sub in surItems) { if (!item.SubItems.Any(q => q.ITEM_CODE == sub.ITEM_CODE)) @@ -208,7 +210,7 @@ { isOK = false; //鍦ㄦ帹鑽愭壒娆℃墍灞炲伐鍗曠殑鏉$爜涓瓨鍦� - if (Biz.Db.Queryable<BIZ_MES_WO_SN>().Any(q => suggest.Contains(q.WORK_ORDER) && (q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN))) + if (MainDB.Queryable<BIZ_MES_WO_SN>().Any(q => suggest.Contains(q.WORK_ORDER) && (q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN))) { isOK = true; } diff --git a/Tiger.Business.MES/WorkAction/YadaWoReport.cs b/Tiger.Business.MES/WorkAction/YadaWoReport.cs index 4e6da83..3dfb053 100644 --- a/Tiger.Business.MES/WorkAction/YadaWoReport.cs +++ b/Tiger.Business.MES/WorkAction/YadaWoReport.cs @@ -16,6 +16,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -33,6 +34,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; diff --git a/Tiger.Business.MESTests/Tiger.Business.MESTests.csproj b/Tiger.Business.MESTests/Tiger.Business.MESTests.csproj index 2d677c9..b2cf7a6 100644 --- a/Tiger.Business.MESTests/Tiger.Business.MESTests.csproj +++ b/Tiger.Business.MESTests/Tiger.Business.MESTests.csproj @@ -17,9 +17,9 @@ <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" /> - <PackageReference Include="MSTest.TestAdapter" Version="3.6.0" /> - <PackageReference Include="MSTest.TestFramework" Version="3.6.0" /> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" /> + <PackageReference Include="MSTest.TestAdapter" Version="3.6.3" /> + <PackageReference Include="MSTest.TestFramework" Version="3.6.3" /> </ItemGroup> <ItemGroup> diff --git a/Tiger.Dependencies/Tiger.Dependencies.csproj b/Tiger.Dependencies/Tiger.Dependencies.csproj index 737c2f7..869b90a 100644 --- a/Tiger.Dependencies/Tiger.Dependencies.csproj +++ b/Tiger.Dependencies/Tiger.Dependencies.csproj @@ -17,7 +17,7 @@ <PackageReference Include="MailKit" Version="4.8.0" /> <PackageReference Include="NLog" Version="5.3.4" /> <PackageReference Include="NLog.Database" Version="5.3.4" /> - <PackageReference Include="Rhea.Common" Version="6.1.7.1360" /> + <PackageReference Include="Rhea.Common" Version="6.1.7.1361" /> <PackageReference Include="SharpZipLib" Version="1.4.2" /> <PackageReference Include="Sundial" Version="2.64.0" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="7.1.0" /> diff --git a/Tiger.IBusiness.MES/Transaction/IPosition.cs b/Tiger.IBusiness.MES/Transaction/IPosition.cs index c90e1d9..75bc542 100644 --- a/Tiger.IBusiness.MES/Transaction/IPosition.cs +++ b/Tiger.IBusiness.MES/Transaction/IPosition.cs @@ -12,6 +12,7 @@ public interface IPosition : IMESTransaction { #region Propertys & Variables + public DbClient MainDB { get; } public string UserCode { get; set; } public string PostCode { get; set; } public MES_FACTORY CurFactory { get; set; } diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs index 0ec700f..d74c353 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs @@ -62,10 +62,6 @@ /// </summary> public bool IsFinished { get; set; } = false; /// <summary> - /// 鐭秷鎭� - /// </summary> - public ShortMessage ShortMsg { get; set; } - /// <summary> /// 褰撳墠鎿嶄綔鐨勮妭鐐瑰悕绉� /// </summary> public string NodeName { get; set; } @@ -82,6 +78,14 @@ /// </summary> public string NextStepID { get; set; } /// <summary> + /// 鐭秷鎭� + /// </summary> + public ShortMessage ShortMsg { get; set; } + /// <summary> + /// Mqtt娑堟伅 + /// </summary> + public MQTT.Message MqttMsg { get; set; } + /// <summary> /// 褰撳墠鎿嶄綔杩斿洖鐨勬暟鎹� /// </summary> public object Data { get; set; } diff --git a/Tiger.Model.Net/Entitys/MQTTEntity.cs b/Tiger.Model.Net/Entitys/MQTTEntity.cs new file mode 100644 index 0000000..41b82cf --- /dev/null +++ b/Tiger.Model.Net/Entitys/MQTTEntity.cs @@ -0,0 +1,60 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; + +namespace Tiger.Model +{ + public class MQTT + { + public class Message + { + public Message() + { + + } + + public Message(bool isSuccessed, Voice voice, string content, string color) + { + IsSuccessed = isSuccessed; + Voice = voice; + Content = content; + Color = color; + } + + /// <summary> + /// 鏄惁鎴愬姛 + /// </summary> + public bool IsSuccessed { get; set; } + + /// <summary> + /// 鏄惁鍙戝0 + /// </summary> + public Voice Voice { get; set; } + + /// <summary> + /// 娑堟伅 + /// </summary> + public string Content { get; set; } + + /// <summary> + /// 棰滆壊 + /// </summary> + public string Color { get; set; } + } + + public enum Voice + { + [Description("涓嶅彂闊�")] + Silent, + [Description("鎴愬姛")] + Success, + [Description("閫氳繃")] + Pass, + [Description("澶辫触")] + Fail, + [Description("璀﹀憡")] + Warning, + } + } +} diff --git a/Tiger.Model.Net/Tiger.Model.Net.csproj b/Tiger.Model.Net/Tiger.Model.Net.csproj index 306d65b..39d5e4e 100644 --- a/Tiger.Model.Net/Tiger.Model.Net.csproj +++ b/Tiger.Model.Net/Tiger.Model.Net.csproj @@ -61,8 +61,8 @@ <ErrorReport>prompt</ErrorReport> </PropertyGroup> <ItemGroup> - <Reference Include="SqlSugar, Version=5.1.4.168, Culture=neutral, processorArchitecture=MSIL"> - <HintPath>..\packages\SqlSugar.5.1.4.169\lib\SqlSugar.dll</HintPath> + <Reference Include="SqlSugar, Version=5.1.4.170, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\SqlSugar.5.1.4.171-preview11\lib\SqlSugar.dll</HintPath> </Reference> <Reference Include="System" /> <Reference Include="System.ComponentModel.DataAnnotations" /> @@ -77,6 +77,7 @@ <ItemGroup> <Compile Include="Base\DbEntityBase.cs" /> <Compile Include="DTO\MESDTO.cs" /> + <Compile Include="Entitys\MQTTEntity.cs" /> <Compile Include="Entitys\Api\Base.cs" /> <Compile Include="Entitys\Automate\SNInfo.cs" /> <Compile Include="Entitys\Automate\Vechicle.cs" /> diff --git a/Tiger.Model.Net/packages.config b/Tiger.Model.Net/packages.config index 4b69700..37ba543 100644 --- a/Tiger.Model.Net/packages.config +++ b/Tiger.Model.Net/packages.config @@ -1,5 +1,5 @@ 锘�<?xml version="1.0" encoding="utf-8"?> <packages> <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net452" /> - <package id="SqlSugar" version="5.1.4.169" targetFramework="net48" /> + <package id="SqlSugar" version="5.1.4.171-preview11" targetFramework="net48" /> </packages> \ No newline at end of file -- Gitblit v1.9.3