Example #1
0
        public virtual JObject GetAllProcessNames(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    bpmServer = request.GetString("bpmServer", null);
            BPMObjectNameCollection processNames = new BPMObjectNameCollection();

            using (BPMConnection cn = new BPMConnection())
            {
                this.OpenConnection(cn, bpmServer);
                processNames = ProcessNameManager.GetProcessNames(cn);
            }

            //将数据转化为Json集合
            JObject rv = new JObject();

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

            rv[YZJsonProperty.children] = children;

            foreach (string processName in processNames)
            {
                JObject item = new JObject();
                children.Add(item);
                item["ProcessName"] = processName;
            }

            //输出数据
            rv[YZJsonProperty.success] = true;
            return(rv);
        }
Example #2
0
        public virtual BPMObjectNameCollection GetAllProcessNames(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    bpmServer = request.GetString("bpmServer", null);

            using (BPMConnection cn = new BPMConnection())
            {
                this.OpenConnection(cn, bpmServer);
                return(ProcessNameManager.GetProcessNames(cn));
            }
        }
Example #3
0
        public virtual DataTable GetProcessPerformanceKPI(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            string    strInclude = request.GetString("include", null);
            string    strExclude = request.GetString("exclude", null);
            string    type       = request.GetString("Type", "year");
            int       year       = request.GetInt32("year", DateTime.Today.Year);
            int       month      = request.GetInt32("month", -1);
            bool      byYear     = String.Compare(type, "year", true) == 0;

            if (byYear)
            {
                month = -1;
            }

            BPMObjectNameCollection include = null;
            BPMObjectNameCollection exclude = null;

            if (!String.IsNullOrEmpty(strInclude))
            {
                include = JArray.Parse(strInclude).ToObject <BPMObjectNameCollection>();
            }
            if (!String.IsNullOrEmpty(strExclude))
            {
                exclude = JArray.Parse(strExclude).ToObject <BPMObjectNameCollection>();
            }

            //获得数据
            DataTable srcTable;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    using (YZReader reader = new YZReader(provider.GetProcessPerformanceKPI(cn, year, month, include, exclude)))
                    {
                        srcTable = reader.LoadTable();
                    }
                }
            }

            int runingProcessCount = 0;
            int TaskCounts         = 0;
            int AvgMinutes         = 0;
            int MaxMinutes         = 0;

            runingProcessCount = Convert.ToInt32(srcTable.Rows[0]["ProcessCounts"]);
            TaskCounts         = Convert.ToInt32(srcTable.Rows[0]["TaskCounts"]);
            AvgMinutes         = Convert.ToInt32(srcTable.Rows[0]["AvgMinutes"]);
            MaxMinutes         = Convert.ToInt32(srcTable.Rows[0]["MaxMinutes"]);

            float avgDay   = (float)TaskCounts / (float)(year == DateTime.Today.Year ? DateTime.Today.DayOfYear : 365);
            float avgMonth = (avgDay * 365) / 12;
            float avgWeek  = avgDay * 7;

            int allProcessCounts;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                allProcessCounts = ProcessNameManager.GetProcessNames(cn).Count;
            }

            //输出KPI
            DataRow   row;
            DataTable table = new DataTable();

            table.Columns.Add("title");
            table.Columns.Add("value");

            //流程数
            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ProcessCount;
            row["value"] = String.Format("{0:#,##0}/{1:#,##0}", runingProcessCount, allProcessCounts);

            //总发起数
            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ReportApprovedCount;
            row["value"] = TaskCounts.ToString("#,##0");


            if (byYear)
            {
                row = table.NewRow();
                table.Rows.Add(row);
                row["title"] = Resources.YZStrings.Aspx_ReportMonthlyApprovedCount;
                row["value"] = Convert.ToInt32(avgMonth).ToString("#,##0");
            }
            else
            {
                row = table.NewRow();
                table.Rows.Add(row);
                row["title"] = Resources.YZStrings.Aspx_ReportDaily;
                row["value"] = Convert.ToInt32(avgDay).ToString("#,##0");
            }

            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ReportAvgTimeCost;
            row["value"] = YZStringHelper.MinutesToStringDHM(AvgMinutes);

            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ReportMaxTimeCost;
            row["value"] = YZStringHelper.MinutesToStringDHM(MaxMinutes);

            return(table);
        }
