public static string GetHorizontalComparisonDataValue(string myStartTime, string myEndTime, string myTagInfoJson)
        {
            string m_StartTime = myStartTime + "-01";
            string m_EndTime   = DateTime.Parse(myEndTime + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");

            SqlServerDataAdapter.SqlServerDataFactory m_SqlServerDataAdapter = new SqlServerDataAdapter.SqlServerDataFactory(GetDbConnectionString("ConnNXJC"));
            string m_ValueJson = "";

            string[]  m_RowsJson      = EasyUIJsonParser.Infrastructure.JsonHelper.ArrayPicker("rows", myTagInfoJson);
            DataTable m_TagsInfoTable = EasyUIJsonParser.DataGridJsonParser.JsonToDataTable(m_RowsJson, GetTagsInfoTable());

            if (m_TagsInfoTable != null && m_TagsInfoTable.Rows.Count > 0)
            {
                List <string> m_OrganizationList = new List <string>(0);
                List <string> m_VariableList     = new List <string>(0);
                foreach (DataRow item in m_TagsInfoTable.Rows)           //生产运行指标
                {
                    if (item["OrganizationId"] != null && item["OrganizationId"].ToString() != "")
                    {
                        if (item["StatisticType"].ToString() == "Entity")     //生产运行指标
                        {
                            string m_FactoryOrganzationId = GetFactoryOrganzationId(item["OrganizationId"].ToString(), m_SqlServerDataAdapter);
                            item["Value"] = string.Format("{0:F2}", RunIndicators.EquipmentRunIndicators.GetEquipmentUtilization(item["TagItemId"].ToString(), item["VariableId"].ToString(), m_FactoryOrganzationId, m_StartTime, m_EndTime, m_SqlServerDataAdapter));
                        }
                    }
                }
                m_ValueJson = CreateChartString(m_TagsInfoTable, m_TagsInfoTable.Rows[0]["StatisticName"].ToString(), m_TagsInfoTable.Rows[0]["StatisticType"].ToString());
            }
            return(m_ValueJson);
        }
        private static string GetFactoryOrganzationId(string myOrganzationId, SqlServerDataAdapter.SqlServerDataFactory mySqlServerDataAdapter)
        {
            string m_Sql = @"select E.OrganizationID as OrganizationId,E.LevelCode as FactoryLevelCode,F.LevelCode as ParmeterLevelCode from system_Organization E, system_Organization F
                                where F.OrganizationID = '{0}'
                                and CHARINDEX(E.LevelCode, F.LevelCode) > 0
                                and E.LevelType = 'Factory'";

            m_Sql = string.Format(m_Sql, myOrganzationId);

            DataTable m_FactoryOrganzationTable = mySqlServerDataAdapter.Query(m_Sql);

            if (m_FactoryOrganzationTable != null && m_FactoryOrganzationTable.Rows.Count > 0)
            {
                return(m_FactoryOrganzationTable.Rows[0]["OrganizationId"].ToString());
            }
            else
            {
                return(myOrganzationId);
            }
        }
        public static string GetChartDataJson(string myAnalyseCyc, string myStartTime, string myEndTime, string myChartType, string myTagInfoJson)
        {
            SqlServerDataAdapter.SqlServerDataFactory m_SqlServerDataAdapter = new SqlServerDataAdapter.SqlServerDataFactory(GetDbConnectionString("ConnNXJC"));
            string    m_StartTime        = "";
            string    m_EndTime          = "";
            string    m_LastCycStartTime = "";
            string    m_LastCycEndTime   = "";
            string    m_TagItemId        = "";
            string    m_TagField         = "";
            string    m_TagTable         = "";
            string    m_TagDataBase      = "";
            string    m_TagTabClass      = "";       //前台TabId
            string    m_UnitX            = "";
            string    m_UnitY            = "";
            string    m_StaticsCycleType = "";
            DataTable m_ChartDataTableStruct;

            try
            {
                if (myAnalyseCyc == AnalyseCycYear)                //按月统计
                {
                    m_UnitX = "月份";
                    DateTime m_DateTime = DateTime.Parse(myStartTime);
                    m_StartTime = m_DateTime.ToString("yyyy") + "-01-01";
                    m_EndTime   = m_DateTime.ToString("yyyy") + "-12-31";

                    m_LastCycStartTime = m_DateTime.AddYears(-1).ToString("yyyy") + "-01-01";
                    m_LastCycEndTime   = m_DateTime.AddYears(-1).ToString("yyyy") + "-12-31";

                    m_StaticsCycleType = StaticsCycleMonth;
                }
                else if (myAnalyseCyc == AnalyseCycMonth)          //按日统计
                {
                    m_UnitX = "天";
                    DateTime m_DateTime = DateTime.Parse(myStartTime);
                    m_StartTime = m_DateTime.ToString("yyyy-MM") + "-01";
                    m_EndTime   = DateTime.Parse(m_StartTime).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");

                    m_LastCycStartTime = m_DateTime.AddYears(-1).ToString("yyyy-MM") + "-01";
                    m_LastCycEndTime   = DateTime.Parse(m_LastCycStartTime).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");

                    m_StaticsCycleType = StaticsCycleDay;
                }
                else if (myAnalyseCyc == AnalyseCycCustomDefine)   //用户自定义
                {
                    DateTime m_StartDateTime = DateTime.Parse(myStartTime);
                    DateTime m_EndDateTime   = DateTime.Parse(myEndTime);
                    m_UnitX     = "天";
                    m_StartTime = myStartTime;
                    m_EndTime   = m_EndDateTime.ToString("yyyy-MM-dd");


                    m_LastCycStartTime = m_StartDateTime.AddYears(-1).ToString("yyyy-MM-dd");
                    m_LastCycEndTime   = m_EndDateTime.AddYears(-1).ToString("yyyy-MM-dd");

                    m_StaticsCycleType = StaticsCycleDay;
                }

                List <string> m_ColumnNameList = new List <string>();
                //////创建报表结构
                m_ChartDataTableStruct = CreateChartDataTableStruct(myAnalyseCyc, m_StartTime, m_EndTime, m_ColumnNameList);     //生成存储数据的DataTable

                string[]  m_RowsJson      = EasyUIJsonParser.Infrastructure.JsonHelper.ArrayPicker("rows", myTagInfoJson);
                DataTable m_TagsInfoTable = EasyUIJsonParser.DataGridJsonParser.JsonToDataTable(m_RowsJson, GetTagsInfoTable());
                foreach (DataRow m_DataRow in m_TagsInfoTable.Rows)
                {
                    m_TagItemId   = m_DataRow["TagItemId"].ToString();           //指标名称
                    m_TagField    = m_DataRow["TagId"].ToString();               //设备id
                    m_TagTable    = m_DataRow["TagTable"].ToString();
                    m_TagDataBase = m_DataRow["TagDataBase"].ToString();
                    m_TagTabClass = m_DataRow["TagTabClass"].ToString();
                    string m_OtherInfo = m_DataRow["OtherInfo"].ToString();


                    if (m_TagTabClass == ComparableStandard)               //直接读数情况
                    {
                        string[] m_ValueGroup = GetComparableStandardData(m_OtherInfo, m_ChartDataTableStruct);
                        m_ChartDataTableStruct.Rows.Add(m_ValueGroup);
                    }
                    else if (m_TagTabClass == DcsData)                       //从数据库表中直接查询值
                    {
                        m_TagField    = m_DataRow["TagId"].ToString();
                        m_TagTable    = m_DataRow["TagTable"].ToString();
                        m_TagDataBase = m_DataRow["TagDataBase"].ToString();
                        DataTable m_TagValues = null;
                        if (TimeOfLastCycName == m_DataRow["SameTimeOfLastCyc"].ToString())        //如果是去年同期
                        {
                            m_TagValues = GetDcsDataTable(myAnalyseCyc, m_LastCycStartTime, m_LastCycEndTime, m_TagField, m_TagTable, m_TagDataBase);
                        }
                        else
                        {
                            m_TagValues = GetDcsDataTable(myAnalyseCyc, m_StartTime, m_EndTime, m_TagField, m_TagTable, m_TagDataBase);
                        }

                        if (m_TagValues != null)
                        {
                            string[] m_DataColumnsItem = GetDataColumnsItem(m_TagValues, m_ChartDataTableStruct);
                            m_ChartDataTableStruct.Rows.Add(m_DataColumnsItem);
                        }
                    }
                    else if (m_TagTabClass == EntityProductionStatics)               //工序指标
                    {
                        string m_VaribleId = m_DataRow["TagId"].ToString();
                        //string m_OrganizationId = m_DataRow["TagTable"].ToString();
                        ///////////////获得标签数据
                        DataTable m_TagValues = null;
                        if (TimeOfLastCycName == m_DataRow["SameTimeOfLastCyc"].ToString())        //如果是去年同期
                        {
                            string m_FactoryOrganzationId = GetFactoryOrganzationId(m_DataRow["TagTable"].ToString(), m_SqlServerDataAdapter);
                            m_TagValues = RunIndicators.EquipmentRunIndicators.GetEquipmentUtilizationPerMonth(m_TagItemId, m_FactoryOrganzationId, m_VaribleId, m_LastCycStartTime, m_LastCycEndTime, m_SqlServerDataAdapter);
                        }
                        else
                        {
                            string m_FactoryOrganzationId = GetFactoryOrganzationId(m_DataRow["TagTable"].ToString(), m_SqlServerDataAdapter);
                            m_TagValues = RunIndicators.EquipmentRunIndicators.GetEquipmentUtilizationPerMonth(m_TagItemId, m_FactoryOrganzationId, m_VaribleId, m_StartTime, m_EndTime, m_SqlServerDataAdapter);
                        }
                        if (m_TagValues != null)
                        {
                            string[] m_DataColumnsItem = GetDataColumnsItem(m_TagValues, m_ChartDataTableStruct);
                            m_ChartDataTableStruct.Rows.Add(m_DataColumnsItem);
                        }
                    }
                }

                /////////////////////////////获取趋势的行名称和列名称//////////////////////
                if (m_TagsInfoTable != null && m_TagsInfoTable != null && m_ChartDataTableStruct != null)
                {
                    string[] m_RowsName = new string[m_TagsInfoTable.Rows.Count];
                    for (int i = 0; i < m_TagsInfoTable.Rows.Count; i++)
                    {
                        if (TimeOfLastCycName == m_TagsInfoTable.Rows[i]["SameTimeOfLastCyc"].ToString())
                        {
                            m_RowsName[i] = "[" + m_TagsInfoTable.Rows[i]["SameTimeOfLastCyc"].ToString() + "]" + m_TagsInfoTable.Rows[i]["TagItemName"].ToString();
                        }
                        else
                        {
                            m_RowsName[i] = m_TagsInfoTable.Rows[i]["TagItemName"].ToString();
                        }
                    }
                    string m_ChartData = EasyUIJsonParser.ChartJsonParser.GetGridChartJsonString(m_ChartDataTableStruct, m_ColumnNameList.ToArray(), m_RowsName, m_UnitX, m_UnitY, 1);
                    return(m_ChartData);
                }
                else
                {
                    return("{\"rows\":[],\"total\":0}");
                }
            }
            catch (Exception err)
            {
                return("{\"rows\":[],\"total\":0}");
            }
        }