Пример #1
0
        public virtual JObject LoadTask(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       taskid  = request.GetInt32("TaskID");
            JObject   rv      = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                rv[YZJsonProperty.total] = 1;
                JArray children = new JArray();
                rv["children"] = children;

                BPMTask task = BPMTask.Load(cn, taskid);
                JObject item = new JObject();
                children.Add(item);

                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["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                item["Description"]      = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description;
            }

            rv["success"] = true;
            return(rv);
        }
Пример #2
0
        public virtual object GetHandoverRequests(HttpContext context)
        {
            YZRequest  request = new YZRequest(context);
            string     uid     = request.GetString("uid");
            PageResult result;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    result = TaskListManager.GetHandoverMyRequests(provider, cn, uid, this.GetFilterStringHandoverRequests(request, provider), request.GetSortString("TaskID ASC"), request.Start, request.Limit);
                }
            }

            JArray children = new JArray();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (DataRow task in result.Table.Rows)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    int    taskid       = YZConvert.ToInt32(task["TaskID"]);
                    string desc         = YZConvert.ToString(task["Description"]);
                    string ownerAccount = YZConvert.ToString(task["OwnerAccount"]);
                    string agentAccount = YZConvert.ToString(task["AgentAccount"]);

                    User owner = User.TryGetUser(cn, ownerAccount);
                    User agent = null;

                    if (!String.IsNullOrEmpty(agentAccount))
                    {
                        agent = User.TryGetUser(cn, agentAccount);
                    }

                    item["TaskID"]           = taskid;
                    item["SerialNum"]        = YZConvert.ToString(task["SerialNum"]);
                    item["ProcessName"]      = YZConvert.ToString(task["ProcessName"]);
                    item["ProcessVersion"]   = YZConvert.ToString(task["ProcessVersion"]);
                    item["OwnerAccount"]     = ownerAccount;
                    item["OwnerDisplayName"] = owner == null ? ownerAccount : owner.ShortName;
                    item["AgentAccount"]     = agentAccount;
                    item["AgentDisplayName"] = agent == null ? agentAccount : agent.ShortName;
                    item["CreateAt"]         = YZConvert.ToDateTime(task["CreateAt"]);
                    item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, YZConvert.ToEnum <TaskState>(task["State"]), taskid);
                    item["Description"]      = String.IsNullOrEmpty(desc) ? Resources.YZStrings.All_None : desc;
                }
            }

            return(new
            {
                success = true,
                total = result.TotalRows,
                children = children
            });
        }
Пример #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);
        }
Пример #4
0
        public virtual JObject GetHistoryTasks(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            GridPageInfo    gridPageInfo = new GridPageInfo(context);
            HistoryTaskType taskType     = request.GetEnum <HistoryTaskType>("HistoryTaskType", HistoryTaskType.AllAccessable);
            string          strTaskType  = request.GetString("HistoryTaskType");
            int             year         = request.GetString("byYear", "1") == "0" ? -1 : request.GetInt32("Year");

            //获得数据
            JObject rv = new JObject();

            string taskTableFilter;
            string stepTableFilter;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                taskTableFilter = this.GetFilterStringHistoryTaskTaskTable(request, provider);
                stepTableFilter = this.GetFilterStringHistoryTaskStep(request, provider);
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                int rowcount;
                BPMTaskCollection tasks = cn.GetHistoryTasks(year, taskType, taskTableFilter, stepTableFilter, request.GetSortString("TaskID DESC", null, "TaskID DESC"), gridPageInfo.Start, gridPageInfo.Limit, out rowcount);

                rv[YZJsonProperty.total] = rowcount;
                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMTask task in tasks)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    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["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                    item["Description"]      = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description;
                }
            }

            return(rv);
        }
Пример #5
0
        public virtual JObject GetHistoryTasks(HttpContext context)
        {
            YZRequest       request  = new YZRequest(context);
            HistoryTaskType taskType = request.GetEnum <HistoryTaskType>("HistoryTaskType", HistoryTaskType.AllAccessable);
            int             year     = request.GetString("byYear", "1") == "0" ? -1 : request.GetInt32("Year", DateTime.Today.Year);

            //获得数据
            JObject rv = new JObject();

            string taskTableFilter;
            string stepTableFilter;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                taskTableFilter = this.GetFilterStringHistoryTaskTaskTable(request, provider);
                stepTableFilter = this.GetFilterStringHistoryTaskStep(request, provider);
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                int rowcount;
                BPMTaskCollection tasks = cn.GetHistoryTasks(year, taskType, taskTableFilter, stepTableFilter, null, request.Start, request.Limit, out rowcount);

                rv[YZJsonProperty.total] = rowcount;
                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMTask task in tasks)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    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["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                    item["Description"]      = task.Description;

                    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);
                    }
                }
            }

            return(rv);
        }