From ba278e6a0e523cdb672b32fd7907417547a0c39a Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期五, 23 八月 2024 20:37:45 +0800 Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024 --- Tiger.Business.MES/WorkAction/PackingAction.cs | 182 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 137 insertions(+), 45 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 4c47c62..272119f 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -175,6 +175,7 @@ CurCmd = data; PrintTimes++; action.Data.Data = data; + action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal); //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]"); action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, min.PKG_LEVEL, min.PkgType.PKG_NAME, LabelDic[min.PKG_LEVEL]?.LABEL_CODE, LabelDic[min.PKG_LEVEL].LABEL_NAME); } @@ -203,6 +204,7 @@ if (!pInput.IsFinish || pInput.PkgSN.IsNullOrEmpty()) { var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel); + action.Data.ShortMsg = new("鎵弿閿欒", ShortMessage.Types.Error); action.IsSuccessed = false; //action.LocaleMsg = new($"鏉$爜鎵弿澶辫触锛岃閲嶆柊鎵弿绗瑊dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.ScanFail", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); @@ -212,6 +214,7 @@ if (GetPackageList(CurPkg.Item).Any(q => q.SN == pInput.PkgSN)) { var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel); + action.Data.ShortMsg = new("鎵弿閿欒", ShortMessage.Types.Error); action.IsSuccessed = false; //action.LocaleMsg = new($"鏉$爜[{pInput.PkgSN}]鏃犻渶閲嶅鎵弿锛岃鎵弿绗瑊dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.ScanRepeat", pInput.PkgSN, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); @@ -221,6 +224,10 @@ CurCmd = null; PrintTimes = 0; action = SavePkgData(input, action); + if (action.IsSuccessed) + { + action.Data.ShortMsg = new("鎵弿鎴愬姛", ShortMessage.Types.Success); + } } break; //Print锛氭墦鍗帮紝鎵撳嵃褰撳墠鍖呰灞傜骇鐨勬爣绛� @@ -238,6 +245,7 @@ data.PkgLevel = dtl.PKG_LEVEL; CurCmd = data; action.Data.Data = data; + action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal); //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); } @@ -249,6 +257,7 @@ { PrintTimes++; action.Data.Data = CurCmd; + action.Data.ShortMsg = new("閲嶆柊鎵撳嵃", ShortMessage.Types.Normal); //action.LocaleMsg = new Locale($"寮�濮媨PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]"); action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); } @@ -256,11 +265,77 @@ { CurCmd = null; PrintTimes = 0; + action.Data.ShortMsg = new("鎵撳嵃澶辫触", ShortMessage.Types.Failed); action.IsSuccessed = false; //action.LocaleMsg = new($"灏濊瘯绗瑊PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]澶辫触锛屽伐搴忓凡閲嶇疆锛岃閲嶆柊鎵弿杩涚珯浜у搧鏉$爜"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PrintFail3Times", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); CurPosition.ResetNode(); } + } + } + break; + // Weighing锛氱О閲嶏紝瀹屾垚鍖呰鍚庡鏁翠釜鍖呰鎴愮О閲� + case "Weighing": + if (CurCmd.ExecCode == "Weighing") + { + if (!pInput.WeightInfo.IsNullOrEmpty() && pInput.WeightInfo.Weight > 0) + { + CurCmd = null; + PrintTimes = 0; + CurPkg.WeightInfo.Weight = pInput.WeightInfo.Weight; + CurPkg.WeightInfo.Unit = pInput.WeightInfo.Unit; + NeedWeighing = false; + + //绉伴噸鎴愬姛锛岀户缁涓� + var dtl = PkgRule.Details.FirstOrDefault(q => q.PKG_LEVEL == FinishLevel + 1); + //鏈�澶栧眰鍖呰宸插鐞嗗畬鎴愬垯鐩存帴缁撴潫琛屼负 + if (CurPkg.Item.PKG_LEVEL == FinishLevel) + { + action = End(); + } + //鏈�澶栧眰鍖呰鏈墦鍗版壂鎻忓垯缁х画 + else + { + //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗� + if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) + { + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Scan"; + data.PkgLevel = dtl.PKG_LEVEL; + CurCmd = data; + action.Data.Data = data; + action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal); + //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); + } + else + { + //璁剧疆鎵撳嵃鍙橀噺鍊� + LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); + + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Print"; + data.PkgLevel = dtl.PKG_LEVEL; + data.PrintLable = LabelDic[dtl.PKG_LEVEL]; + CurCmd = data; + PrintTimes++; + action.Data.Data = data; + action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal); + //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]"); + action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); + } + } + + + } + else + { + action.IsSuccessed = false; + action.Data.Data = CurCmd; + action.Data.ShortMsg = new("绉伴噸澶辫触", ShortMessage.Types.Failed); + //action.LocaleMsg = new($"澶栧寘瑁呯О閲嶆暟鎹紓甯革紝璇烽噸鏂颁笂绉扮О閲�"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighingAgain"); + return action; } } break; @@ -270,6 +345,7 @@ { CurCmd = null; PrintTimes = 0; + //鎵撳嵃鍚庣О閲� if (NeedWeighing) { var data = new PackingActionOutput() { PkgInfo = CurPkg }; @@ -277,33 +353,13 @@ data.PkgLevel = CurPkgItem.PKG_LEVEL; CurCmd = data; action.Data.Data = data; + action.Data.ShortMsg = new("鍖呰鎴愬姛", ShortMessage.Types.Success); //action.LocaleMsg = new($"璇锋妸鍖呰[{CurPkgItem.Package.SN}]涓婄О绉伴噸"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighing", CurPkgItem.Package.SN); } else { action = End(); - } - } - break; - // Complete锛氬畬鎴愶紝瀹屾垚鍏ㄩ儴鍖呰鍚庣粨鏉熻涓� - case "Weighing": - if (CurCmd.ExecCode == "Weighing") - { - if (!pInput.WeightInfo.IsNullOrEmpty() && pInput.WeightInfo.Weight > 0) - { - CurCmd = null; - PrintTimes = 0; - CurPkgItem.Package.WEIGHT = pInput.WeightInfo.Weight; - CurPkgItem.Package.WEIGHT_UNIT = pInput.WeightInfo.Unit; - action = End(); - } - else - { - action.IsSuccessed = false; - //action.LocaleMsg = new($"鍖呰[{CurPkgItem.Package.SN}]绉伴噸鏁版嵁寮傚父锛岃閲嶆柊涓婄О绉伴噸"); - action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighingAgain", CurPkgItem.Package.SN); - return action; } } break; @@ -331,6 +387,7 @@ data.PkgLevel = dtl.PKG_LEVEL; CurCmd = data; action.Data.Data = data; + action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal); //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); } @@ -346,6 +403,7 @@ CurCmd = data; PrintTimes++; action.Data.Data = data; + action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal); //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]"); action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); } @@ -486,31 +544,48 @@ //娣诲姞鏄庣粏鍚庡垽鏂綋鍓嶅寘瑁呭眰绾х殑鏄庣粏鏁伴噺鏄惁绛変簬鍖呰鏁伴噺锛岃嫢鐩哥瓑鍒欐爣璁板綋鍓嶅寘瑁呭眰绾т负瀹屾垚骞跺皾璇曟墦鍗版爣绛� if (CurPkgItem.Items.Count(q => q.IsFinished) == CurPkgItem.PKG_QTY || CurStep.IsNullOrEmpty()) { - //琛屼负璁惧畾鐨凮PTION_1-9鏄寘瑁呬笉鍚屽眰绾х殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗� - if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) + //鎵撳嵃鍓嶇О閲嶏細濡傛灉褰撳墠鐨勫寘瑁呮槑缁嗙殑涓婁竴灞傚寘瑁呭璞℃槸鏈�澶栧眰鍖呰涓旈渶瑕佺О閲嶆椂锛屽厛绉伴噸锛屽悎鏍煎悗鍦ㄥ彂鍗版垨鑰呮壂鎻忔渶澶栧眰鍖呰鏍囩 + if (CurPkgItem.PKG_LEVEL == CurPkg.Item.PKG_LEVEL && NeedWeighing) { var data = new PackingActionOutput() { PkgInfo = CurPkg }; - data.ExecCode = "Scan"; - data.PkgLevel = dtl.PKG_LEVEL; + data.ExecCode = "Weighing"; + data.PkgLevel = CurPkgItem.PKG_LEVEL; CurCmd = data; action.Data.Data = data; - //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); - action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); - } + action.Data.ShortMsg = new("涓婄О绉伴噸", ShortMessage.Types.Success); + //action.LocaleMsg = new($"璇锋妸澶栧寘瑁呬笂绉扮О閲�"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighing"); + } else { - //璁剧疆鎵撳嵃鍙橀噺鍊� - LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); - - var data = new PackingActionOutput() { PkgInfo = CurPkg }; - data.ExecCode = "Print"; - data.PkgLevel = dtl.PKG_LEVEL; - data.PrintLable = LabelDic[dtl.PKG_LEVEL]; - CurCmd = data; - PrintTimes++; - action.Data.Data = data; - //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]"); - action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); + //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗� + if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) + { + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Scan"; + data.PkgLevel = dtl.PKG_LEVEL; + CurCmd = data; + action.Data.Data = data; + action.Data.ShortMsg = new("鎵弿鏍囩", ShortMessage.Types.Normal); + //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME); + } + else + { + //璁剧疆鎵撳嵃鍙橀噺鍊� + LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); + + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Print"; + data.PkgLevel = dtl.PKG_LEVEL; + data.PrintLable = LabelDic[dtl.PKG_LEVEL]; + CurCmd = data; + PrintTimes++; + action.Data.Data = data; + action.Data.ShortMsg = new("鎵撳嵃鏍囩", ShortMessage.Types.Normal); + //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]"); + action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME); + } } } //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔� @@ -522,6 +597,7 @@ //鏁版嵁寮傚父 else { + action.Data.ShortMsg = new("鍖呰閿欒", ShortMessage.Types.Error); var pdtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel); action.IsSuccessed = false; //action.LocaleMsg = new($"瀹㈡埛绔彁浜ょ殑鍖呰灞傜骇[{pdtl.PKG_LEVEL}]({pdtl.PkgType.PKG_NAME})鏁版嵁涓嶆槸姝e湪澶勭悊鐨勫寘瑁呭眰绾{dtl.PKG_LEVEL}]({dtl.PkgType.PKG_NAME})锛屽伐搴忓凡閲嶇疆锛岃閲嶆柊鎵弿杩涚珯浜у搧鏉$爜"); @@ -532,6 +608,7 @@ } catch (System.Exception ex) { + action.Data.ShortMsg = new("鍖呰寮傚父", ShortMessage.Types.Exception); var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel); action.CatchExceptionWithLog(ex, $"鍖呰琛屼负锛氭壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮乕{input.SN}]鍚庝繚瀛樻暟鎹け璐�"); action.IsSuccessed = false; @@ -544,10 +621,14 @@ private List<MES_WIP_PKG> GetPackageList(WipPkgItem parent) { - List<MES_WIP_PKG> list = new() { parent.Package }; + List<MES_WIP_PKG> list = new(); + if (!parent.Package.IsNullOrEmpty()) + { + list.Add(parent.Package); + } foreach (var item in parent.Items) { - item.Package.PARENT_SN = parent.Package.SN; + item.Package.PARENT_SN = parent.Package?.SN; list.AddRange(GetPackageList(item)); } return list; @@ -562,6 +643,7 @@ data.PkgLevel = CurPkg.Item.PKG_LEVEL; CurCmd = data; action.Data.Data = data; + action.Data.ShortMsg = new("淇濆瓨鍖呰鏁版嵁", ShortMessage.Types.Normal); //action.LocaleMsg = new($"绗瑊CurPkg.Item.PKG_LEVEL}灞傚寘瑁匸{CurPkg.Item.PKG_NAME}]宸茬粡鍏ㄩ儴瀹屾垚锛屼繚瀛樺寘瑁呮暟鎹�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PackageComplete", CurPkg.Item.PKG_LEVEL, CurPkg.Item.PKG_NAME); @@ -628,6 +710,12 @@ wipActs.Add(wipAct); } } + //璁板綍澶栧寘瑁呯殑绉伴噸鏁版嵁 + if (CurPkg.IsFinished) + { + CurPkg.Item.Package.WEIGHT = CurPkg.WeightInfo.Weight; + CurPkg.Item.Package.WEIGHT_UNIT = CurPkg.WeightInfo.Unit; + } //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� var _wipActs = wipActs.Clone(); @@ -642,7 +730,7 @@ } if (_pkgList.Any()) { - db.Insertable(_pkgList, CurPosition.UserCode).ExecuteCommand(); + db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); foreach (var pkg in _pkgList) { //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� @@ -668,6 +756,8 @@ CurPosition.NeedTemporaryStoreDBCommitAction = false; //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰� CurPosition.Context.Remove("CurPackage"); + //action.LocaleMsg = new($"鏉$爜[{CurPkg.Item.Package?.SN}]鍖呰瀹屾垚"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPkg.Item.Package.SN); } else { @@ -682,11 +772,13 @@ { CurPosition.Context.Add("CurPackage", CurPkg); } + //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN); } IsFinished = true; - action.LocaleMsg = new($"浜у搧鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚"); - action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN); + action.Data.ShortMsg = new("鍖呰瀹屾垚", ShortMessage.Types.Success); + return action; } -- Gitblit v1.9.3