using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Reflection;
|
using System.Web;
|
using Terra.YaoGan.Common;
|
using Terra.YaoGan.Service;
|
|
namespace Terra.YaoGan.Web.Ashx
|
{
|
/// <summary>
|
/// DataQH 的摘要说明
|
/// </summary>
|
public class DataQH : IHttpHandler
|
{
|
|
public void ProcessRequest(HttpContext context)
|
{
|
string Action = context.Request["Action"];
|
|
MethodInfo mif = this.GetType().GetMethod(Action);
|
if (mif != null)
|
{
|
mif.Invoke(this, new object[] { context });
|
}
|
}
|
|
//获取初始展示数据
|
public void GetAllQHData(HttpContext context)
|
{
|
string dtTable = context.Request["dataTable"];
|
string clTable = context.Request["colorTable"];
|
string sql = string.Format(@"SELECT SUM(CAST (Area as FLOAT)) Area, SUM( CAST (ZhouChang as FLOAT)) ZhouChang,ThirdLevel,Name ,R,G,B
|
from {0} LEFT JOIN {1} ON ThirdLevel=Code GROUP BY ThirdLevel,Name,R,G,B ", dtTable,clTable);
|
GetTableCommon gt = new GetTableCommon();
|
DataTable dt = gt.GetTable(sql);
|
string jsonStr = DataTableToJson.DtToJson(dt);
|
context.Response.Write(jsonStr);
|
|
}
|
|
//获取数据颜色
|
public void GetColor(HttpContext context)
|
{
|
string clTable = context.Request["colorTable"];
|
string sql = string.Format(@"select * from {0} ORDER BY Code,Type DESC;", clTable);
|
GetTableCommon gt = new GetTableCommon();
|
DataTable dt = gt.GetTable(sql);
|
string jsonStr = DataTableToJson.DtToJson(dt);
|
context.Response.Write(jsonStr);
|
}
|
|
//获取青海2014年国土遥感调查成果湿地数据
|
public void GetQHFZData(HttpContext context)
|
{
|
string dtTable = context.Request["dataTable"];
|
string clTable = context.Request["colorTable"];
|
string sql = string.Format(@"select cr.Name,cr.R,cr.G,cr.B,cr.Type,lv.* FROM {0} cr RIGHT JOIN ( SELECT SUM(CAST (Area as FLOAT)) Area,SUM(CAST (ZhouChang as FLOAT)) ZhouChang,SecondLevel fr from {1} where SecondLevel<>''
|
GROUP BY SecondLevel) lv ON lv.fr=cr.Code
|
UNION
|
select cr.Name,cr.R,cr.G,cr.B,cr.Type,lv.* from {0} cr RIGHT JOIN (select SUM(CAST(Area as FLOAT)) Area, SUM(CAST (ZhouChang as FLOAT)) ZhouChang,ThirdLevel fr from
|
{1} WHERE ThirdLevel<>'' GROUP BY ThirdLevel ) lv ON cr.Code=lv.fr ORDER BY lv.fr,Type DESC",clTable,dtTable);
|
GetTableCommon gt = new GetTableCommon();
|
DataTable dt = gt.GetTable(sql);
|
string jsonStr = DataTableToJson.DtToJson(dt);
|
context.Response.Write(jsonStr);
|
}
|
|
|
|
//获取筛选数据
|
public void GetSearchQHData(HttpContext context)
|
{
|
try
|
{
|
string second= context.Request["secondLevel"];
|
string sStr = "";
|
string colorTable = context.Request["colorTable"];
|
string dataTable = context.Request["dataTable"];
|
if (second != "")
|
{
|
string[] sArr = second.Split('*');
|
for(int i = 0; i < sArr.Length; i++)
|
{
|
sStr += "'" + sArr[i] + "',";
|
}
|
}
|
|
|
|
string sql = string.Format(@"SELECT * FROM (select Code, R,G,B,Name FROM {0} WHERE Name in({1})) cr
|
INNER JOIN
|
(select ThirdLevel, SUM(CAST(Area as FLOAT)) Area, SUM(CAST (ZhouChang as FLOAT)) ZhouChang from {2} GROUP BY ThirdLevel)
|
ct on cr.Code=ct.ThirdLevel", colorTable,sStr.Substring(0,sStr.Length-1),dataTable);
|
|
|
|
GetTableCommon gt = new GetTableCommon();
|
DataTable dt = gt.GetTable(sql);
|
string jsonStr = DataTableToJson.DtToJson(dt);
|
context.Response.Write(jsonStr);
|
}
|
catch
|
{
|
context.Response.Write("");
|
}
|
|
}
|
|
//获取筛选复杂数据统计
|
public void GetFZDataChoose(HttpContext context)
|
{
|
string dtTable = context.Request["dataTable"];
|
string clTable = context.Request["colorTable"];
|
string first = context.Request["firstLevel"];
|
string firstStr = "";
|
string second = context.Request["secondLevel"];
|
string secondStr = "";
|
|
if (first != "")
|
{
|
string[] sarr = first.Split('*');
|
for(int i = 0; i < sarr.Length; i++)
|
{
|
firstStr += "'"+sarr[i] + "',";
|
}
|
|
}
|
|
if (second != "")
|
{
|
string[] sarr = second.Split('*');
|
for (int i = 0; i < sarr.Length; i++)
|
{
|
secondStr += "'"+sarr[i] + "',";
|
}
|
|
}
|
|
string sql = "", sql1 = "", sql2 = "";
|
|
if (firstStr != "")
|
{
|
sql1 =string.Format(@"SELECT * FROM (select Code, R,G,B,Name,Type FROM {0} WHERE Type='parent' And Name in ({1}) ) cr
|
INNER JOIN
|
(select SecondLevel level, SUM(CAST(Area as FLOAT)) Area, SUM(CAST (ZhouChang as FLOAT)) ZhouChang from {2} GROUP BY SecondLevel)
|
ct on cr.Code=ct.level", clTable,firstStr.Substring(0,firstStr.Length-1),dtTable);
|
}
|
|
if (secondStr != "")
|
{
|
sql2 = string.Format(@"SELECT * FROM (select Code, R,G,B,Name,Type FROM {0} where (Type IS NULL or Type='') And Name in({1}) ) cr
|
INNER JOIN
|
(select ThirdLevel level, SUM(CAST(Area as FLOAT)) Area, SUM(CAST (ZhouChang as FLOAT)) ZhouChang from {2} GROUP BY ThirdLevel)
|
ct on cr.Code=ct.level ", clTable, secondStr.Substring(0, secondStr.Length - 1), dtTable);
|
}
|
|
if (sql1 != "" & sql2 != "")
|
{
|
sql = sql1 + " union all " + sql2 + " ORDER BY Code,Type DESC";
|
}else
|
{
|
sql = sql1 + sql2 + " ORDER BY Code,Type DESC";
|
|
}
|
|
GetTableCommon gt = new GetTableCommon();
|
DataTable dt = gt.GetTable(sql);
|
string jsonStr = DataTableToJson.DtToJson(dt);
|
context.Response.Write(jsonStr);
|
|
|
|
}
|
|
|
public bool IsReusable
|
{
|
get
|
{
|
return false;
|
}
|
}
|
}
|
}
|