示例#1
0
        public static string GetHistory(string obtid, DateTime start, DateTime current, TimeMode timeMode, OBTField[] dataField, OBTField keyField)
        {
            OBTCODE       obt       = AWSCode.OBTCodeList[obtid];
            StringBuilder sb        = new StringBuilder();
            string        tableName = getTableName(start, obt.AREA, timeMode, keyField);
            string        selectField;

            for (int i = 0; i < dataField.Length; i++)
            {
                if (i > 0)
                {
                    sb.Append(",");
                }
                sb.Append(dataField[i].ToString());
            }
            selectField = sb.ToString();
            sb.Clear();
            sb.AppendFormat("select {0} from {1} where obtid=:obtId AND DDATETIME >= :dstart AND DDATETIME <= :dend and {2} is not null ORDER BY DDATETIME", selectField, tableName, keyField.ToString());
            DataTable data = OracleHelp.ExecuteDataTable(sb.ToString(), T_LOCALOBTMIND.Tunnel.connString, new OracleParameter(":obtId", obtid), new OracleParameter(":dstart", start), new OracleParameter(":dend", current));

            sb.Clear();
            sb.Append("[");
            int itemIndex;
            int rows = 0;

            foreach (DataRow row in data.Rows)
            {
                if (rows++ > 0)
                {
                    sb.Append(",");
                }
                itemIndex = 0;
                sb.Append("[");
                foreach (var item in row.ItemArray)
                {
                    if (itemIndex++ > 0)
                    {
                        sb.Append(",");
                    }
                    if (item is DateTime)
                    {
                        sb.Append("\"");
                        sb.Append(Utility.DateTimeToJson((DateTime)item));
                        sb.Append("\"");
                    }
                    else
                    {
                        sb.Append(item);
                    }
                }
                sb.Append("]");
            }
            sb.Append("]");
            return(sb.ToString());
        }
示例#2
0
        /// <summary>
        /// 历史差变查询
        /// </summary>
        public static string GetHistory(string obtid, DateTime current, OBTField fieldName)
        {
            int    offsetHours;
            string field = getFieldName(fieldName, out offsetHours);

            if (offsetHours == 0)
            {
                return(null);
            }
            DateTime      start     = current.AddHours(offsetHours);
            OBTCODE       obt       = AWSCode.OBTCodeList[obtid];
            string        tableName = AWSItems.getTableName(start, obt.AREA, TimeMode.MINUTE);
            StringBuilder sb        = new StringBuilder();

            sb.AppendFormat("select DDATETIME,{0} from {1} where obtid=:obtId AND DDATETIME >= :dstart AND DDATETIME<=:dend and {2} is not null ORDER BY DDATETIME", field, tableName, field);
            DataTable           data       = OracleHelp.ExecuteDataTable(sb.ToString(), T_LOCALOBTMIND.Tunnel.connString, new OracleParameter(":obtId", obtid), new OracleParameter(":dstart", start), new OracleParameter(":dend", current));
            List <AWSOffsetRow> offsetData = new List <AWSOffsetRow>();

            foreach (DataRow row in data.Rows)
            {
                offsetData.Add(new AWSOffsetRow()
                {
                    DDATETIME = (DateTime)row[0], VALUE = (decimal)row[1]
                });
            }
            sb.Clear();
            sb.Append("[");
            if (offsetData.Count > 0)
            {
                int     rows       = 0;
                decimal firstValue = offsetData[0].VALUE;
                for (int i = 0; i < offsetData.Count; i++)
                {
                    if (rows++ > 0)
                    {
                        sb.Append(",");
                    }
                    sb.Append("[");
                    sb.Append("\"");
                    sb.Append(Utility.DateTimeToJson(offsetData[i].DDATETIME));
                    sb.Append("\",");
                    sb.Append(offsetData[i].VALUE - firstValue);
                    sb.Append("]");
                }
            }
            sb.Append("]");
            return(sb.ToString());
        }
