public List <WFItem> GetSubmitOrApproveSteps(string InstanceStepExecutorId) { WFInstance Instance; WFInstanceStep InstanceStep; WF_M_STEP Step; WF_T_INSTANCESTEPEXECUTOR InstanceStepExecutor; InstanceStepExecutorDAO.GetAllInfo(InstanceStepExecutorId, out InstanceStepExecutor, out InstanceStep, out Instance, out Step); if (IsHideNextStep(InstanceStepExecutor.InstanceStepId)) { return(new List <WFItem>()); } // 得到 sql 语句 var instance = WFDA.Instance.GetInstance(InstanceStep.InstanceId); var data1 = WFBusinessData.AddPrefix("WF_T_INSTANCE_", WFBusinessData.CreateInstance <WF_T_INSTANCE>(instance)); var data2 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEP_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEP>(InstanceStep)); var data3 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEPEXECUTOR_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEPEXECUTOR>(InstanceStepExecutor)); WFBusinessData.Merge(data2, data1); WFBusinessData.Merge(data3, data1); var businessData = data1; var sql = Pub.GetOriginalSql(Step.Script); return(GetWFItems(instance, businessData, ref sql)); }
public override int Query(FormM form, DFDictionary entity, DataGridVM vm, int start, int limit, ref string message) { if (entity["action"] == "querylist") { if (entity["subAction"] == "queryVariables") { var data1 = WFBusinessData.AddPrefix("WF_T_INSTANCE_", WFBusinessData.CreateInstance <WF_T_INSTANCE>(new WFInstance())); var data2 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEP_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEP>(new WFInstanceStep())); var data3 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEPEXECUTOR_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEPEXECUTOR>(new WF_T_INSTANCESTEPEXECUTOR())); WFBusinessData.Merge(data2, data1); WFBusinessData.Merge(data3, data1); var businessData = data1; vm.rows = businessData.Keys.OrderBy(a => a).Select(a => new WFItem() { text = string.Format("@{0}", a), value = string.Format("@{0}", a) }).ToList(); return(DFPub.EXECUTE_SUCCESS); } else { var list = new List <WFItem>(); var model = WFDA.Instance.GetModelById(entity["ModelId"]); if (model != null) { list.Add(new WFItem() { text = model.ModelName, value = string.Format("{0}", model.ModelName).Trim() }); } list.AddRange(WFDA.Instance.GetSteps(entity["ModelId"]).Select(a => new WFItem() { text = a.StepName, value = string.Format("{0}", a.StepName).Trim() }).ToList()); vm.rows = list; return(DFPub.EXECUTE_SUCCESS); } } using (var db = Pub.DB) { var sql = "select * from WF_M_STEP where 1=1"; sql += " and ModelId=@ModelId"; sql += " order by StepOrder"; var parameters = new { ModelId = entity["ModelId"] }; vm.results = db.Query <int>(DFPub.GetCountSql(sql), parameters).FirstOrDefault(); var list = db.Query <VM_WF_M_STEP>(DFPub.GetPageSql(sql, start + 1, start + limit), parameters).ToList(); vm.rows = list; return(DFPub.EXECUTE_SUCCESS); } }
/// <summary> /// 尝试某个运行时节点的下面的步骤 /// </summary> /// <param name="InstanceStepId"></param> /// <returns></returns> private List <WFItem> TryGetNextSteps(string InstanceStepExecutorId) { var InstanceStepExecutor = InstanceStepExecutorDAO.Get(InstanceStepExecutorId); var InstanceStep = WFDA.Instance.GetInstanceStep(InstanceStepExecutor.InstanceStepId); var instance = WFDA.Instance.GetInstance(InstanceStep.InstanceId); var data1 = WFBusinessData.AddPrefix("WF_T_INSTANCE_", WFBusinessData.CreateInstance <WF_T_INSTANCE>(instance)); var data2 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEP_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEP>(InstanceStep)); var data3 = WFBusinessData.AddPrefix("WF_T_INSTANCESTEPEXECUTOR_", WFBusinessData.CreateInstance <WF_T_INSTANCESTEPEXECUTOR>(InstanceStepExecutor)); WFBusinessData.Merge(data2, data1); WFBusinessData.Merge(data3, data1); var businessData = data1; var Step = WFDA.Instance.GetStep(InstanceStep.StepId); var sql = Pub.GetOriginalSql(Step.Script); return(GetWFItems(instance, businessData, ref sql)); }
private static List <WFItem> GetWFItems(WFInstance instance, WFBusinessData businessData, ref string sql) { List <WFItem> list = new List <WFItem>(); if (!string.IsNullOrWhiteSpace(sql)) { if (sql.IndexOf("WF_M_STEP") >= 0 && sql.IndexOf("WF_M_MODEL") >= 0) { using (var db = Pub.DB) { list = db.Query <VM_WF_M_STEP>(sql, Pub.ToDynamic(businessData)) .Select(a => new WFItem() { text = a.StepName, value = a.StepId }).ToList(); } } else { using (var db = Pub.DB) { var StepNames = db.Query <string>(sql, Pub.ToDynamic(businessData)).ToList(); if (StepNames.Count == 0) { StepNames.Add("-1"); } sql = "SELECT a.StepId,a.StepName FROM dbo.WF_M_STEP a, dbo.WF_M_MODEL b WHERE a.ModelId=b.ModelId AND b.ModelName=@ModelName AND a.StepName IN @StepNames"; list = db.Query <VM_WF_M_STEP>(sql, new { ModelName = instance.ModelName, StepNames = StepNames }) .Select(a => new WFItem() { text = a.StepName, value = a.StepId }).ToList(); } } } return(list); }