public bool InitStatParams(DataStatParamInfo DataStatParam, DataStoreTableInfo DataStoreItem)
        {
            int             res = 0;
            QueryResultBase QueryResultObject = new QueryResultBase();

            dataStatParam = DataStatParam;
            dataStoreItem = DataStoreItem;



            mysqlCnn = new MySqlConnectHelper(Conn);



            if (mysqlCnn.OpenConnect() == false)
            {
                LoggerManager.Log.Info("MySql连接对象创建失败!\n");
                return(false);
            }

            String DbName = $"`[iot]-[{DataStatParam.CompanyCode}]`";

            res = mysqlCnn.SelectDB(DbName);


            //MySqlDataReader companyReader = MySqlHelper.ExecuteReader(Conn, CommandType.Text, "select * from companyinfo", null);

            return(true);
        }
Example #2
0
        private void AnalyzeDaySpliteSql(DataStatParamInfo DataQueryParam, DataStoreTableInfo DataStoreItem)
        {
            DateTime dtStart = Convert.ToDateTime(DataQueryParam.StartDate);
            DateTime dtEnd   = Convert.ToDateTime(DataQueryParam.EndDate);

            DateTime d3   = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtStart.Year, dtStart.Month, dtStart.Day));
            DateTime d4   = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtEnd.Year, dtEnd.Month, dtEnd.Day));
            int      days = (d4 - d3).Days;

            int StartMonth = dtStart.Month;
            int currYear   = dtStart.Year;

            string QueryTableNamePrex = $"[datastore]-[{ DataQueryParam.DeviceCode}]-[{ DataQueryParam.TableName}]";

            for (int i = 0; i < days; i++)
            {
                StatQueryCondition tempQueryCondition = new StatQueryCondition();
                string             startDate;
                string             endDate;

                if (i == 0)
                {
                    startDate = $"{dtStart.Year}-{dtStart.Month}-{dtStart.Day} {dtStart.Hour}:{dtStart.Minute}:{dtStart.Second}";
                }
                else
                {
                    startDate = $"{dtStart.Year}-{dtStart.Month}-{dtStart.Day} 00:00:00";
                }

                if (i == (days - 1))
                {
                    endDate = $"{dtEnd.Year}-{dtEnd.Month}-{dtEnd.Day} {dtEnd.Hour}:{dtEnd.Minute}:{dtEnd.Second}";
                }
                else
                {
                    endDate = $"{dtStart.Year}-{dtStart.Month}-{dtStart.Day} 23:59:59";
                }


                string QueryTableNameSuffix = $"-{dtStart.Year}-{dtStart.Month}-{dtStart.Day}";
                string tempQueryTableName   = QueryTableNamePrex + QueryTableNameSuffix;

                tempQueryCondition.StartDate = startDate;
                tempQueryCondition.EndDate   = endDate;

                //tempQueryCondition.SelectCondition = $"between '{startDate}'and '{endDate}'";
                tempQueryCondition.TableName = tempQueryTableName;

                dtStart.AddDays(1);
            }



            return;
        }
        public QueryResultBase HandleStatInterface(DataStatParamInfo dataStatParam)
        {
            QueryResultBase QueryResultObject = new QueryResultBase();

            DataStoreTableInfo DataStoreConfigItem = CompanyManagerHelper.GetDeviceDataStoreConfigItem(
                dataStatParam.CompanyCode, dataStatParam.DeviceCode, dataStatParam.TableName);

            if (DataStoreConfigItem == null)
            {
                //QueryResultObject = new QueryResultBase();

                QueryResultObject.ResultCode = QueryResultCodeEnum.QUERY_ERROR_NO_DATA_STORE_CONFIG;
                QueryResultObject.QueryData  = null;
            }
            else
            {
                switch (dataStatParam.DataType)
                {
                case DATA_TYPE.DATA_SUM:

                    break;

                case DATA_TYPE.DATA_CUSTOM_ACC:
                    QueryResultObject = new QueryResultBase();
                    StatAlgorithm statAlogrithmObject = new StatAlgorithm();

                    if (statAlogrithmObject.InitStatParams(dataStatParam, DataStoreConfigItem) == true)
                    {
                        QueryResultObject = statAlogrithmObject.GetStatRecordsetData();
                    }
                    else
                    {
                        QueryResultObject.ResultCode = QueryResultCodeEnum.QUERY_ERROR_NO_DATA_STORE_CONFIG;
                        QueryResultObject.QueryData  = null;
                    }

                    break;

                default:
                    break;
                }
            }



            return(QueryResultObject);
        }
        public HttpResponseMessage StatQueryData([FromBody] DataStatParamInfo StatParams)
        {
            //DataQueryParamObject queryParam = null;
            QueryResultBase queryResult = null;


            if (StatParams == null)
            {
                queryResult            = new QueryResultBase();
                queryResult.ResultCode = QueryResultCodeEnum.QUERY_ERROR_PARAM;

                return(HttpResponseExtension.toJson(JsonConvert.SerializeObject(queryResult)));
            }
            IotDataStatInterface dataStatInterfaceObject = new IotDataStatInterface();

            queryResult = dataStatInterfaceObject.HandleStatInterface(StatParams);

            return(HttpResponseExtension.toJson(JsonConvert.SerializeObject(queryResult)));
        }
Example #5
0
        public List <StatQueryCondition> GetStatSqlList(DataStatParamInfo DataStatParam, DataStoreTableInfo DataStoreItem)
        {
            switch (DataStoreItem.SpliteTableType)
            {
            case SPLITE_TABLE_TYPE.SPLITE_DEFAULT:
                AnalyzeDefaultSpliteSql(DataStatParam, DataStoreItem);
                break;

            case SPLITE_TABLE_TYPE.SPLITE_MONTH:
                AnalyzeMonthSpliteSql(DataStatParam, DataStoreItem);
                break;

            case SPLITE_TABLE_TYPE.SPLITE_YEAR:
                break;

            default:
                break;
            }

            return(statConditionList);
        }