public virtual JObject GetShareTasks(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path", null); string processName = request.GetString("processName", null); string uid = YZAuthHelper.LoginUserAccount; //过滤 string filter = null; if (!String.IsNullOrEmpty(processName)) { using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { filter = String.Format("ProcessName=N'{0}'", provider.EncodeText(processName)); } } //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetShareTaskList(path, uid, filter, "StepID DESC", request.Start, request.Limit, out rowcount); rv = this.Serialize(cn, tasks, rowcount); } return(rv); }
public static BPMTaskListCollection FilterTaskList(BPMTaskListCollection srcTasks, string processName, string keyword) { if (String.IsNullOrEmpty(processName) && String.IsNullOrEmpty(keyword)) { return(srcTasks); } BPMTaskListCollection tasks = new BPMTaskListCollection(); foreach (BPMTaskListItem item in srcTasks) { if (!String.IsNullOrEmpty(processName)) { if (!NameCompare.EquName(item.ProcessName, processName)) { continue; } } if (!String.IsNullOrEmpty(keyword)) { if (!String.IsNullOrEmpty(item.SerialNum) && item.SerialNum.Contains(keyword)) { tasks.Add(item); continue; } if (!String.IsNullOrEmpty(item.OwnerAccount) && item.OwnerAccount.Contains(keyword)) { tasks.Add(item); continue; } if (!String.IsNullOrEmpty(item.Description) && item.Description.Contains(keyword)) { tasks.Add(item); continue; } if (!String.IsNullOrEmpty(item.ProcessName) && item.ProcessName.Contains(keyword)) { tasks.Add(item); continue; } if (AspxHelper.IsNumber(keyword) && item.TaskID.ToString() == keyword) { tasks.Add(item); continue; } } else { tasks.Add(item); } } return(tasks); }
protected virtual JObject Serialize(BPMConnection cn, BPMTaskListCollection tasks, int rowcount) { JObject rv = new JObject(); //将数据转化为Json集合 rv[YZJsonProperty.total] = rowcount; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); string stepDisplayName = BPMProcStep.GetStepDisplayName(task.StepName); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["ProcessVersion"] = task.ProcessVersion.ToString(2); item["OwnerAccount"] = task.OwnerAccount; item["OwnerDisplayName"] = task.OwnerFullName; item["OwnerShortName"] = YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerFullName); item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentFullName; item["CreateAt"] = task.CreateAt; item["NodeName"] = stepDisplayName; item["ReceiveAt"] = task.ReceiveAt; JObject recipient = new JObject(); recipient["account"] = task.RecipientAccount; recipient["displayName"] = task.RecipientFullName; item["Recipient"] = recipient; item["RecipientShortName"] = YZStringHelper.GetUserShortName(task.RecipientAccount, task.RecipientFullName); item["Share"] = task.Share; item["State"] = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID); item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate; item["TimeoutDeadline"] = task.TimeoutDeadline; item["TimeoutNotifyCount"] = task.TimeoutNotifyCount; item["Description"] = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description; if (task.Progress != -1) { item["Progress"] = task.Progress; } JObject perm = new JObject(); item["perm"] = perm; perm["Share"] = task.Share; } return(rv); }
protected virtual JObject InternalGetShareTasks(string uid, HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path", null); IYZDbProvider provider = YZDbProviderManager.DefaultProvider; //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetShareTaskList(path, uid, this.GetFilterStringWorklist(request, provider), request.GetSortString("StepID DESC", null, "StepID DESC"), request.Start, request.Limit, out rowcount); } //将数据转化为Json集合 JObject rv = new JObject(); rv[YZJsonProperty.total] = rowcount; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["ProcessVersion"] = task.ProcessVersion.ToString(2); item["OwnerAccount"] = task.OwnerAccount; item["OwnerDisplayName"] = task.OwnerFullName; item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentFullName; item["CreateAt"] = task.CreateAt; item["NodeName"] = task.StepName; item["ReceiveAt"] = task.ReceiveAt; item["Share"] = task.Share; item["State"] = task.TaskState.ToString(); item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate; item["TimeoutDeadline"] = task.TimeoutDeadline; item["TimeoutNotifyCount"] = task.TimeoutNotifyCount; item["Description"] = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description; } return(rv); }
private JObject MyTask(BPMConnection cn, string Path, int Start, int Limit, string ProcessName, string Keyword) { int rowcount; JObject result = new JObject(); string TaskFilter = getTaskFilter(ProcessName, Keyword, true); BPMTaskListCollection tasks = cn.GetMyTaskList(Path, TaskFilter, "StepID DESC", Start, Limit, out rowcount); //将数据转化为Json集合 result["success"] = true; result["totalRows"] = rowcount; JArray children = new JArray(); result["children"] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["OwnerAccount"] = task.OwnerAccount; item["OwnerName"] = task.OwnerFullName; item["AgentAccount"] = task.AgentAccount == null ? "" : task.AgentAccount; item["AgentName"] = task.AgentFullName == null ? "" : task.AgentFullName; item["CreateAt"] = YZStringHelper.DateToStringL(task.CreateAt); item["NodeName"] = task.StepName; item["ReceiveAt"] = YZStringHelper.DateToStringL(task.ReceiveAt); item["Share"] = task.Share; item["Description"] = task.Description == null ? "" : task.Description; } //这里发现一个系统bug,当Start为1时,实际第1条待办也会在结果里,导致实际的数量比Limit多1条。 if (Start == 1 && children.Count - Limit == 1) { children.RemoveAt(0); } return(result); }
public virtual JObject GetExceptionTaskList(HttpContext context) { YZRequest request = new YZRequest(context); using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetExceptionTaskList(this.GetFilterStringWorklist(request, provider), request.GetSortString("StepID DESC", null, "StepID DESC"), request.Start, request.Limit, out rowcount); rv = this.Serialize(cn, tasks, rowcount); } return(rv); } }
public virtual object GetTimeoutMonitorWorklist(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path", null); //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { tasks = cn.GetTaskList(path, null, this.GetTimeoutMonitorWorklistFilterString(request, provider), request.GetSortString("Progress DESC"), request.Start, request.Limit, out rowcount); } rv = this.Serialize(cn, tasks, rowcount); } return(rv); }
protected virtual JObject Serialize(BPMConnection cn, BPMTaskListCollection tasks, int rowcount) { JObject rv = new JObject(); //将数据转化为Json集合 rv[YZJsonProperty.total] = rowcount; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); string stepDisplayName = BPMProcStep.GetStepDisplayName(task.StepName); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["ProcessVersion"] = task.ProcessVersion.ToString(2); item["OwnerAccount"] = task.OwnerAccount; item["OwnerDisplayName"] = task.OwnerDisplayName; item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentDisplayName; item["CreateAt"] = task.CreateAt; item["NodeName"] = stepDisplayName; item["ReceiveAt"] = task.ReceiveAt; item["Share"] = task.Share; item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate; item["TimeoutDeadline"] = task.TimeoutDeadline; item["TimeoutNotifyCount"] = task.TimeoutNotifyCount; item["Description"] = task.Description; if (task.Progress != -1) { item["Progress"] = task.Progress; } try { string memberFullName = PositionManager.MemberFullNameFromID(cn, task.OwnerPositionID); OU ou = Member.GetParentOU(cn, memberFullName, null); item["Owner"] = String.Format("{0}/{1}", task.OwnerDisplayName, ou.Name); } catch (Exception) { item["Owner"] = task.OwnerDisplayName; } try { ProcessProperty property = BPMProcess.GetProcessProperty(cn, task.ProcessName, task.ProcessVersion); item["ShortName"] = property.ShortName; item["Color"] = property.Color; if (String.IsNullOrEmpty(property.ShortName)) { item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } } catch (Exception) { item["Color"] = this._deletedProcessColor; item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } JObject perm = new JObject(); item["perm"] = perm; perm["Share"] = task.Share; } return(rv); }
public void ProcessRequest(HttpContext context) { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); GridPageInfo gridPageInfo = new GridPageInfo(context); IDBProvider dbProvider = YZDBProviderManager.CurrentProvider; //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; JsonItem rootItem = new JsonItem(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetMyTaskList(dbProvider.FilterStringMyTask, null, gridPageInfo.Start, gridPageInfo.Limit, out rowcount); //将数据转化为Json集合 rootItem.Attributes.Add(JsonItem.TotalRows, rowcount); rootItem.Attributes.Add("total", rowcount); JsonItemCollection children = new JsonItemCollection(); rootItem.Attributes.Add("children", children); foreach (BPMTaskListItem task in tasks) { JsonItem item = new JsonItem(); children.Add(item); //string OwnerDisplayName = (YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName) + task.ProcessName).Length>4 // ? YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName).CutStrHTML(2) // : YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName); item.Attributes.Add("tid", task.TaskID); item.Attributes.Add("pid", task.StepID); item.Attributes.Add("sn", task.SerialNum); item.Attributes.Add("pn", task.ProcessName); item.Attributes.Add("stepName", string.Empty); //item.Attributes.Add("stepName", BPMProcStep.GetStepDisplayName(task.StepName).CutStrHTML(4)); //item.Attributes.Add("user", OwnerDisplayName); item.Attributes.Add("user", YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName)); //item.Attributes.Add("date", String.Empty); item.Attributes.Add("date", YZStringHelper.DateToStringL(task.CreateAt)); task.Description = task.ShowDescByProcessName(true); item.Attributes.Add("desc", String.IsNullOrEmpty(task.Description) ? "无内容摘要" : task.Description); DateTime time = new DateTime(); time.ToUniversalTime(); } } //System.Threading.Thread.Sleep(2000); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; //输出数据 context.Response.Write(rootItem.ToString()); }