//(1):先拿到所有的管理员; //(2): 拼一个 userTask 对象,只是收件人为空。 //(3): 遍历所有的管员,clone 第一个userTask对象,并将添加到 UserTaskCollection 对象里 //(4): UserTaskAdapter.Instance.SendUserTasks 发送数据 public void Run() { try { DataTable dt = DbHelper.RunSqlReturnDS(InvalidAssigneesNotificationHelper.GetInvalidAssigneesNotificationsSQL).Tables[0]; if (dt.Rows.Count > 0) { IEnumerable <IUser> allUsers = InvalidAssigneesNotificationHelper.GetAllUsers(); InvalidAssigneesNotification currentIANotification = new InvalidAssigneesNotification() { NotificationID = UuidHelper.NewUuidString(), CreateTime = DateTime.Now }; InvalidAssignessUrlCollection ivalidAssignessUrls = InvalidAssigneesNotificationHelper.PreInvalidAssignessUrls(currentIANotification.NotificationID, dt); //todo: 一百以内并数字 if (ivalidAssignessUrls.Count < SendInvalidNotificationSettingsSection.GetConfig().MaxSendCount) { currentIANotification.Description = string.Format("待处理流程人员异常 {0}条", ivalidAssignessUrls.Count); } else { currentIANotification.Description = string.Format("待处理流程人员异常 {0}条以上", SendInvalidNotificationSettingsSection.GetConfig().MaxSendCount); } UserTask userTaskItem = InvalidAssigneesNotificationHelper.BuildUserTask(currentIANotification.Description); using (TransactionScope ts = TransactionScopeFactory.Create()) { InvalidAssigneesNotificationHelper.SendUserTask(allUsers, userTaskItem, currentIANotification.NotificationID); InvalidAssigneesNotificationAdapter.Instance.AddData(currentIANotification); InvalidAssigneesUrlAdapter.Instance.BulkAdd(ivalidAssignessUrls); ts.Complete(); } } } catch (Exception ex) { this.Params.Log.Write(string.Format("处理人员不存流程:{0}; {1}", DateTime.Now.ToString(), ex.ToString())); } }
/// <summary> /// 添加单条管理员处消息 /// </summary> /// <param name="data"></param> /// <returns></returns> public bool AddData(InvalidAssigneesNotification data) { using (TransactionScope scope = TransactionScopeFactory.Create()) { using (DbContext context = DbContext.GetContext(this.GetConnectionName())) { Database db = DatabaseFactory.Create(context); DbCommand command = db.GetSqlStringCommand(InsertSql); this.SetCommandParames(db, command, data); int count = command.ExecuteNonQuery(); scope.Complete(); return count == 1 ? true : false; } } }
//(1):先拿到所有的管理员; //(2): 拼一个 userTask 对象,只是收件人为空。 //(3): 遍历所有的管员,clone 第一个userTask对象,并将添加到 UserTaskCollection 对象里 //(4): UserTaskAdapter.Instance.SendUserTasks 发送数据 public void Run() { try { DataTable dt = DbHelper.RunSqlReturnDS(InvalidAssigneesNotificationHelper.GetInvalidAssigneesNotificationsSQL).Tables[0]; if (dt.Rows.Count > 0) { IEnumerable<IUser> allUsers = InvalidAssigneesNotificationHelper.GetAllUsers(); InvalidAssigneesNotification currentIANotification = new InvalidAssigneesNotification() { NotificationID = UuidHelper.NewUuidString(), CreateTime = DateTime.Now }; InvalidAssignessUrlCollection ivalidAssignessUrls = InvalidAssigneesNotificationHelper.PreInvalidAssignessUrls(currentIANotification.NotificationID, dt); //todo: 一百以内并数字 if (ivalidAssignessUrls.Count < SendInvalidNotificationSettingsSection.GetConfig().MaxSendCount) currentIANotification.Description = string.Format("待处理流程人员异常 {0}条", ivalidAssignessUrls.Count); else currentIANotification.Description = string.Format("待处理流程人员异常 {0}条以上",SendInvalidNotificationSettingsSection.GetConfig().MaxSendCount); UserTask userTaskItem = InvalidAssigneesNotificationHelper.BuildUserTask(currentIANotification.Description); using (TransactionScope ts = TransactionScopeFactory.Create()) { InvalidAssigneesNotificationHelper.SendUserTask(allUsers, userTaskItem, currentIANotification.NotificationID); InvalidAssigneesNotificationAdapter.Instance.AddData(currentIANotification); InvalidAssigneesUrlAdapter.Instance.BulkAdd(ivalidAssignessUrls); ts.Complete(); } } } catch (Exception ex) { this.Params.Log.Write(string.Format("处理人员不存流程:{0}; {1}", DateTime.Now.ToString(), ex.ToString())); } }
private void SetCommandParames(Database db, DbCommand command, InvalidAssigneesNotification data) { db.AddInParameter(command, "NOTIFICATION_ID", DbType.String, string.IsNullOrEmpty(data.NotificationID) ? UuidHelper.NewUuidString() : data.NotificationID); db.AddInParameter(command, "Description", DbType.String, data.Description); db.AddInParameter(command, "CreateTime", DbType.String, data.CreateTime); }