public ResponseResult GetReadyTasks(TaskQueryEntity query) { IWorkflowService service = new WorkflowService(); var result = service.GetReadyTasks(query); return(ResponseResult.Success()); }
/// <summary> /// 流程否决 /// </summary> /// <param name="taskId"></param> //public bool RejectProcess(string taskId, string comment) //{ // bool result = false; // _dataAccessor.DbTransaction(session => // { // var tim = new TaskManager(_dataAccessor, session, _loggerFactory); // WfTask task = tim.GetTask(taskId); // if (!task.IsCanHandle) // { // result = false; // } // else // { // if (task != null) // { // _dataAccessor.Execute("update WfProcessInstance set ProcessState='" + WfProcessInstanceState.Completed + "', ApproveState='" + WfApproveState.Disagree + "' where Fid='" + task.ProcessInsUid + "'"); // _dataAccessor.Execute("update WfTask set TaskState='" + WfTaskState.Rejected + "' where Fid='" + task.Fid); // _dataAccessor.Execute("update WfActivity set ActivityState='" + WfActivityInstanceState.Completed + "', ApproveState='" + WfApproveState.Disagree + "' where Fid='" + task.ActivityInsUid + "'"); // TaskAdviceManager tam = new TaskAdviceManager(_dataAccessor, session, _session, _loggerFactory); // tam.RecordWhenReject(task.ProcessInsUid, task.Fid, comment); // result = true; // } // else // { // result = false; // } // } // }); // return result; //} #endregion #region 任务读取和处理 ///// <summary> ///// 设置任务为已读状态(根据任务ID获取任务) ///// </summary> ///// <param name="runner">执行人</param> ///// <returns>任务读取的标志</returns> //public bool SetTaskRead(WfAppRunner taskRunner) //{ // bool isRead = false; // try // { // var taskManager = new TaskManager(); // taskManager.SetTaskRead(taskRunner); // isRead = true; // } // catch (System.Exception) // { // throw; // } // return isRead; //} ///// <summary> ///// 获取运行中的任务 ///// </summary> ///// <param name="query">查询实体</param> ///// <returns>任务列表</returns> //public IList<TaskViewEntity> GetRunningTasks(TaskQueryEntity query) //{ // int allRowsCount = 0; // var taskManager = new TaskManager(); // var taskList = taskManager.GetRunningTasks(query, out allRowsCount); // if (taskList != null) // return taskList.ToList(); // else // return null; //} /// <summary> /// 获取任务(分页) /// </summary> /// <param name="query">查询对象</param> /// <returns>任务列表</returns> //public PageDataView<WfTask> GetPagedTasks(PageCriteria criteria) //{ // return new TaskManager(_dataAccessor, _loggerFactory).GetPagedTasks(criteria); //} /// <summary> /// 获取任务列表 /// </summary> /// <param name="taskQueryEntity"></param> /// <returns></returns> public IEnumerable <TaskViewModel> GetTasks(TaskQueryEntity taskQueryEntity) { string sql = @"select a.Fid as TaskId, a.TaskName, a.TaskState, a.TaskType, a.ExecutorName, a.ExecutorRealName, a.TaskStartTime, a.TaskEndTime, b.Fid as ProcessId, b.ProcessName, b.StarterName, b.StarterRealName from WfTask a, WfProcessInstance b where a.ProcessId=b.Fid "; if (taskQueryEntity != null) { if (!string.IsNullOrWhiteSpace(taskQueryEntity.TaskState)) { sql += " and a.TaskState='" + taskQueryEntity.TaskState + "'"; } else if (!string.IsNullOrWhiteSpace(taskQueryEntity.StarterId)) { sql += " and b.StarterName='" + taskQueryEntity.StarterId + "'"; } else if (!string.IsNullOrWhiteSpace(taskQueryEntity.ExecutorId)) { sql += " and a.ExecutorName='" + taskQueryEntity.ExecutorId + "'"; } } sql += " order by a.Fid desc"; IEnumerable <TaskViewModel> model = _dataAccessor.QueryOriSql <TaskViewModel>(sql); return(model); }
/// <summary> /// 获取正在运行中的活动实例 /// </summary> /// <param name="query"></param> /// <returns></returns> public IList <ActivityInstanceEntity> GetRunningActivityInstance(TaskQueryEntity query) { var aim = new ActivityInstanceManager(); var list = aim.GetRunningActivityInstanceList(query.AppInstanceID, query.ProcessGUID).ToList(); return(list); }
private void btn综合部签字_Click(object sender, EventArgs e) { WfAppRunner appRunner = new WfAppRunner(); appRunner.ProcessGUID = process_guid; appRunner.AppInstanceID = application_instance_id; //第一步任务承担者,登录后要找到自己的任务 appRunner.AppName = "officeIn"; appRunner.UserID = "3"; appRunner.UserName = "******"; IWorkflowService wfService = new WorkflowService(); TaskQueryEntity en = new TaskQueryEntity { UserID = "3" }; IList <TaskViewEntity> taskViewList = wfService.GetReadyTasks(en); appRunner.TaskID = taskViewList[0].TaskID; PerformerList list = new PerformerList(); list.Add(new Performer("5", "user5")); NodeView nv = wfService.GetNextActivity(appRunner); Dictionary <String, PerformerList> dictPerformer = new Dictionary <String, PerformerList>(); dictPerformer.Add(nv.ActivityGUID, list); appRunner.NextActivityPerformers = dictPerformer; var result = wfService.RunProcessApp(appRunner); var msg = string.Format("流程运行结果:{0}\r\n{1}\r\n", result.Status, result.Message); tBoxResult.Text += msg; }
/// <summary> /// 当前用户代办任务列表(一次加载所有数据) /// </summary> /// <returns></returns> public ActionResult FlowList() { IWorkflowService service = new WorkflowService(); TaskQueryEntity en = new TaskQueryEntity { UserID = User.Identity.GetUserId() }; IList <TaskViewEntity> taskViewList = service.GetReadyTasks(en); return(View(taskViewList)); }
private void button1_Click(object sender, EventArgs e) { TaskQueryEntity query = new TaskQueryEntity(); query.AppInstanceID = "4612"; query.AppName = "order"; query.UserID = "2"; var wfService = new WorkflowService(); wfService.GetRunningTasks(query); }
/// <summary> /// 获取办结任务列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public IList <TaskViewEntity> GetCompletedTasks(TaskQueryEntity query) { int allRowsCount = 0; var taskManager = new TaskManager(); var taskList = taskManager.GetCompletedTasks(query, out allRowsCount); if (taskList != null) { return(taskList.ToList()); } else { return(null); } }
/// <summary> /// 获取当前用户待办任务列表 /// </summary> private void GetReadyTasks() { IWorkflowService wfService = new WorkflowService(); TaskQueryEntity en = new TaskQueryEntity { UserID = LoginUserID.ToString() }; IList<TaskViewEntity> taskViewList = wfService.GetReadyTasks(en); if (taskViewList != null) { Repeater2.DataSource = taskViewList; Repeater2.DataBind(); } }
/// <summary> /// 运行流程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRun_Click(object sender, EventArgs e) { WfAppRunner appRunner = new WfAppRunner(); appRunner.ProcessGUID = process_guid; appRunner.AppInstanceID = application_instance_id; //第一步任务承担者,登录后要找到自己的任务 appRunner.AppName = "officeIn"; appRunner.UserID = "1"; appRunner.UserName = "******"; IWorkflowService wfService = new WorkflowService(); TaskQueryEntity en = new TaskQueryEntity { UserID = "1" }; IList <TaskViewEntity> taskViewList = wfService.GetReadyTasks(en); if (taskViewList != null) { dataGridView1.DataSource = taskViewList; } ////下一步执行人 //PerformerList list = new PerformerList(); //Performer p = new Performer("3", "user3"); //下一步人ID,Name 注意有角色区分 //list.Add(p); //Dictionary<string, string> dictCondition = new Dictionary<string, string>(); //dictCondition.Add("IsHavingWeight", "true"); //dictCondition.Add("CanUseStock", "false"); //appRunner.Conditions = dictCondition; //NodeView nv = wfService.GetNextActivity(appRunner);//, dictCondition //Dictionary<String, PerformerList> dictPerformer = new Dictionary<String, PerformerList>(); //dictPerformer.Add(nv.ActivityGUID, list); //appRunner.NextActivityPerformers = dictPerformer; var result = wfService.RunProcessApp(appRunner); var msg = string.Format("流程运行结果:{0}\r\n", result.Status); textBox1.Text += msg; }
public ResponseResult <List <TaskViewEntity> > QueryCompletedTasks(TaskQueryEntity query) { var result = ResponseResult <List <TaskViewEntity> > .Default(); try { var taskList = new List <TaskViewEntity>(); var wfService = new WorkflowService(); var itemList = wfService.GetCompletedTasks(query); if (itemList != null) { taskList = itemList.ToList(); } result = ResponseResult <List <TaskViewEntity> > .Success(taskList); } catch (System.Exception ex) { result = ResponseResult <List <TaskViewEntity> > .Error(string.Format( "获取已办任务数据失败, 异常信息:{0}", ex.Message)); } return(result); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string result = string.Empty; string Action = string.Empty; if (context.Request.QueryString["Action"] != null && !string.IsNullOrWhiteSpace(context.Request.QueryString["Action"].ToString())) { string ProcessGUID = GetRequestString(context, "ProcessGUID"); string Version = GetRequestString(context, "Version"); Action = GetRequestString(context, "Action"); switch (Action) { case "QueryProcessFile": ProcessFileQuery query = new ProcessFileQuery(); query.ProcessGUID = ProcessGUID; query.Version = Version; ResponseResult <ProcessFileEntity> _result = QueryProcessFile(query); result = JsonHelper.ObjectToJson(_result); break; case "QueryReadyActivityInstance": string AppInstanceID = GetRequestString(context, "AppInstanceID"); TaskQueryEntity taskQuery = new TaskQueryEntity(); taskQuery.ProcessGUID = ProcessGUID; taskQuery.AppInstanceID = AppInstanceID; ResponseResult <List <ActivityInstanceEntity> > activityInstanceResult = QueryReadyActivityInstance(taskQuery); result = JsonHelper.ObjectToJson(activityInstanceResult); break; } } context.Response.Write(result); context.Response.End(); }
/// <summary> /// 获取任务(分页) /// </summary> /// <param name="query"></param> /// <param name="activityState"></param> /// <returns></returns> private IEnumerable <TaskViewEntity> GetTasksPaged(TaskQueryEntity query, int activityState, out int allRowsCount) { //processState:2 -running 流程处于运行状态 //activityType:4 -表示“任务”类型的节点 //activityState: 1-ready(准备), 2-running(运行); StringBuilder sql = new StringBuilder(512); sql.Append(@"SELECT Top 100 * FROM vwWfActivityInstanceTasks WHERE ProcessState=2 AND ActivityType=4 AND ActivityState=@activityState AND AssignedToUserID=@assignedToUserID "); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@activityState", activityState); parameters.Add("@assignedToUserID", query.UserID); if (!string.IsNullOrEmpty(query.AppInstanceID)) { sql.Append(" AND AppInstanceID=@appInstanceID"); parameters.Add("@appinstanceID", query.AppInstanceID); } if (!string.IsNullOrEmpty(query.ProcessGUID)) { sql.Append(" AND ProcessGUID=@processGUID"); parameters.Add("@processGUID", query.ProcessGUID); } if (!string.IsNullOrEmpty(query.AppName)) { sql.AppendFormat(" AND AppName like '%' + @appName + '%' "); parameters.Add("@appName", query.AppName); } sql.Append(" ORDER BY TASKID DESC "); //如果数据记录数为0,则不用查询列表 StringBuilder sqlCount = new StringBuilder(1024); sqlCount.Append("SELECT COUNT(1) FROM ("); sqlCount.Append(sql.ToString()); sqlCount.Append(")T"); allRowsCount = Repository.Count(sqlCount.ToString(), parameters); if (allRowsCount == 0) { return(null); } //查询列表数据并返回结果集 var list = Repository.Query <TaskViewEntity>(sql.ToString(), parameters); return(list); }
/// <summary> /// 获取当前用户待办的任务 /// </summary> /// <param name="query"></param> /// <returns></returns> internal IEnumerable <TaskViewEntity> GetReadyTasks(TaskQueryEntity query, out int allRowsCount) { return(GetTasksPaged(query, 1, out allRowsCount)); }
public ResponseResult <List <ActivityInstanceEntity> > QueryReadyActivityInstance(TaskQueryEntity query) { var result = ResponseResult <List <ActivityInstanceEntity> > .Default(); try { var wfService = new WorkflowService(); var itemList = wfService.GetRunningActivityInstance(query).ToList(); result = ResponseResult <List <ActivityInstanceEntity> > .Success(itemList); } catch (System.Exception ex) { result = ResponseResult <List <ActivityInstanceEntity> > .Error(string.Format( "获取待办任务数据失败, 异常信息:{0}", ex.Message)); } return(result); }
/// <summary> /// 获取已经完成任务 /// </summary> /// <param name="query">查询实体</param> /// <param name="allRowsCount">任务记录数</param> /// <returns>任务列表</returns> internal IEnumerable <TaskViewEntity> GetCompletedTasks(TaskQueryEntity query, out int allRowsCount) { return(GetTasksPaged(query, 4, out allRowsCount)); }
/// <summary> /// 获取任务(分页) /// </summary> /// <param name="query">查询实体</param> /// <param name="activityState">活动状态</param> /// <param name="allRowsCount">任务记录数</param> /// <returns>活动列表</returns> private IEnumerable <TaskViewEntity> GetTasksPaged(TaskQueryEntity query, int activityState, out int allRowsCount) { //processState:2 -running 流程处于运行状态 //activityType:4 -表示“任务”类型的节点 //activityState: 1-ready(准备), 2-running(运行); string sql = @"SELECT TOP 100 * FROM vwWfActivityInstanceTasks WHERE ProcessState=2 AND (ActivityType=4 OR WorkItemType=1) AND ActivityState=@activityState AND AssignedToUserID=@assignedToUserID AND TaskState<>32 "; sql = SqlDataProvider.GetSqlTaskPaged(sql); StringBuilder sqlBuilder = new StringBuilder(512); sqlBuilder.Append(sql); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@activityState", activityState); parameters.Add("@assignedToUserID", query.UserID); //获取待办工作时需要获取主活动节点为办理状态的任务信息 if (activityState == 1) { sqlBuilder.Append(" AND MiHostState<>4"); } if (!string.IsNullOrEmpty(query.AppInstanceID)) { sqlBuilder.Append(" AND AppInstanceID=@appInstanceID"); parameters.Add("@appinstanceID", query.AppInstanceID); } if (!string.IsNullOrEmpty(query.ProcessGUID)) { sqlBuilder.Append(" AND ProcessGUID=@processGUID"); parameters.Add("@processGUID", query.ProcessGUID); } if (!string.IsNullOrEmpty(query.EndedByUserID)) { sqlBuilder.Append(" AND EndedByUserID=@endedByUserID"); parameters.Add("@endedByUserID", query.EndedByUserID); } if (!string.IsNullOrEmpty(query.AppName)) { sqlBuilder.AppendFormat(" AND AppName like '%' + @appName + '%' "); parameters.Add("@appName", query.AppName); } sqlBuilder.Append(" ORDER BY TASKID DESC "); //如果数据记录数为0,则不用查询列表 StringBuilder sqlCount = new StringBuilder(1024); sqlCount.Append("SELECT COUNT(1) FROM ("); sqlCount.Append(sqlBuilder.ToString()); sqlCount.Append(")T"); allRowsCount = Repository.Count(sqlCount.ToString(), parameters); if (allRowsCount == 0) { return(null); } //查询列表数据并返回结果集 var list = Repository.Query <TaskViewEntity>(sqlBuilder.ToString(), parameters); return(list); }