private void VerifyPersonOrAreaExist(NTS.WEB.DataContact.QueryOrderObjects query) { switch (query.QueryType) { case EnergyAnalyseQueryType.UnitArea: case EnergyAnalyseQueryType.UnitPerson: string where = ""; List <Model.BaseLayerObject> LayerObjectList; foreach (var areaid in query.AreaIdLst) { where = string.Format(@"and layerobjectid={0} ", areaid); if (query.ObjType == AreaType.Liquid) { //取液态 LayerObjectList = new DAL.BaseLayerObject().GetBaseFuncLayerObjectList(where, string.Format(" order by LayerObjectID")); } else { LayerObjectList = new DAL.BaseLayerObject().GetBaseLayerObjectList(where, string.Format(" order by LayerObjectID")); } if (LayerObjectList.Count > 0) { switch (query.QueryType) { case EnergyAnalyseQueryType.UnitArea: if (!(LayerObjectList[0].AreaNum > 0)) { throw new Exception(string.Format("位置:【{0}】 单位面积尚未配置", LayerObjectList[0].LayerObjectName)); } break; case EnergyAnalyseQueryType.UnitPerson: if (!(LayerObjectList[0].PersonNum > 0)) { throw new Exception(string.Format("位置:【{0}】 人均尚未配置", LayerObjectList[0].LayerObjectName)); } break; } } } break; } }
/// <summary> /// add by: jy /// add at: 2014-3-24 /// note : 人均能耗对比 /// </summary> /// <param name="query"></param> /// <returns></returns> public ResultCompare GetPersonNumCompareChart(QueryOrderObjects queryObject) { #region 定义区 var resultList = new ResultView.ResultCompare { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; #endregion var olist = queryObject.AreaIdLst.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString())); if (olist.Length > 0) { List<Model.BaseLayerObject> objectList; if (queryObject.ObjType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } foreach (var o in objectList) { var basicQuery = new BasicQuery { EndTime = queryObject.EndTime, StartTime = queryObject.StartTime, ItemCode = queryObject.ItemCode, Unit = queryObject.Particle, AreaType = queryObject.ObjType, QueryType = queryObject.QueryType }; basicQuery.ObjectNum = o.LayerObjectID; var result = GetQueryLineChart(basicQuery); //resultList.Dept = result.Dept; resultList.ObjectName = result.ObjectName; if (queryObject.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + queryObject.ItemCode + "'", " order by ItemcodeID")[0]; //resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]); for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add(itemList.Unit); } resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList()); } else { var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count]; foreach (var re in result.Enery) { for (var i = 0; i < re.Value.Count; i++) { tempValue[i] += re.Value[i]; } } for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add("T"); } resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList()); } } return resultList; } return null; }
public ResultOrder GetShopOrderNew(NTS.WEB.DataContact.QueryOrderObjects query) { try { string keyCatch = string.Empty; foreach (var q in query.AreaIdLst) { keyCatch += q.ToString() + "_"; } keyCatch += query.ItemCode + query.StartTime + query.EndTime + query.QueryType + query.ObjType; if (CacheHelper.GetCache(keyCatch) != null) { return((ResultOrder)CacheHelper.GetCache(keyCatch)); } VerifyPersonOrAreaExist(query); #region 返回对象定义 ResultOrder resultOrder = new ResultOrder(); resultOrder.lineHighChart = new LineHighChart() { series = new List <Series>() }; resultOrder.lineHighChart.series.Add(new Series() { data = new List <EneryHighChart>() }); resultOrder.pieHighChart = new PieHighChart() { series = new List <Series>() }; resultOrder.pieHighChart.series.Add(new Series() { data = new List <EneryHighChart>() }); resultOrder.OrderLst = new List <EnergyOrder>(); #endregion List <Model.Itemcode> itemCodeList = new List <Model.Itemcode>(); if (query.ItemCode == "00000") { //总能耗 itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID"); resultOrder.Unit = "T"; //标准煤单位 } else { itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itemCodeList.Count > 0) { resultOrder.Unit = itemCodeList[0].Unit;//单个分类分项单位 } } switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: case EnergyAnalyseQueryType.Convert2Coal: resultOrder.Unit = "T"; //标准煤单位 break; case EnergyAnalyseQueryType.Convert2Money: resultOrder.Unit = "元"; //标准煤单位 break; } Dictionary <string, decimal> tempConvert = new Dictionary <string, decimal>(); Dictionary <string, int> tempObjectConvert = new Dictionary <string, int>(); var model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = query.AreaIdLst; //model.Unit = GetUnit(query.StartTime, query.EndTime); model.Unit = BaseTool.GetChartUnit(query.Particle); if (model.Unit == ChartUnit.unit_month) { model.Starttime = Convert.ToDateTime(query.StartTime.ToString("yyyy-MM-1")); model.Endtime = Convert.ToDateTime(query.EndTime.ToString("yyyy-MM-1")); } else { model.Starttime = query.StartTime; model.Endtime = query.EndTime; } foreach (var item in itemCodeList) { model.ItemCode = item.ItemCodeNumber; BaseResult resList = reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false); if (resList == null) { continue; } foreach (var r in resList.BaseLayerObjectResults) { if (!tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { tempConvert.Add(r.Value.baseLayerObject.LayerObjectName, 0); } if (!tempObjectConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { tempObjectConvert.Add(r.Value.baseLayerObject.LayerObjectName, r.Value.baseLayerObject.LayerObjectID); } if (tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { if (query.ItemCode == "00000") {//选择总能耗后把其他分类分项的能耗转化成标准煤 switch (query.QueryType) { case EnergyAnalyseQueryType.Default: //默认总能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); // break; case EnergyAnalyseQueryType.UnitArea: //单位面积能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()); break; case EnergyAnalyseQueryType.UnitPerson: //人均能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString()); break; case EnergyAnalyseQueryType.Convert2Coal: //标准煤 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); break; case EnergyAnalyseQueryType.Convert2Co2: //二氧化碳 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString()); break; case EnergyAnalyseQueryType.Convert2Money: //人民币 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString()); break; default: tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());// break; } } else { switch (query.QueryType) { case EnergyAnalyseQueryType.Default: //默认总能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total; break; case EnergyAnalyseQueryType.UnitArea: //单位面积能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()); break; case EnergyAnalyseQueryType.UnitPerson: //人均能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString()); break; case EnergyAnalyseQueryType.Convert2Coal: //标准煤 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); break; case EnergyAnalyseQueryType.Convert2Co2: //二氧化碳 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString()); break; case EnergyAnalyseQueryType.Convert2Money: //人民币 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString()); break; default: tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total; break; } } } } } var tempAsc = from tt in tempConvert orderby tt.Value ascending select tt;//LineChart按照能耗值从低到高排序 foreach (var tempConvertItem in tempAsc) { resultOrder.lineHighChart.series[0].data.Add(new EneryHighChart() { name = tempConvertItem.Key, id = tempObjectConvert[tempConvertItem.Key].ToString(), y = decimal.Parse(tempConvertItem.Value.ToString("f2")) }); } var tempDesc = from tt in tempConvert orderby tt.Value descending select tt;//PieChart按照能耗值从高到低排序 int temppieindex = 1; decimal temppiecount = 0; foreach (var tempConvertItem in tempDesc) { if (temppieindex < 6) { resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart() { name = tempConvertItem.Key, y = decimal.Parse(tempConvertItem.Value.ToString("f2")) }); } else { temppiecount += decimal.Parse(tempConvertItem.Value.ToString("f2")); } temppieindex++; } if (temppieindex > 6) { resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart() { name = "其他", y = temppiecount }); } int order = 1; foreach (var tt in resultOrder.lineHighChart.series[0].data) { resultOrder.OrderLst.Add(new EnergyOrder() { Order = order, Tm = model.Unit == ChartUnit.unit_hour ? query.StartTime.ToString("yyyy-MM-dd") : query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), Obj = tt.name, //ObjID=tempObjectConvert[tt.name], Val = tt.y, EneType = itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName }); order++; } if (CacheHelper.GetCache(keyCatch) == null) { CacheHelper.SetCache(keyCatch, resultOrder, 30); } return(resultOrder); } catch (Exception ee) { throw ee; } }
public ResultCompare GetCompareChartNew(QueryOrderObjects query) { #region 定义区 query.ObjType = AreaType.Area; // 给区域分类 var resultList = new ResultView.ResultCompare { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; #endregion //var olist = query.ObjectNum.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString())); //if (olist.Length > 0) //{ // List<Model.BaseLayerObject> objectList; // if (query.ClassId == 1) // { // objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( // string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); // } // else // { // objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( // string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); // } // foreach (var o in objectList) // { // var basicQuery = new BasicQuery // { // EndTime = query.EndTime, // StartTime = query.StartTime, // ItemCode = query.ItemCode, // Unit = query.Unit // }; // basicQuery.ObjectNum = o.LayerObjectID; // var result = GetQueryLineChart(basicQuery); // resultList.ObjectName = result.ObjectName; // if (query.ItemCode != "00000") // { // var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; // resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]); // for (int i = 0; i < result.Dept.Count; i++) // { // resultList.Dept.Add(itemList.Unit); // } // } // else // { // var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count]; // foreach (var re in result.Enery) // { // for (var i = 0; i < re.Value.Count; i++) // { // tempValue[i] += re.Value[i]; // } // } // for (int i = 0; i < result.Dept.Count; i++) // { // resultList.Dept.Add("T"); // } // resultList.Enery.Add(o.LayerObjectName, tempValue.ToList()); // } // } // return resultList; //} return null; }
public ResultCompare GetPersonNumCompareChart(QueryOrderObjects query) { return entBll.GetPersonNumCompareChart(query); }
public ResultCompare GetAreaCompareChart(QueryOrderObjects query) { return entBll.GetAreaCompareChart(query); }