/// <summary> /// 根据查询条件获取数据。 /// </summary> /// <param name="basicQuery"></param> /// <returns></returns> public ResultCompare GetDateTongJiData(BasicQuery basicQuery) { var resultList = new ResultView.ResultCompare { ObjectName = new List <string>(), Enery = new Dictionary <string, List <decimal> >(), Dept = new List <string>() }; List <Model.BaseLayerObject> objectList; if (basicQuery.AreaType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } EnergyContrast contst = new EnergyContrast(); var result = contst.GetQueryLineChart(basicQuery); resultList.ObjectName = result.ObjectName; if (basicQuery.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Enery.Add(objectList[0].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(objectList[0].LayerObjectName, tempValue.ToList()); } return(resultList); }
/// <summary> /// 根据查询条件获取数据。 /// </summary> /// <param name="basicQuery"></param> /// <returns></returns> public ResultCompare GetDateTongJiData(BasicQuery basicQuery) { var resultList = new ResultView.ResultCompare { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; List<Model.BaseLayerObject> objectList; if (basicQuery.AreaType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } EnergyContrast contst = new EnergyContrast(); var result = contst.GetQueryLineChart(basicQuery); resultList.ObjectName = result.ObjectName; if (basicQuery.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Enery.Add(objectList[0].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(objectList[0].LayerObjectName, tempValue.ToList()); } return resultList; }
/// <summary> /// /// </summary> /// <param name="query"></param> /// <returns></returns> public ResultFeeapportion GetFeeApportionData(Queryfeeapportion query) { try { ExecuteProcess process = new ExecuteProcess(); process.ActionName = ""; process.ActionTime = System.DateTime.Now; process.Success = true; process.ExceptionMsg = ""; ResultFeeapportion feeApption = new ResultFeeapportion(); feeApption.FeeApportionType = "按比例分摊"; List <TB_Alloction_Config> config = GetAlloctionConfig(query); if (config.Count == 0) { process.Success = false; process.ExceptionMsg = "此区域费用分摊没有配置"; ResultFeeapportion feeApptionReturn = new ResultFeeapportion(); feeApption.ActionInfo = process; return(feeApption); } Queryfeeapportion queryLastMonth = new Queryfeeapportion(); queryLastMonth.ItemCode = query.ItemCode; queryLastMonth.ObjType = query.ObjType; queryLastMonth.ObjectId = query.ObjectId; queryLastMonth.StartTime = query.StartTime.AddMonths(-1); List <TB_Alloction_Config> configLast = GetAlloctionConfig(queryLastMonth); FeeApportionValClass feeappVal = new FeeApportionValClass(); FeeApportionChartsClass chartClass = new FeeApportionChartsClass(); // 数据。 List <SeriesClass> serialClass = new List <SeriesClass>(); if (config.Count > 0) { DateTime dtBegin = config[0].ALLoction_StartDate; DateTime dtEnd = config[0].ALLoction_EndDate; double feeDai = config[0].ALLoction_Fee; feeappVal.ApportionVal = config[0].ALLoction_Fee; //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(query, dtBegin, dtEnd); EnergyContrast energy = new EnergyContrast(); BasicQuery query2 = new BasicQuery(); query2.AreaType = query.ObjType; query2.StartTime = config[0].ALLoction_StartDate; query2.EndTime = config[0].ALLoction_EndDate; query2.ObjectNum = query.ObjectId; query2.QueryType = EnergyAnalyseQueryType.Default; query2.Unit = 1; var lineChart = energy.GetSingleItemCodeByObject(query2, query.ItemCode); double befVal = 0; befVal = (double)lineChart.Values.Sum(); AccessCommon acess = new AccessCommon(); decimal flPrice = acess.GetFeePrice(query.ItemCode); befVal = befVal * (double)flPrice; //foreach (var costQueryModel in refModel) //{ // befVal += costQueryModel.TOTAL_COST; //} feeappVal.BeforeVal = Math.Round(befVal, 2); feeappVal.TotalVal = Math.Round((befVal + feeappVal.ApportionVal), 2); } List <SeriesData> sidatas = new List <SeriesData>(); SeriesData seri = new SeriesData(); // 统计明细数据 SeriesData data1 = new SeriesData(); SeriesData data2 = new SeriesData(); List <SeriesClass> serClass1 = new List <SeriesClass>(); List <SeriesClass> serClass2 = new List <SeriesClass>(); int iCout = 0; // 列表 List <FeeApportionListClass> appList = new List <FeeApportionListClass>(); foreach (TB_Alloction_Config conf in config) { FeeApportionListClass listClass = new FeeApportionListClass(); SeriesClass serial1 = new SeriesClass(); SeriesClass serial2 = new SeriesClass(); int objectId = conf.AreaID; List <Model.BaseLayerObject> objectList; string objectName = ""; TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID); if (info != null) { objectName = info.CName; } //Queryfeeapportion queryItem = new Queryfeeapportion(); //queryItem = query; //queryItem.ObjectId = conf.AreaID; //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(queryItem, conf.ALLoction_StartDate, conf.ALLoction_EndDate); double BefFee = 0; //if (refModel.Count > 0) //{ // for (int jCount = 0; jCount < refModel.Count; jCount++) // { // BefFee += refModel[jCount].TOTAL_COST; // } //} EnergyContrast energy = new EnergyContrast(); BasicQuery query2 = new BasicQuery(); query2.AreaType = query.ObjType; query2.StartTime = config[0].ALLoction_StartDate; query2.EndTime = config[0].ALLoction_EndDate; query2.ObjectNum = conf.AreaID; query2.QueryType = EnergyAnalyseQueryType.Default; query2.Unit = 1; var lineChart2 = energy.GetSingleItemCodeByObject(query2, query.ItemCode); BefFee = (double)lineChart2.Values.Sum(); AccessCommon acess = new AccessCommon(); decimal flPrice = acess.GetFeePrice(query.ItemCode); BefFee = BefFee * (double)flPrice; serial1.name = objectName; serial2.name = objectName; serial1.y = Math.Round(BefFee); serial2.y = Math.Round((conf.ALLoction_Fee * conf.CfgPercent), 2); serClass1.Add(serial1); serClass2.Add(serial2); FeeApportionListClass list1 = new FeeApportionListClass(); list1.Id = iCout + 1; list1.Obj = objectName; list1.Tm = query.StartTime.ToString("yyyy-MM"); list1.BeforeVal = Math.Round(BefFee, 2); list1.ApportionVal = Math.Round((conf.ALLoction_Fee * conf.CfgPercent), 2); list1.TotalVal = list1.BeforeVal + list1.ApportionVal; appList.Add(list1); iCout++; } data1.name = "分摊前费用"; data1.data = serClass1; data2.name = "分摊费用"; data2.data = serClass2; sidatas.Add(data1); sidatas.Add(data2); chartClass.series = sidatas; feeApption.FeeApportionCharts = chartClass; if (configLast.Count > 0) { DateTime dtBegin2 = configLast[0].ALLoction_StartDate; DateTime dtEnd2 = configLast[0].ALLoction_EndDate; double feeDai = configLast[0].ALLoction_Fee; feeappVal.ApportionValLastMonth = configLast[0].ALLoction_Fee; //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(query, dtBegin2, dtEnd2); double beforeApportionVal = 0; //foreach (var costQueryModel in refModel) //{ // beforeApportionVal += costQueryModel.TOTAL_COST; //} EnergyContrast energy = new EnergyContrast(); BasicQuery query2 = new BasicQuery(); query2.AreaType = query.ObjType; query2.StartTime = configLast[0].ALLoction_StartDate; query2.EndTime = configLast[0].ALLoction_EndDate; query2.ObjectNum = query.ObjectId; query2.QueryType = EnergyAnalyseQueryType.Default; query2.Unit = 1; var lineChart2 = energy.GetSingleItemCodeByObject(query2, query.ItemCode); beforeApportionVal = (double)lineChart2.Values.Sum(); AccessCommon acess = new AccessCommon(); decimal flPrice = acess.GetFeePrice(query.ItemCode); beforeApportionVal = Math.Round(beforeApportionVal * (double)flPrice, 2); feeappVal.BeforeValLastMonth = beforeApportionVal; feeappVal.TotalValLastMonth = beforeApportionVal + feeappVal.ApportionValLastMonth; } if (feeappVal.ApportionValLastMonth > 0) { double compare = (feeappVal.ApportionVal - feeappVal.ApportionValLastMonth) * 100 / feeappVal.ApportionValLastMonth; feeappVal.ApportionValCompare = Math.Round(compare, 2).ToString(); } else { feeappVal.ApportionValCompare = "-"; } if (feeappVal.BeforeValLastMonth > 0) { double compare = (feeappVal.BeforeVal - feeappVal.BeforeValLastMonth) * 100 / feeappVal.BeforeValLastMonth; feeappVal.BeforeValCompare = Math.Round(compare, 2).ToString(); } else { feeappVal.BeforeValCompare = "-"; } if (feeappVal.TotalValLastMonth > 0) { double compare = (feeappVal.TotalVal - feeappVal.TotalValLastMonth) * 100 / feeappVal.TotalValLastMonth; feeappVal.TotalValCompare = Math.Round(compare, 2).ToString(); } else { feeappVal.TotalValCompare = "-"; } FeeApportionTblClass tblClass = new FeeApportionTblClass(); tblClass.FeeApportionList = appList; feeApption.FeeApportionTbl = tblClass; feeApption.FeeApportionVal = feeappVal; feeApption.ActionInfo = process; return(feeApption); } catch (Exception ex) { ExecuteProcess process = new ExecuteProcess(); process.ActionName = ""; process.ActionTime = System.DateTime.Now; process.Success = false; process.ExceptionMsg = ex.Message; ResultFeeapportion feeApption = new ResultFeeapportion(); feeApption.ActionInfo = process; return(feeApption); } }
/// <summary> /// 数据库获取导出数据列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public List <FeeApportionListClass> GetFeeApportDataList(Queryfeeapportion query) { Queryfeeapportion queryLastMonth = query; List <TB_Alloction_Config> config = GetAlloctionConfig(query); int iCout = 0; // 列表 List <FeeApportionListClass> appList = new List <FeeApportionListClass>(); foreach (TB_Alloction_Config conf in config) { FeeApportionListClass listClass = new FeeApportionListClass(); SeriesClass serial1 = new SeriesClass(); SeriesClass serial2 = new SeriesClass(); int objectId = conf.AreaID; List <Model.BaseLayerObject> objectList; string objectName = ""; if (query.ObjType == AreaType.Area) { TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID); //objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( // string.Format(" and layerobjectid ={0} ", conf.AreaID), " "); if (info != null) { objectName = info.CName; } } else { TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID); if (info != null) { objectName = info.CName; } } Queryfeeapportion queryItem = new Queryfeeapportion(); queryItem = query; queryItem.ObjectId = conf.AreaID; double BefFee = 0; //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(queryItem, conf.ALLoction_StartDate, conf.ALLoction_EndDate); //double BefFee = 0; //if (refModel.Count > 0) //{ // for (int jCount = 0; jCount < refModel.Count; jCount++) // { // BefFee += refModel[jCount].TOTAL_COST; // } //} EnergyContrast energy = new EnergyContrast(); BasicQuery query2 = new BasicQuery(); query2.AreaType = query.ObjType; query2.StartTime = config[0].ALLoction_StartDate; query2.EndTime = config[0].ALLoction_EndDate; query2.ObjectNum = query.ObjectId; query2.QueryType = EnergyAnalyseQueryType.Default; query2.Unit = 1; var lineChart = energy.GetSingleItemCodeByObject(query2, query.ItemCode); BefFee = (double)lineChart.Values.Sum(); AccessCommon acess = new AccessCommon(); decimal flPrice = acess.GetFeePrice(query.ItemCode); BefFee = BefFee * (double)flPrice; FeeApportionListClass list1 = new FeeApportionListClass(); list1.Id = iCout + 1; list1.Obj = objectName; list1.Tm = query.StartTime.ToString("yyyy-MM"); list1.BeforeVal = BefFee; list1.ApportionVal = (conf.ALLoction_Fee * conf.CfgPercent) / 100; list1.TotalVal = list1.BeforeVal + list1.ApportionVal; appList.Add(list1); iCout++; } return(appList); }