Tiger.Business.MES/Transaction/Position.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.MES/WorkAction/PrintLabel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.IBusiness/MES/Transaction/IPosition.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Business.MES/Transaction/Position.cs
@@ -57,6 +57,7 @@ public IWorkBatch WorkBatch => CurBatch; public MES_WIP_DATA CurWipSN { get; set; } public MES_WIP_HIS CurWipSNHis { get; set; } public Dictionary<string, object> Context { get; set; } = new(); public List<WorkStep> Steps { get; set; } = new(); public WorkStep CurStep { get; set; } public List<WorkStep> NextSteps { get; set; } = new(); @@ -268,12 +269,16 @@ //尝试有没有可以直接开始的后续工步 foreach (var step in NextSteps) { //尝试执行后续工步 var canBegin = step.TryBegin(input); //如果后续工步可以直接开始则直接执行 if (canBegin.IsSuccessed) { //更新当前执行工步为已开始工步 CurStep = step; //更新后续可执行的工步列表 NextSteps = GetNextSteps(CurStep); //返回结果到客户端 result = canBegin; result.Data.IsFinished = IsFinishAllSteps; result.Data.CurWO = CurBatch.WO.ORDER_NO; @@ -286,7 +291,7 @@ } } //根据后续工步返回ApiAction //没有可以直接开始的后续工步,根据后续工步返回ApiAction result.Data.IsFinished = IsFinishAllSteps; result.Data.CurWO = CurBatch.WO.ORDER_NO; result.Data.CurBatch = CurBatch.Batch.BATCH_NO; @@ -294,7 +299,7 @@ result.Data.StepActCode = CurStep.NodeAct.ACT_CODE; result.Data.NextStepID = ""; //根据后续可执行工步列表返回相应的操作提示 //没有可以直接开始的后续工步,根据后续可执行工步列表返回相应的操作提示 if (NextSteps.Count == 1) { result.LocaleMsg = NextSteps.First().GetBeginMsg(); @@ -306,7 +311,45 @@ } return result; } /// <summary> /// 获取打印标签模板过程变量值 /// </summary> /// <param name="labelPVs">过程变量列表</param> /// <param name="lv">标签模板变量</param> /// <returns></returns> public string GetPrintProcessValue(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.ServerMethod: { switch (pv.VAR_METHOD) { case "GetSN": return CurWipSN.SN; case "GetBAS_ITEM": return WorkBatch.Product.ToJson(); case "GetCustomer": return WorkBatch.Batch.ToJson(); default: return ""; } } case BAS_LABEL_PV.VAR_TYPEs.WebApiWebApi: break; case BAS_LABEL_PV.VAR_TYPEs.StoredProcedure: break; default: break; } } return ""; } #endregion Functions public override bool Close(bool needSaveHistoryLog = false) Tiger.Business.MES/WorkAction/PrintLabel.cs
@@ -15,11 +15,13 @@ public class PrintLabel : IPrintLabel { #region Propertys & Variables #region 固定写法,工序中的必要信息 public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } public MES_WO_NODE_ACT NodeAct { get; set; } public MES_WO_ACTION Setting { get; set; } #endregion public BAS_LABEL_TEMP Label { get; set; } public List<BAS_LABEL_PV> LabelPV { get; set; } #endregion Propertys & Variables @@ -31,10 +33,12 @@ /// <returns></returns> public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 固定写法,给默认变量赋值 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(); @@ -67,7 +71,7 @@ item.Value = item.VAR_VALUE; break; case BAS_LABEL_VAR.VAR_TYPEs.ProcessVariable: item.Value = GetProcessValue(item); item.Value = CurPosition.GetPrintProcessValue(LabelPV, item); break; case BAS_LABEL_VAR.VAR_TYPEs.DateVariable: item.Value = DateTime.Now.ToString(item.VAR_VALUE); @@ -80,7 +84,7 @@ } action.Data.Data = Label; //如果根据输入可以开始执行当前行为则标记为成功,否则失败 //如果返回成功则认为当前行为可以开始执行,否则返回失败 action.IsSuccessed = true; return action; } @@ -165,38 +169,6 @@ //action.LocaleMsg = new($"标签{Label.LABEL_NAME}[{Label.LABEL_CODE}]打印成功", Label.LABEL_NAME); action.LocaleMsg = new("MES.WorkAction.PrintLabel.PrintSuccess", Label.LABEL_NAME, Label.LABEL_CODE); return action; } public string GetProcessValue(BAS_LABEL_VAR lv) { var pv = LabelPV.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.ServerMethod: { switch (pv.VAR_METHOD) { case "GetSN": return CurPosition.CurWipSN.SN; case "GetBAS_ITEM": return CurPosition.WorkBatch.Product.ToJson(); case "GetCustomer": return CurPosition.WorkBatch.Batch.ToJson(); default: return ""; } } case BAS_LABEL_PV.VAR_TYPEs.WebApiWebApi: break; case BAS_LABEL_PV.VAR_TYPEs.StoredProcedure: break; default: break; } } return "action"; } #endregion Functions Tiger.IBusiness/MES/Transaction/IPosition.cs
@@ -20,6 +20,7 @@ public IWorkBatch WorkBatch { get; } public MES_WIP_DATA CurWipSN { get; set; } public MES_WIP_HIS CurWipSNHis { get; set; } public Dictionary<string, object> Context { get; set; } #endregion Propertys & Variables #region Functions @@ -41,6 +42,13 @@ /// </summary> /// <returns></returns> public DbClient GetCommitDB(); /// <summary> /// 获取打印标签模板过程变量值 /// </summary> /// <param name="labelPVs">过程变量列表</param> /// <param name="lv">标签模板变量</param> /// <returns></returns> public string GetPrintProcessValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv); #endregion Functions } }