服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-07-30 98304e3ffd220092103074a5da83bcad2b5c0c7d
Tiger.Business.MES/Transaction/Position.cs
@@ -153,6 +153,8 @@
        {
            Steps.Clear();
            CurWipSN = null;
            CurWipSNHis = null;
            CurStep = null;
        }
        /// <summary>
@@ -234,7 +236,7 @@
                }
            }
            //如果当前工步没有可执行的后续工步,则在前置工步查找还有没有后续工步没完成的工步,有则执行
            if (!result.Any())
            if (!result.Any() && Steps.Any())
            {
                //查找有没有前置工步未完成,若有则先完成未完成的前置工步
                var prepIDs = curStep.PrepNodeIDs.Where(id => CurBatch.Edges.Any(e => e.SRC_NODE == id && Steps.Any(q => !q.IsFinished && e.TGT_NODE == q.NodeID))).ToList();
@@ -283,9 +285,9 @@
                    result.Data.IsFinished = IsFinishAllSteps;
                    result.Data.CurWO = CurBatch.WO.ORDER_NO;
                    result.Data.CurBatch = CurBatch.Batch.BATCH_NO;
                    result.Data.CurNode = CurStep.NodeAct.ACT_NAME;
                    result.Data.StepActCode = CurStep.NodeAct.ACT_CODE;
                    result.Data.NextStepID = CurStep.ID;
                    result.Data.CurNode = CurStep?.NodeAct.ACT_NAME;
                    result.Data.StepActCode = CurStep?.NodeAct.ACT_CODE;
                    result.Data.NextStepID = CurStep?.ID;
                    
                    return result;
                }
@@ -295,8 +297,8 @@
            result.Data.IsFinished = IsFinishAllSteps;
            result.Data.CurWO = CurBatch.WO.ORDER_NO;
            result.Data.CurBatch = CurBatch.Batch.BATCH_NO;
            result.Data.CurNode = CurStep.Node.NODE_NAME;
            result.Data.StepActCode = CurStep.NodeAct.ACT_CODE;
            result.Data.CurNode = CurStep?.Node.NODE_NAME;
            result.Data.StepActCode = CurStep?.NodeAct.ACT_CODE;
            result.Data.NextStepID = "";
            //没有可以直接开始的后续工步,根据后续可执行工步列表返回相应的操作提示
@@ -316,6 +318,36 @@
        /// 获取打印标签模板过程变量值
        /// </summary>
        /// <param name="labelPVs">过程变量列表</param>
        /// <param name="label">标签模板</param>
        /// <returns></returns>
        public BAS_LABEL_TEMP SetLabelVariables(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_TEMP label)
        {
            foreach (var item in label.Variables)
            {
                switch (item.VAR_TYPE.GetEnum<BAS_LABEL_VAR.VAR_TYPEs>())
                {
                    case BAS_LABEL_VAR.VAR_TYPEs.Constant:
                        item.Value = item.VAR_VALUE;
                        break;
                    case BAS_LABEL_VAR.VAR_TYPEs.ProcessVariable:
                        item.Value = GetPrintProcessValue(labelPVs, item);
                        break;
                    case BAS_LABEL_VAR.VAR_TYPEs.DateVariable:
                        item.Value = DateTime.Now.ToString(item.VAR_VALUE);
                        break;
                    case BAS_LABEL_VAR.VAR_TYPEs.CustomVariable:
                    default:
                        item.Value = "";
                        break;
                }
            }
            return label;
        }
        /// <summary>
        /// 获取打印标签模板过程变量值
        /// </summary>
        /// <param name="labelPVs">过程变量列表</param>
        /// <param name="lv">标签模板变量</param>
        /// <returns></returns>
        public string GetPrintProcessValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv)