Exemple #1
0
        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);
        }
Exemple #2
0
    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);
    }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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());
        }