From 06940a626353664dbb6e567f97cbe35a9774b098 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 07 八月 2024 02:25:40 +0800 Subject: [PATCH] 一些更改 --- Tiger.Business.MES/Transaction/Position.cs | 121 +++++++++++++++++++++++++++++++--------- 1 files changed, 94 insertions(+), 27 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 483e3c8..33bcf88 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -72,6 +72,7 @@ /// </summary> public bool NeedTemporaryStoreDBCommitAction { get; set; } = false; protected List<Action> DBCommitList { get; set; } = new(); + protected List<Position> NodeCommitList { get; set; } = new(); #endregion Propertys & Variables @@ -334,35 +335,67 @@ /// </summary> protected void SaveStepsCommitActionToDB() { - //淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� - foreach (var step in Steps.OrderBy(q => q.Sequence)) - { - DBCommitList.Add(step.DBSubmitAction); - } - //濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴� - if (!NeedTemporaryStoreDBCommitAction) - { - //鎭㈠涓存椂瀛樺偍鏍囪涓篺alse - NeedTemporaryStoreDBCommitAction = false; + ////淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� + //foreach (var step in Steps.OrderBy(q => q.Sequence)) + //{ + // DBCommitList.Add(step.DBSubmitAction); + //} + ////濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴� + //if (!NeedTemporaryStoreDBCommitAction) + //{ + // //鎭㈠涓存椂瀛樺偍鏍囪涓篺alse + // NeedTemporaryStoreDBCommitAction = false; - var dbTran = GetCommitDB().UseTran(() => - { - //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 - foreach (var action in DBCommitList) - { - action.Invoke(); - } - }); - if (dbTran.IsSuccess) - { - //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� - DBCommitList.Clear(); - } - else + // var dbTran = GetCommitDB().UseTran(() => + // { + // //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 + // foreach (var action in DBCommitList) + // { + // action.Invoke(); + // } + // }); + // if (dbTran.IsSuccess) + // { + // //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� + // DBCommitList.Clear(); + // } + // else + // { + // //鎶涘嚭寮傚父 + // throw dbTran.ErrorException; + // } + //} + if (NeedTemporaryStoreDBCommitAction) + { + NodeCommitList.Add(this.MemberwiseClone() as Position); + } + else + { + //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� + foreach (var item in NodeCommitList) { - //鎶涘嚭寮傚父 - throw dbTran.ErrorException; + item?.DoSaveToDB(); + item?.Dispose(); } + DoSaveToDB(); + NodeCommitList.Clear(); + } + } + + protected void DoSaveToDB() + { + var dbTran = GetCommitDB().UseTran(() => + { + //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 + foreach (var step in Steps.OrderBy(q => q.Sequence)) + { + step.DBSubmitAction.Invoke(); + } + }); + if (!dbTran.IsSuccess) + { + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; } } @@ -386,6 +419,9 @@ break; case BAS_LABEL_VAR.VAR_TYPEs.DateVariable: item.Value = DateTime.Now.ToString(item.VAR_VALUE); + break; + case BAS_LABEL_VAR.VAR_TYPEs.BarcodeGenerate: + item.Value = GetGeneratePValue(labelPVs, item); break; case BAS_LABEL_VAR.VAR_TYPEs.CustomVariable: default: @@ -425,7 +461,7 @@ return ""; } } - case BAS_LABEL_PV.VAR_TYPEs.WebApiWebApi: + case BAS_LABEL_PV.VAR_TYPEs.WebApi: break; case BAS_LABEL_PV.VAR_TYPEs.StoredProcedure: break; @@ -435,6 +471,37 @@ } return ""; } + + /// <summary> + /// 鑾峰彇鏍规嵁鏉$爜瑙勫垯鐢熸垚鏍囩妯℃澘鐨勮繃绋嬪彉閲忓�� + /// </summary> + /// <param name="labelPVs"></param> + /// <param name="lv"></param> + /// <returns></returns> + public string GetGeneratePValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv) + { + var pv = labelPVs.FirstOrDefault(q => q.VAR_CODE == lv.VAR_VALUE); + if (!pv.IsNullOrEmpty()) + { + switch (pv.VAR_TYPE.GetEnum<BAS_LABEL_PV.VAR_TYPEs>()) + { + case BAS_LABEL_PV.VAR_TYPEs.BarcodeGenerate: + { + switch (pv.VAR_METHOD) + { + case "GetCartonGenerate": + return Biz.CodeRule[lv.BARCODE_RULE].Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString(); + default: + return ""; + } + } + default: + break; + } + } + return ""; + } + /// <summary> /// 鑾峰彇宸ュ崟缁存姢鐨勬ā鏉垮彉閲� /// </summary> -- Gitblit v1.9.3