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