From 869738d1cdf4385203e7a5fc5e4f2735e9840d46 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 16 十月 2024 00:25:14 +0800 Subject: [PATCH] 优化工序逻辑 --- Tiger.Business.MES/WorkAction/PackingAction.cs | 290 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 154 insertions(+), 136 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index 1e14532..22a62cc 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -29,7 +29,7 @@ public WipPkgItem CurPkgItem { get; set; } public PackingActionOutput CurCmd { get; set; } public int PrintTimes = 0; - public Dictionary<int, BAS_LABEL_TEMP> LabelDic { get; set; } = new(); + public Dictionary<int, BAS_LABEL_TEMP> LabelDic { get; set; } = new(); public List<BAS_LABEL_PV> LabelPV { get; set; } = new(); public int FinishLevel = 0; private bool IsManually => CurStep.IsNullOrEmpty(); @@ -53,15 +53,16 @@ PkgRule = Biz.Db.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>>(); + 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(); LabelDic.Add(code.PKG_LEVEL, label); } LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList(); - //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈夊垯鑾峰彇褰撳墠鐨勫寘瑁呰褰� - if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty()) + + //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈変笖鏈寘瑁呭畬鎴愬垯鑾峰彇褰撳墠鐨勫寘瑁呰褰� + if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty() && !(CurPosition.Context["CurPackage"] as WipPkg).IsFinished) { CurPkg = (CurPosition.Context["CurPackage"] as WipPkg).Clone(); } @@ -81,7 +82,7 @@ IS_MIN_PKG = max.PkgType.IS_MIN_PKG, PKG_LEVEL = max.PKG_LEVEL, PKG_QTY = max.PKG_QTY, - LABEL_CODE = LabelDic[max.PKG_LEVEL]?.LABEL_CODE, + LABEL_CODE = LabelDic.Count > max.PKG_LEVEL ? LabelDic[max.PKG_LEVEL]?.LABEL_CODE : null, } }; WipPkgItem child = null; @@ -96,7 +97,7 @@ IS_MIN_PKG = dtl.PkgType.IS_MIN_PKG, PKG_LEVEL = dtl.PKG_LEVEL, PKG_QTY = dtl.PKG_QTY, - LABEL_CODE = LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, + LABEL_CODE = LabelDic.Count > dtl.PKG_LEVEL ? LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE : null, }; if (!child.IsNullOrEmpty()) { @@ -108,6 +109,13 @@ if (!child.IsNullOrEmpty()) { CurPkg.Item.Items.Add(child); + } + + //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰� + if (CurPosition.Context.ContainsKey("CurPackage")) + { + CurPosition.Context.Remove("CurPackage"); + CurPosition.Context.Remove("CurLabelDic"); } } //鑾峰彇鏄惁鍖呰瀹屽悗闇�瑕佺О閲� @@ -259,7 +267,7 @@ return action; } //楠岃瘉褰撳墠鍖呰鏉$爜鏄惁宸茬粡琚壂鎻忚繃 - if (GetPackageList(CurPkg.Item).Any(q => q.SN == pInput.PkgSN)) + if (CurPosition.GetPackageList(CurPkg.Item).Any(q => q.SN == pInput.PkgSN)) { var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel); CurStep?.SetStatusMessage(StepStatus.Error, Biz.L("鎵弿閿欒")); @@ -300,7 +308,7 @@ 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 { @@ -364,34 +372,34 @@ { //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗� if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) - { - var data = new PackingActionOutput() { PkgInfo = CurPkg }; - data.ExecCode = "Scan"; - data.PkgLevel = dtl.PKG_LEVEL; - CurCmd = data; + { + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Scan"; + data.PkgLevel = dtl.PKG_LEVEL; + CurCmd = data; CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵弿鏍囩")); 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], this); - - 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.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], this); + + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Print"; + data.PkgLevel = dtl.PKG_LEVEL; + data.PrintLable = LabelDic[dtl.PKG_LEVEL]; + CurCmd = data; + PrintTimes++; CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩")); 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); - } + 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 @@ -548,6 +556,7 @@ CurPkgItem.Package.POST_CODE = CurPosition.CurWipSNs.First().POST_CODE; CurPkgItem.Package.OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE; CurPkgItem.Package.SEGMENT = CurPosition.CurWipSNs.First().SEGMENT; + CurPkgItem.Package.ACT_ID = NodeAct.ID; FinishLevel++; //瀹屾垚鍖呰鐨勫眰绾у皬浜庢渶澶栧眰鍖呰灞傜骇 if (FinishLevel < PkgRule.Details.Max(q => q.PKG_LEVEL)) @@ -563,7 +572,7 @@ } } //澶勭悊鍏朵粬鍖呰灞傜骇鏁版嵁 - else + else { //瀹㈡埛绔彁浜ょ殑鍖呰灞傜骇绛変簬褰撳墠澶勭悊鐨勫寘瑁呭眰绾� if (pInput.PkgLevel == dtl.PKG_LEVEL) @@ -609,6 +618,7 @@ POST_CODE = CurPosition.CurWipSNs.First().POST_CODE, OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE, SEGMENT = CurPosition.CurWipSNs.First().SEGMENT, + ACT_ID = NodeAct.ID, }; FinishLevel++; //瀹屾垚鍖呰鐨勫眰绾у皬浜庢渶澶栧眰鍖呰灞傜骇 @@ -650,7 +660,7 @@ //娣诲姞褰撳墠鐨勫寘瑁呮槑缁嗗埌涓婁竴灞傚寘瑁呯殑鏄庣粏鍒楄〃 if (!curItem.Items.Contains(CurPkgItem)) { - curItem.Items.Add(CurPkgItem); + curItem.Items.Add(CurPkgItem); } CurPkgItem = curItem; @@ -669,39 +679,39 @@ action.Data.ShortMsg = new("涓婄О绉伴噸", ShortMessage.Types.Success); //action.LocaleMsg = new($"璇锋妸澶栧寘瑁呬笂绉扮О閲�"); action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighing"); - } + } else { - //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗� - if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) - { - var data = new PackingActionOutput() { PkgInfo = CurPkg }; - data.ExecCode = "Scan"; - data.PkgLevel = dtl.PKG_LEVEL; - CurCmd = data; + //濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗� + if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty()) + { + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Scan"; + data.PkgLevel = dtl.PKG_LEVEL; + CurCmd = data; CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵弿鏍囩")); 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], this); - - var data = new PackingActionOutput() { PkgInfo = CurPkg }; - data.ExecCode = "Print"; - data.PkgLevel = dtl.PKG_LEVEL; - data.PrintLable = LabelDic[dtl.PKG_LEVEL]; - CurCmd = data; - PrintTimes++; + } + else + { + //璁剧疆鎵撳嵃鍙橀噺鍊� + LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL], this); + + var data = new PackingActionOutput() { PkgInfo = CurPkg }; + data.ExecCode = "Print"; + data.PkgLevel = dtl.PKG_LEVEL; + data.PrintLable = LabelDic[dtl.PKG_LEVEL]; + CurCmd = data; + PrintTimes++; CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("鎵撳嵃鏍囩")); 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); - } + 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); + } } } //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔� @@ -737,32 +747,17 @@ return action; } - private List<MES_WIP_PKG> GetPackageList(WipPkgItem parent) - { - 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; - list.AddRange(GetPackageList(item)); - } - return list; - } - public List<MES_WIP_PKG> GetMinPackageList(WipPkgItem parent) { List<MES_WIP_PKG> list = new(); if (parent.Items.Any()) { - foreach (var item in parent.Items) - { - item.Package.PARENT_SN = parent.Package?.SN; - list.AddRange(GetMinPackageList(item)); - } - } + foreach (var item in parent.Items) + { + item.Package.PARENT_SN = parent.Package?.SN; + list.AddRange(GetMinPackageList(item)); + } + } else { if (!parent.Package.IsNullOrEmpty()) @@ -810,7 +805,7 @@ CurPkg.Item.Package.WEIGHT = CurPkg.WeightInfo.Weight; CurPkg.Item.Package.WEIGHT_UNIT = CurPkg.WeightInfo.Unit; } - + //涓嶆槸鎵嬪姩缁撴潫鍖呰鍒欎繚瀛樿涓烘搷浣滆褰� if (!IsManually) { @@ -818,6 +813,7 @@ var wipActs = new List<MES_WIP_ACT>(); foreach (var wipSn in CurPosition.CurWipSNs) { + var wipAct = new MES_WIP_ACT() { AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, @@ -860,7 +856,7 @@ //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� var _wipActs = wipActs.Clone(); - var _pkgList = CurPkg.IsFinished ? GetPackageList(CurPkg.Item) : new(); + var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item) : new(); //淇濆瓨鏁版嵁 CurStep.DBSubmitAction = () => { @@ -872,96 +868,118 @@ if (_pkgList.Any()) { db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - foreach (var pkg in _pkgList) - { - //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� - db.Updateable<MES_WIP_DATA>() - .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 == pkg.WORK_ORDER && q.SN == pkg.SN) - .ExecuteCommand(); - //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃 - db.Updateable<BIZ_MES_WO_SN>() - .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) - .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) - .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.SN == pkg.SN) - .ExecuteCommand(); - } + var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); + var nodeID = _pkgList.First().NODE_ID; + var actID = _pkgList.First().ACT_ID; + var wo = _pkgList.First().WORK_ORDER; + //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� + db.Updateable<MES_WIP_DATA>() + .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 && wipIDs.Contains(q.ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� + db.Updateable<MES_WIP_HIS>() + .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.NODE_ID == nodeID && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰� + db.Updateable<MES_WIP_ACT>() + .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.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃 + db.Updateable<BIZ_MES_WO_SN>() + .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) + .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) + .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); } }; } else { - var _pkgList = CurPkg.IsFinished ? GetPackageList(CurPkg.Item) : new(); - - //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 - CurPosition.NeedTemporaryStoreDBCommitAction = false; - //淇濆瓨鏁版嵁 - CurPosition.SaveStepsCommitActionToDB(() => + if (CurPkg.IsFinished) { - var db = CurPosition.GetCommitDB(); - if (_pkgList.Any()) + var _pkgList = CurPosition.GetPackageList(CurPkg.Item); + + //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 + CurPosition.NeedTemporaryStoreDBCommitAction = false; + //淇濆瓨鏁版嵁 + CurPosition.SaveStepsCommitActionToDB(() => { - db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); - foreach (var pkg in _pkgList) + var db = CurPosition.GetCommitDB(); + if (_pkgList.Any()) { + db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); + var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); + var nodeID = _pkgList.First().NODE_ID; + var actID = _pkgList.First().ACT_ID; + var wo = _pkgList.First().WORK_ORDER; //鍖呰淇℃伅淇濆瓨鍒板湪鍒跺搧淇℃伅琛� db.Updateable<MES_WIP_DATA>() .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 == pkg.WORK_ORDER && q.SN == pkg.SN) + .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц繃绋嬭褰� + var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; + db.Updateable<MES_WIP_HIS>() + .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.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_ID)) + .ExecuteCommand(); + //鍖呰淇℃伅淇濆瓨鍒扮敓浜ц涓鸿褰� + db.Updateable<MES_WIP_ACT>() + .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.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃 db.Updateable<BIZ_MES_WO_SN>() .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) - .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.SN == pkg.SN) + .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) .ExecuteCommand(); } + }); + //濡傛灉褰撳墠鏉$爜宸茬粡瀹屽伐锛屾鏌ュ綋鍓嶅伐鍗曟壒娆″拰宸ュ崟鏄惁瀹屽伐 + if (CurPkg.IsReachedEndNode) + { + CurPosition.WorkBatch.CheckIsComplete(CurPosition.UserCode); } - }); - //濡傛灉褰撳墠鏉$爜宸茬粡瀹屽伐锛屾鏌ュ綋鍓嶅伐鍗曟壒娆″拰宸ュ崟鏄惁瀹屽伐 - //if (action.Data.OperInfo.IsReachedEndNode) - { - CurPosition.WorkBatch.CheckIsComplete(CurPosition.UserCode); } } - if (CurPkg.IsFinished) + //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 + //鏈�澶栧眰鍖呰鏈畬鎴愬寘瑁咃紝鍒欐妸宸ュ簭涓殏瀛樻爣璁拌涓簍rue锛屽緟鍏ㄩ儴鍖呰瀹屾垚鍐嶇粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 + CurPosition.NeedTemporaryStoreDBCommitAction = !CurPkg.IsFinished; + //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓� + if (CurPosition.Context.ContainsKey("CurPackage")) { - //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 - CurPosition.NeedTemporaryStoreDBCommitAction = false; - //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰� - CurPosition.Context.Remove("CurPackage"); - CurPosition.Context.Remove("CurLabelDic"); - //action.LocaleMsg = new($"鏉$爜[{CurPkg.Item.Package?.SN}]鍖呰瀹屾垚"); - action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPkg.Item.Package.SN); + CurPosition.Context["CurPackage"] = CurPkg; + CurPosition.Context["CurLabelDic"] = LabelDic; } else { - //鏈�澶栧眰鍖呰鏈畬鎴愬寘瑁咃紝鍒欐妸宸ュ簭涓殏瀛樻爣璁拌涓簍rue锛屽緟鍏ㄩ儴鍖呰瀹屾垚鍐嶇粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍 - CurPosition.NeedTemporaryStoreDBCommitAction = true; - //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓� - if (CurPosition.Context.ContainsKey("CurPackage")) - { - CurPosition.Context["CurPackage"] = CurPkg; - CurPosition.Context["CurLabelDic"] = LabelDic; - } - else - { - CurPosition.Context.Add("CurPackage", CurPkg); - CurPosition.Context.Add("CurLabelDic", LabelDic); - } - //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚"); - action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN); + CurPosition.Context.Add("CurPackage", CurPkg); + CurPosition.Context.Add("CurLabelDic", LabelDic); } + //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚"); + action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN); IsFinished = true; CurStep?.SetStatusMessage(StepStatus.Finished, Biz.L("鍖呰瀹屾垚")); action.Data.ShortMsg = new("鍖呰瀹屾垚", ShortMessage.Types.Success); - + return action; } -- Gitblit v1.9.3