From c598e4bf57de2b4703d6c0e4d0905c9159273d26 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 06 八月 2024 10:16:18 +0800 Subject: [PATCH] 条码增加托盘批量过站逻辑和包装外箱过站逻辑 --- Tiger.Business.MES/Transaction/Position.cs | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 51 insertions(+), 6 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 84d0477..4e11575 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -55,8 +55,9 @@ public MES_SHIFT_SYS CurShiftSys { get; set; } public WorkBatch CurBatch { get; set; } public IWorkBatch WorkBatch => CurBatch; - public MES_WIP_DATA CurWipSN { get; set; } - public MES_WIP_HIS CurWipSNHis { get; set; } + public List<MES_WIP_DATA> CurWipSNs { get; set; } + public string CurSN => CurWipSNs.First().TRAY_SN.IsNullOrEmpty() ? CurWipSNs.First().SN : CurWipSNs.First().TRAY_SN; + public List<MES_WIP_HIS> CurWipSNHiss { get; set; } public Dictionary<string, object> Context { get; set; } = new(); public List<WorkStep> Steps { get; set; } = new(); public WorkStep CurStep { get; set; } @@ -65,6 +66,12 @@ 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 CommitDB; + /// <summary> + /// 鏄惁闇�瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽緟闇�瑕佺殑鏃跺�欏啀鎻愪氦 + /// </summary> + public bool NeedTemporaryStoreDBCommitAction { get; set; } = false; + protected List<Action> DBCommitList { get; set; } = new(); + #endregion Propertys & Variables #region Functions @@ -168,8 +175,8 @@ public virtual void ResetNode() { Steps.Clear(); - CurWipSN = null; - CurWipSNHis = null; + CurWipSNs = null; + CurWipSNHiss = null; CurStep = null; } @@ -321,6 +328,43 @@ } /// <summary> + /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱 + /// </summary> + protected void SaveStepsCommitActionToDB() + { + //淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� + 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 + { + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; + } + } + } + + /// <summary> /// 鑾峰彇鎵撳嵃鏍囩妯℃澘杩囩▼鍙橀噺鍊� /// </summary> /// <param name="labelPVs">杩囩▼鍙橀噺鍒楄〃</param> @@ -368,7 +412,9 @@ switch (pv.VAR_METHOD) { case "GetSN": - return CurWipSN.SN; + return string.Join(",", CurWipSNs.Select(q => q.SN)); + case "GetTraySN": + return CurSN; case "GetBAS_ITEM": return WorkBatch.Product.ToJson(); case "GetCustomer": @@ -389,7 +435,6 @@ } return ""; } - /// <summary> /// 鑾峰彇宸ュ崟缁存姢鐨勬ā鏉垮彉閲� /// </summary> -- Gitblit v1.9.3