public bool TurnTask(string taskId, WfAppRunner runner) { TaskManager tim = new TaskManager(_dataAccessor, _loggerFactory); WfTask task = tim.GetTask(taskId); if (task == null) { throw new FapException("任务不存在"); } Performer turner = runner.Turners[0]; ActivityInstanceManager aim = new ActivityInstanceManager(_dataAccessor, _loggerFactory); WfActivityInstance activity = aim.GetByFid(task.ActivityInsUid); activity.AssignedToUserIds = activity.AssignedToUserIds.Replace(runner.UserId, turner.UserId); activity.AssignedToUserNames = activity.AssignedToUserNames.Replace(runner.UserName, turner.UserName); aim.Update(activity); task.ExecutorEmpUid = turner.UserId; task.ExecutorEmpName = turner.UserName; task.UpdateBy = runner.UserId; task.UpdateName = runner.UserName; task.UpdateDate = DateTimeUtils.CurrentDateStr; tim.Update(task); TaskAdviceManager tam = new TaskAdviceManager(_dataAccessor, _applicationContext, _loggerFactory); tam.RecordWhenTurnTask(runner.ProcessUid, runner.CurrNodeId, runner.Comment, turner.UserId, turner.UserName); return(true); }
/// <summary> /// 设置活动实例的定时作业为完成状态 /// (用于HangFire后台轮询任务) /// </summary> /// <param name="conn">链接</param> /// <param name="activityInstanceID">活动实例ID</param> /// <param name="trans">事务</param> public void SetActivityJobTimerCompleted(IDbConnection conn, int activityInstanceID, IDbTransaction trans) { var aim = new ActivityInstanceManager(); var activityInstance = aim.GetById(conn, activityInstanceID, trans); activityInstance.JobTimerStatus = (short)JobTimerStatusEnum.Completed; activityInstance.JobTimerTreatedDateTime = System.DateTime.Now; aim.Update(conn, activityInstance, trans); }