Example #4
0
        public virtual DataTable GetProcessUsageKPI(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            string    strInclude = request.GetString("include", null);
            string    strExclude = request.GetString("exclude", null);
            string    type       = request.GetString("Type", "year");
            int       year       = request.GetInt32("year", DateTime.Today.Year);
            int       month      = request.GetInt32("month", -1);
            bool      byYear     = String.Compare(type, "year", true) == 0;

            if (byYear)
            {
                month = -1;
            }

            BPMObjectNameCollection include = null;
            BPMObjectNameCollection exclude = null;

            if (!String.IsNullOrEmpty(strInclude))
            {
                include = JArray.Parse(strInclude).ToObject <BPMObjectNameCollection>();
            }
            if (!String.IsNullOrEmpty(strExclude))
            {
                exclude = JArray.Parse(strExclude).ToObject <BPMObjectNameCollection>();
            }

            //获得数据
            DataTable srcTable;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    using (YZReader reader = new YZReader(provider.GetProcessUsageKPI(cn, year, month, include, exclude)))
                    {
                        srcTable = reader.LoadTable();
                    }
                }
            }

            int Approved           = 0;
            int Rejected           = 0;
            int Running            = 0;
            int Aborted            = 0;
            int Deleted            = 0;
            int Total              = 0;
            int runingProcessCount = 0;

            if (srcTable.Rows.Count > 0)
            {
                Approved           = Convert.ToInt32(srcTable.Rows[0]["Approved"]);
                Rejected           = Convert.ToInt32(srcTable.Rows[0]["Rejected"]);
                Running            = Convert.ToInt32(srcTable.Rows[0]["Running"]);
                Aborted            = Convert.ToInt32(srcTable.Rows[0]["Aborted"]);
                Deleted            = Convert.ToInt32(srcTable.Rows[0]["Deleted"]);
                Total              = Convert.ToInt32(srcTable.Rows[0]["Total"]);
                runingProcessCount = Convert.ToInt32(srcTable.Rows[0]["ProcessCount"]);
            }

            float avgDay   = (float)Total / (float)(year == DateTime.Today.Year ? DateTime.Today.DayOfYear : 365);
            float avgMonth = (avgDay * 365) / 12;
            float avgWeek  = avgDay * 7;

            int allProcessCounts;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                allProcessCounts = ProcessNameManager.GetProcessNames(cn).Count;
            }

            //输出KPI
            DataRow   row;
            DataTable table = new DataTable();

            table.Columns.Add("title");
            table.Columns.Add("value");

            //流程数
            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ProcessCount;
            row["value"] = String.Format("{0:#,##0}/{1:#,##0}", runingProcessCount, allProcessCounts);

            //总发起数
            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_PostCount;
            row["value"] = Total.ToString("#,##0");

            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ReportDaily;
            row["value"] = Convert.ToInt32(avgDay).ToString("#,##0");

            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ReportWeekly;
            row["value"] = Convert.ToInt32(avgWeek).ToString("#,##0");

            if (byYear)
            {
                row = table.NewRow();
                table.Rows.Add(row);
                row["title"] = Resources.YZStrings.Aspx_ReportMonthly;
                row["value"] = Convert.ToInt32(avgMonth).ToString("#,##0");
            }

            row = table.NewRow();
            table.Rows.Add(row);
            row["title"] = Resources.YZStrings.Aspx_ApprovePer;
            row["value"] = Total == 0 ? "100%":(Approved * 100 / Total).ToString() + '%';

            return(table);
        }