示例#3
0
        /// <summary>
        /// 获取用户时间的自动站全局排序
        /// </summary>
        public static List <AWSFieldValue> GetFullViewSort(AWDType type, DateTime?date, OBTArea area, TimeMode timeMode, AWSAdmin awsAdmin, string[] citys, OBTField dataField, bool orderByDescending, int maxCount, int accuracy, bool orderbyDesc)
        {
            List <AWSFieldValue> result    = new List <AWSFieldValue>();
            List <AWSFieldValue> awsFromDb = getAwsFieldValueFromDb(type, date, area, timeMode, dataField, accuracy, false, orderbyDesc);
            var dataOrderBy = orderByDescending ? awsFromDb.OrderByDescending(t => t.V0).ToArray() : awsFromDb.OrderBy(t => t.V0).ToArray();

            for (int i = 0; i < dataOrderBy.Length; i++)
            {
                var item = dataOrderBy[i];
                if (obtCodeList.ContainsKey(item.ID))
                {
                    OBTCODE aws = obtCodeList[item.ID];
                    if (citys.Length == 0 || citys.Contains(aws.AREAID))
                    {
                        if (awsAdmin == AWSAdmin.city)
                        {
                            if (AWSCode.ChinaAWS.ContainsKey(item.ID))
                            {
                                continue;
                            }
                        }
                        else if (awsAdmin == AWSAdmin.state)
                        {
                            if (!AWSCode.ChinaAWS.ContainsKey(item.ID))
                            {
                                continue;
                            }
                        }
                        result.Add(item);
                        if (--maxCount == 0)
                        {
                            break;
                        }
                    }
                }
            }
            return(result);
        }
示例#4
0
        /// <summary>
        /// 获取用户地图显示需要的数据
        /// </summary>
        /// <returns></returns>
        public static ClientReport GetAWSDataInfomation(AWDType type, DateTime?date, OBTArea area, TimeMode timeMode, AWSAdmin awsAdmin, string[] citys, OBTField dataField, int accuracy, double minLng, double minLat, double maxLng, double maxLat, int canvasWidth, int canvasHeight, int minSpace, bool isPlaying, bool orderbyDesc)
        {
            List <AWSFieldValue> awsFromDb    = getAwsFieldValueFromDb(type, date, area, timeMode, dataField, accuracy, isPlaying, orderbyDesc);
            List <AWSFieldValue> awsTmpResult = new List <AWSFieldValue>();
            List <AWSFieldValue> statsTarget  = new List <AWSFieldValue>();
            Mercator             myMercator   = new Mercator(minLat, maxLat, canvasHeight, minLng, maxLng, canvasWidth);

            for (int i = 0; i < awsFromDb.Count; i++)
            {
                AWSFieldValue item = awsFromDb[i];
                if (obtCodeList.ContainsKey(item.ID))
                {
                    OBTCODE aws = obtCodeList[item.ID];
                    if (awsAdmin == AWSAdmin.city)
                    {
                        if (AWSCode.ChinaAWS.ContainsKey(item.ID))
                        {
                            continue;
                        }
                    }
                    else if (awsAdmin == AWSAdmin.state)
                    {
                        if (!AWSCode.ChinaAWS.ContainsKey(item.ID))
                        {
                            continue;
                        }
                    }
                    statsTarget.Add(item);
                    if (aws.LONGITUDE > minLng && aws.LATITUDE > minLat && aws.LONGITUDE < maxLng && aws.LATITUDE < maxLat)
                    {
                        //计算CANVAS坐标
                        item.x = myMercator.Longitude2screentX(aws.LONGITUDE);
                        item.y = myMercator.Latitude2screentY(aws.LATITUDE);
                        if (checkSpace(item, awsTmpResult, minSpace))
                        {
                            if (type == AWDType.VIS && aws.AREAID == "45005" && item.V0 < 10)
                            {
                                item.V0 *= 1000;
                                item.V0  = double.Parse(item.V0.ToString("f1"));
                            }
                            awsTmpResult.Add(item);
                        }
                    }
                }
            }
            ClientReport result = new ClientReport()
            {
                aws = awsTmpResult
            };

            result.stats = Stats.getAwsStatis(type, statsTarget, citys);
            if (date == null)
            {
                if (awsTmpResult.Count > 0)
                {
                    result.time = awsTmpResult[0].TM.Value;
                }
            }
            else
            {
                result.time = date.Value;
            }
            return(result);
        }