/// <summary> /// 儿童娱乐公司 /// </summary> /// <param name="Year"></param> /// <param name="FinMonth"></param> /// <param name="DataType"></param> /// <returns></returns> public List <MonthReportSummaryViewModel> GetChildrenCompany(int Year, int FinMonth, string DataType) { string sql = "GetChildrenCompany "; SqlParameter p1 = new SqlParameter("@FinYear", Year); SqlParameter p2 = new SqlParameter("@FinMonth", FinMonth); SqlParameter p3 = new SqlParameter("@DataType", DataType); var ds = DbHelper.RunSPReturnDS(sql, ConnectionName, p1, p2, p3); List <MonthReportSummaryViewModel> data = new List <MonthReportSummaryViewModel>(); if (ds.Tables[0].Rows.Count > 3) { ds.Tables[0].Rows.Cast <System.Data.DataRow>().ForEach(row => { MonthReportSummaryViewModel item = new MonthReportSummaryViewModel(); item.TargetName = row["TargetName"].ToString(); item.SystemName = row["SystemName"].ToString(); item.ID = int.Parse(row["Sequence"].ToString()); item.MeasureRate = row["_Target"].ToString(); item.SystemID = Guid.Parse(row["SystemID"].ToString()); item.TargetID = Guid.Parse(row["TargetID"].ToString()); item.FinYear = int.Parse(row["FinYear"].ToString()); item.FinMonth = int.Parse(row["FinMonth"].ToString()); item.NPlanAmmount = double.Parse(row["NPlanAmmount"].ToString()); item.NActualAmmount = double.Parse(row["NActualAmmount"].ToString()); item.NDifference = double.Parse(row["NDifference"].ToString()); item.NAccumulativePlanAmmount = double.Parse(row["NAccumulativePlanAmmount"].ToString()); item.NAccumulativeActualAmmount = double.Parse(row["NAccumulativeActualAmmount"].ToString()); item.NAccumulativeDifference = double.Parse(row["NAccumulativeDifference"].ToString()); data.Add(item); }); } return(data); }
public List <DictionaryVmodel> UpdateDirectlyMonthReportDetail(string rpts, string info, string strMonthReportID) { List <DictionaryVmodel> ListObj = new List <DictionaryVmodel>(); ReportInstance rpt = JsonHelper.Deserialize <ReportInstance>(rpts); MonthReportSummaryViewModel mrsvm = JsonHelper.Deserialize <MonthReportSummaryViewModel>(info); MonthlyReportDetail mrd = rpt.ReportDetails.Find(p => p.ID == mrsvm.MonthlyDetailID); if (mrd != null) { MonthlyReportDetail tempMRD = mrd; tempMRD.NActualAmmount = (decimal)mrsvm.NActualAmmount; B_MonthlyReportDetail B_detail = CalculationEvaluationEngine.CalculationEvaluationService.Calculation(tempMRD.ToBModel(), ""); B_MonthlyreportdetailOperator.Instance.UpdateMonthlyreportdetail(B_detail); rpt.ReportDetails.Remove(mrd); rpt.ReportDetails.Add(B_detail.ToVModel()); } ListObj.Add(new DictionaryVmodel("ReportInstance", rpt)); ListObj.Add(new DictionaryVmodel("MonthDetail", GetTargetDetailList(rpt, "", false))); ListObj.Add(new DictionaryVmodel("Misstarget", GetMissTargetList(rpt, strMonthReportID, true))); ListObj.Add(new DictionaryVmodel("MonthReportDescription", GetMonthTRptDescription(rpt))); ListObj.Add(new DictionaryVmodel("CurrentMissTargetList", GetCurrentMissTargetList(rpt, strMonthReportID.ToString(), true))); SaveJsonData(strMonthReportID.ToGuid(), rpt, ListObj); return(ListObj); }
public MonthReportSummaryViewModel SummaryCalculation(MonthReportSummaryViewModel model) { C_Target T = StaticResource.Instance.TargetList[model.SystemID].Find(t => t.ID == model.TargetID); if (StaticResource.Instance.SystemList.Where(p => p.ID == model.SystemID).FirstOrDefault().Category == 3) { return((MonthReportSummaryViewModel)this["SUM_Group"].Calculation(model)); } return((MonthReportSummaryViewModel)this["SUM_" + T.TargetType.ToString()].Calculation(model)); }
public List <MonthReportSummaryViewModel> GetMonthlyReportDetailSummaryList(bool IsLatestVersion = false) { List <MonthReportSummaryViewModel> listMonthReportSummaryViewModel = new List <MonthReportSummaryViewModel>(); MonthReportSummaryViewModel mrsvm = null; List <MonthlyReportDetail> MRDList = ReportDetails.Where(p => p.SystemID == _System.ID && (p.Display == true)).ToList(); List <C_TargetKpi> targetKpiList = StaticResource.Instance.GetKpiList(_System.ID, FinYear); int i = 1; foreach (C_Target target in _Target.OrderBy(p => p.Sequence)) { if (target.NeedReport == true) { mrsvm = new MonthReportSummaryViewModel(); mrsvm.ID = i; mrsvm.FinYear = FinYear; mrsvm.TargetID = target.ID; mrsvm.SystemID = target.SystemID; mrsvm.TargetName = target.TargetName; mrsvm.NPlanAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NPlanAmmount)); mrsvm.NActualAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NActualAmmount)); mrsvm.NDifference = mrsvm.NActualAmmount - mrsvm.NPlanAmmount; mrsvm.NAccumulativePlanAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NAccumulativePlanAmmount)); mrsvm.NAccumulativeActualAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NAccumulativeActualAmmount)); mrsvm.NAccumulativeDifference = mrsvm.NAccumulativeActualAmmount - mrsvm.NAccumulativePlanAmmount; if (target.Configuration != null && target.Configuration.Element("SummaryTargetDisplay") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi").Value.Trim().ToLower() == "true") { if (targetKpiList.Count > 0 && targetKpiList.Find(p => p.TargetID == target.ID) != null) { mrsvm.MeasureRate = Math.Round(targetKpiList.Find(p => p.TargetID == target.ID).MeasureRate * 100, 0, MidpointRounding.AwayFromZero).ToString() + "%"; } } else { mrsvm.MeasureRate1 = (double)Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear).FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero); mrsvm.MeasureRate = mrsvm.MeasureRate1.ToString(); } listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); i++; } } return(listMonthReportSummaryViewModel); }
public List <ShowDSTargetArea> GetDSTargetCompletedDetail(int Year, int Month, bool IsLatestVersion) { List <ShowDSTargetArea> Showlist = new List <ShowDSTargetArea>(); //计算完成率的集合 List <MonthReportSummaryViewModel> listMonthReportSummaryViewModel = new List <MonthReportSummaryViewModel>(); C_System SystemModel = C_SystemOperator.Instance.GetSystem(SysDescriptionID); if (SystemModel != null) { List <C_Target> TargetList = C_TargetOperator.Instance.GetTargetList(SystemModel.ID, DateTime.Now).Where(t => t.NeedReport == true && t.TargetName != "总部管理费用").ToList(); List <C_Company> CompanyList = C_CompanyOperator.Instance.GetCompanyList(SystemModel.ID).ToList(); //上一个月以及当前月的信息 ReportInstance LastMonthReport = null; List <MonthlyReportDetail> LastMonthRptList = null; if (Month > 1) { LastMonthReport = new ReportInstance(SystemModel.ID, Year, Month - 1, IsLatestVersion); //这是上月的数据 LastMonthRptList = LastMonthReport.ReportDetails; } ReportInstance CurrentMonthReport = new ReportInstance(SystemModel.ID, Year, Month, IsLatestVersion); //当月的数据 List <MonthlyReportDetail> CurrentMonthRptList = CurrentMonthReport.ReportDetails; int RateIndex = 1; for (int i = 1; i < EnumUtil.GetItems(typeof(DSDetailAreaName)).Count + 1; i++) { ShowDSTargetArea DSTargetArea = new ShowDSTargetArea(); DSTargetArea.ID = i; DSTargetArea.AreaName = EnumUtil.GetEnumDescription(typeof(DSDetailAreaName), i); if (i < 4) { List <ShowDSTargetCompletedDetail> list = new List <ShowDSTargetCompletedDetail>(); foreach (C_Target itemt in TargetList.OrderBy(t => t.Sequence)) { //计算完成率实体(上一个月) MonthReportSummaryViewModel Lastmrsvm = new MonthReportSummaryViewModel(); //计算完成率实体(当前月及其累计) MonthReportSummaryViewModel mrsvm = new MonthReportSummaryViewModel(); decimal LastSumPlan = 0; decimal LastSumActual = 0; decimal CurrentSumPlan = 0; decimal CurrentSumActual = 0; decimal CurrentSumAccumulativePlan = 0; decimal CurrentSumAccumulativeActual = 0; ShowDSTargetCompletedDetail DSModel = new ShowDSTargetCompletedDetail(); DSModel.DetailAreaID = i; DSModel.DetailTargetName = itemt.TargetName; List <C_Company> NorthCompanyList = CompanyList.Where(t => t.CompanyProperty3 == DSTargetArea.AreaName).ToList(); foreach (C_Company c in NorthCompanyList) { if (Month > 1) { //上一个 MonthlyReportDetail LastReportDetailModel = GetMonthlyReportDetail(c, LastMonthRptList, CurrentMonthRptList, itemt, false); if (LastReportDetailModel != null && LastReportDetailModel.ID != Guid.Empty) { LastSumPlan += LastReportDetailModel.NPlanAmmount; LastSumActual += LastReportDetailModel.NActualAmmount; } } //当前月以及当前月累计 MonthlyReportDetail CurrentReportDetailModel = GetMonthlyReportDetail(c, LastMonthRptList, CurrentMonthRptList, itemt, true); if (CurrentReportDetailModel != null && CurrentReportDetailModel.ID != Guid.Empty) { CurrentSumPlan += CurrentReportDetailModel.NPlanAmmount; CurrentSumActual += CurrentReportDetailModel.NActualAmmount; CurrentSumAccumulativePlan += CurrentReportDetailModel.NAccumulativePlanAmmount; CurrentSumAccumulativeActual += CurrentReportDetailModel.NAccumulativeActualAmmount; } } DSModel.LastPlan = Convert.ToDecimal(LastSumPlan.ToString("N2")); DSModel.LastActual = Convert.ToDecimal(LastSumActual.ToString("N2")); DSModel.LastDifference = Convert.ToDecimal((LastSumActual - LastSumPlan).ToString("N2")); DSModel.CurrentPlan = Convert.ToDecimal(CurrentSumPlan.ToString("N2")); DSModel.CurrentActual = Convert.ToDecimal(CurrentSumActual.ToString("N2")); DSModel.CurrentDifference = Convert.ToDecimal((CurrentSumActual - CurrentSumPlan).ToString("N2")); DSModel.ToCurrentPlan = Convert.ToDecimal(CurrentSumAccumulativePlan.ToString("N2")); DSModel.ToCurrentActual = Convert.ToDecimal(CurrentSumAccumulativeActual.ToString("N2")); DSModel.ToCurrentDifference = Convert.ToDecimal((CurrentSumAccumulativeActual - CurrentSumAccumulativePlan).ToString("N2")); //计算完成率(上一个月) Lastmrsvm.ID = RateIndex; Lastmrsvm.TargetID = itemt.ID; Lastmrsvm.SystemID = itemt.SystemID; Lastmrsvm.TargetName = itemt.TargetName; Lastmrsvm.NPlanAmmount = (double)(DSModel.LastPlan); Lastmrsvm.NActualAmmount = (double)(DSModel.LastActual); Lastmrsvm.FinYear = Year; Lastmrsvm.MeasureRate = "1"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(Lastmrsvm)); //计算完成率(当前月及其累计) mrsvm.ID = RateIndex + 1; mrsvm.TargetID = itemt.ID; mrsvm.SystemID = itemt.SystemID; mrsvm.TargetName = itemt.TargetName; mrsvm.NPlanAmmount = (double)(DSModel.CurrentPlan); mrsvm.NActualAmmount = (double)(DSModel.CurrentActual); mrsvm.NAccumulativePlanAmmount = (double)(DSModel.ToCurrentPlan); mrsvm.NAccumulativeActualAmmount = (double)(DSModel.ToCurrentActual); mrsvm.FinYear = Year; mrsvm.MeasureRate = "1"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); //显示集合 list.Add(DSModel); } DSTargetArea.DetailList = list; Showlist.Add(DSTargetArea); } if (i == 4) { List <ShowDSTargetCompletedDetail> Totallist = new List <ShowDSTargetCompletedDetail>(); foreach (C_Target itemt in TargetList.OrderBy(t => t.Sequence)) { //计算完成率实体(上一个月) MonthReportSummaryViewModel Lastmrsvm = new MonthReportSummaryViewModel(); //计算完成率实体(当前月及其累计) MonthReportSummaryViewModel mrsvm = new MonthReportSummaryViewModel(); decimal LastSumPlan = 0; decimal LastSumActual = 0; decimal CurrentSumPlan = 0; decimal CurrentSumActual = 0; decimal CurrentSumAccumulativePlan = 0; decimal CurrentSumAccumulativeActual = 0; foreach (ShowDSTargetArea area in Showlist) { foreach (ShowDSTargetCompletedDetail item in area.DetailList) { if (item.DetailAreaID != i && item.DetailTargetName == itemt.TargetName) { LastSumPlan += item.LastPlan; LastSumActual += item.LastActual; CurrentSumPlan += item.CurrentPlan; CurrentSumActual += item.CurrentActual; CurrentSumAccumulativePlan += item.ToCurrentPlan; CurrentSumAccumulativeActual += item.ToCurrentActual; } } } ShowDSTargetCompletedDetail DSModel = new ShowDSTargetCompletedDetail(); DSModel.DetailAreaID = i; DSModel.DetailTargetName = itemt.TargetName; DSModel.LastPlan = Convert.ToDecimal(LastSumPlan.ToString("N2")); DSModel.LastActual = Convert.ToDecimal(LastSumActual.ToString("N2")); DSModel.LastDifference = Convert.ToDecimal((LastSumActual - LastSumPlan).ToString("N2")); DSModel.CurrentPlan = Convert.ToDecimal(CurrentSumPlan.ToString("N2")); DSModel.CurrentActual = Convert.ToDecimal(CurrentSumActual.ToString("N2")); DSModel.CurrentDifference = Convert.ToDecimal((CurrentSumActual - CurrentSumPlan).ToString("N2")); DSModel.ToCurrentPlan = Convert.ToDecimal(CurrentSumAccumulativePlan.ToString("N2")); DSModel.ToCurrentActual = Convert.ToDecimal(CurrentSumAccumulativeActual.ToString("N2")); DSModel.ToCurrentDifference = Convert.ToDecimal((CurrentSumAccumulativeActual - CurrentSumAccumulativePlan).ToString("N2")); //计算完成率(上一个月) Lastmrsvm.ID = RateIndex; Lastmrsvm.TargetID = itemt.ID; Lastmrsvm.SystemID = itemt.SystemID; Lastmrsvm.TargetName = itemt.TargetName; Lastmrsvm.NPlanAmmount = (double)(DSModel.LastPlan); Lastmrsvm.NActualAmmount = (double)(DSModel.LastActual); Lastmrsvm.FinYear = Year; Lastmrsvm.MeasureRate = "1"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(Lastmrsvm)); //计算完成率(当前月及其累计) mrsvm.ID = RateIndex + 1; mrsvm.TargetID = itemt.ID; mrsvm.SystemID = itemt.SystemID; mrsvm.TargetName = itemt.TargetName; mrsvm.NPlanAmmount = (double)(DSModel.CurrentPlan); mrsvm.NActualAmmount = (double)(DSModel.CurrentActual); mrsvm.NAccumulativePlanAmmount = (double)(DSModel.ToCurrentPlan); mrsvm.NAccumulativeActualAmmount = (double)(DSModel.ToCurrentActual); mrsvm.FinYear = Year; mrsvm.MeasureRate = "1"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); //显示集合 Totallist.Add(DSModel); } DSTargetArea.DetailList = Totallist; Showlist.Add(DSTargetArea); } } } //遍历集合修改完成率 List <ShowDSTargetArea> sShowlist = new List <ShowDSTargetArea>(); int d = 0; for (int b = 0; b < Showlist.Count; b++) { for (int c = 0; c < Showlist[b].DetailList.Count; c++) { Showlist[b].DetailList[c].LastRate = listMonthReportSummaryViewModel[d].NActualRate; d++; Showlist[b].DetailList[c].CurrentRate = listMonthReportSummaryViewModel[d].NActualRate; Showlist[b].DetailList[c].ToCurrentRate = listMonthReportSummaryViewModel[d].NAccumulativeActualRate; d++; } sShowlist.Add(Showlist[b]); } return(sShowlist); }
/// <summary> /// 文化集团 B表数据 /// </summary> /// <param name="Year"></param> /// <param name="FinMonth"></param> /// <returns></returns> public List <MonthReportSummaryViewModel> GetWandaCulture_B(int Year, int FinMonth) { string sql = "GetWandaCulture_B "; SqlParameter p1 = new SqlParameter("@FinYear", Year); SqlParameter p2 = new SqlParameter("@FinMonth", FinMonth); var ds = DbHelper.RunSPReturnDS(sql, ConnectionName, p1, p2); List <MonthReportSummaryViewModel> data = new List <MonthReportSummaryViewModel>(); if (ds.Tables[0].Rows.Count > 3) { ds.Tables[0].Rows.Cast <System.Data.DataRow>().ForEach(row => { MonthReportSummaryViewModel item = new MonthReportSummaryViewModel(); item.TargetName = row["TargetName"].ToString(); item.SystemName = row["SystemName"].ToString(); item.ID = int.Parse(row["Sequence"].ToString()); item.MeasureRate = row["_Target"].ToString(); if (string.IsNullOrEmpty(row["SystemID"].ToString())) { item.SystemID = Guid.Empty; return; } else { item.SystemID = Guid.Parse(row["SystemID"].ToString()); } if (string.IsNullOrEmpty(row["TargetID"].ToString())) { item.TargetID = Guid.Empty; return; } else { item.TargetID = Guid.Parse(row["TargetID"].ToString()); } if (string.IsNullOrEmpty(row["FinYear"].ToString())) { item.FinYear = 0; } else { item.FinYear = int.Parse(row["FinYear"].ToString()); } if (string.IsNullOrEmpty(row["FinMonth"].ToString())) { item.FinMonth = 0; } else { item.FinMonth = int.Parse(row["FinMonth"].ToString()); } if (string.IsNullOrEmpty(row["NPlanAmmount"].ToString())) { item.NPlanAmmount = 0; } else { item.NPlanAmmount = double.Parse(row["NPlanAmmount"].ToString()); } if (string.IsNullOrEmpty(row["NActualAmmount"].ToString())) { item.NActualAmmount = 0; } else { item.NActualAmmount = double.Parse(row["NActualAmmount"].ToString()); } if (string.IsNullOrEmpty(row["NDifference"].ToString())) { item.NDifference = 0; } else { item.NDifference = double.Parse(row["NDifference"].ToString()); } if (string.IsNullOrEmpty(row["NAccumulativePlanAmmount"].ToString())) { item.NAccumulativePlanAmmount = 0; } else { item.NAccumulativePlanAmmount = double.Parse(row["NAccumulativePlanAmmount"].ToString()); } if (string.IsNullOrEmpty(row["NAccumulativeActualAmmount"].ToString())) { item.NAccumulativeActualAmmount = 0; } else { item.NAccumulativeActualAmmount = double.Parse(row["NAccumulativeActualAmmount"].ToString()); } if (string.IsNullOrEmpty(row["NAccumulativeDifference"].ToString())) { item.NAccumulativeDifference = 0; } else { item.NAccumulativeDifference = double.Parse(row["NAccumulativeDifference"].ToString()); } data.Add(item); }); } return(data); }
/// <summary> /// 指标统计(两个方法,一个提供给上报,一个提供给报表查询) /// </summary> /// <param name="IsReported">true:上报 , false :报表查询 </param> /// <returns></returns> private List <MonthReportSummaryViewModel> GetMonthlyReportDetailSummaryList(bool IsReported) { List <MonthReportSummaryViewModel> listMonthReportSummaryViewModel = new List <MonthReportSummaryViewModel>(); MonthReportSummaryViewModel mrsvm = null; List <MonthlyReportDetail> MRDList = ReportDetails.Where(p => p.SystemID == _System.ID && (p.Display == true)).ToList(); List <C_TargetKpi> targetKpiList = StaticResource.Instance.GetKpiList(_System.ID, FinYear); //这里总是从最新的指标计划获取 List <A_TargetPlanDetail> ATPDList = StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear); int i = 1; if (MRDList != null) { if (MRDList.Count > 0) { foreach (C_Target target in _Target.OrderBy(p => p.Sequence)) { if (target.NeedReport == true) { mrsvm = new MonthReportSummaryViewModel(); mrsvm.ID = i; mrsvm.FinYear = FinYear; mrsvm.TargetID = target.ID; mrsvm.SystemID = target.SystemID; mrsvm.TargetName = target.TargetName; mrsvm.NPlanAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NPlanAmmount)); mrsvm.NActualAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NActualAmmount)); mrsvm.NDifference = mrsvm.NActualAmmount - mrsvm.NPlanAmmount; if (IsReported) { mrsvm.NAccumulativePlanAmmount = (double)ATPDList.FindAll(p => p.TargetID == target.ID && p.FinMonth <= FinMonth).Sum(s => s.Target); //(double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NAccumulativePlanAmmount)); if (MRDList[0].TargetPlanID != Guid.Empty) { List <B_TargetPlanDetail> BTPDList = B_TargetplandetailOperator.Instance.GetTargetplandetailList(MRDList[0].TargetPlanID).ToList(); mrsvm.NAccumulativePlanAmmount = (double)BTPDList.FindAll(p => p.TargetID == target.ID && p.FinMonth <= FinMonth).Sum(s => s.Target); } else { mrsvm.NAccumulativePlanAmmount = (double)ATPDList.FindAll(p => p.TargetID == target.ID && p.FinMonth <= FinMonth).Sum(s => s.Target); } //mrsvm.NAccumulativePlanAmmount = Math.Round(B_TargetplandetailOperator.Instance.GetTargetplandetailList(lstMrd[0].TargetPlanID).ToList().FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7).ToString(); } else { mrsvm.NAccumulativePlanAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NAccumulativePlanAmmount)); } mrsvm.NAccumulativeActualAmmount = (double)(MRDList.Where(p => p.TargetID == target.ID).Sum(e => e.NAccumulativeActualAmmount)); mrsvm.NAccumulativeDifference = mrsvm.NAccumulativeActualAmmount - mrsvm.NAccumulativePlanAmmount; if (target.Configuration != null && target.Configuration.Element("SummaryTargetDisplay") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi").Value.Trim().ToLower() == "true") { if (targetKpiList.Count > 0 && targetKpiList.Find(p => p.TargetID == target.ID) != null) { mrsvm.MeasureRate = Math.Round(targetKpiList.Find(p => p.TargetID == target.ID).MeasureRate * 100, 0, MidpointRounding.AwayFromZero).ToString() + "%"; } } else { var companyIdList = MRDList.Select(v => v.CompanyID).Distinct().ToList(); mrsvm.MeasureRate = Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear, MRDList[0].TargetPlanID).FindAll(P => P.TargetID == target.ID && companyIdList.Contains(P.CompanyID)).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); } listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); if (target.ID == ConfigurationManager.AppSettings["MonthSGRent"].ToGuid()) { //租金收缴率-本月 mrsvm.NPlanStr = 0.99 * 100 + "%"; var actuanub = mrsvm.NActualAmmount / mrsvm.NPlanAmmount; mrsvm.NActualStr = Math.Round(actuanub * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; if (actuanub > 0.99) { mrsvm.NActualRate = "超计划" + Math.Round((actuanub - 0.99) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NActualRate = mrsvm.NActualRate; } else { mrsvm.NActualRate = Math.Round((actuanub) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NActualRate = mrsvm.NActualRate; } //租金收缴率-年度累计 mrsvm.NAccumulativePlanStr = 0.99 * 100 + "%"; var Naccnub = mrsvm.NAccumulativeActualAmmount / mrsvm.NAccumulativePlanAmmount; mrsvm.NAccumulativeActualStr = Math.Round(Naccnub * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; if (Naccnub > 0.99) { mrsvm.NAccumulativeActualRate = "超计划" + Math.Round((Naccnub - 0.99) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NAccumulativeActualRate = mrsvm.NAccumulativeActualRate; } else { mrsvm.NAccumulativeActualRate = Math.Round((Naccnub) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NAccumulativeActualRate = mrsvm.NAccumulativeActualRate; } double MeasureRate = (double)StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear).FindAll(P => P.TargetID == target.ID).Sum(P => P.Target); var merate = mrsvm.NAccumulativeActualAmmount / MeasureRate; if (merate > 0.99) { mrsvm.NAnnualCompletionRate = "超计划" + Math.Round((merate - 0.99) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NAnnualCompletionRate = mrsvm.NAnnualCompletionRate; } else { mrsvm.NAnnualCompletionRate = Math.Round((merate) * 100, 1, MidpointRounding.AwayFromZero).ToString() + "%"; listMonthReportSummaryViewModel[0].NAnnualCompletionRate = mrsvm.NAnnualCompletionRate; } } i++; } } } } return(listMonthReportSummaryViewModel); }
private List <MonthReportSummaryViewModel> GetMonthlyReportDetailSummaryList(bool IsTargetPlan, bool IsReported) { List <MonthReportSummaryViewModel> listMonthReportSummaryViewModel = new List <MonthReportSummaryViewModel>(); MonthReportSummaryViewModel mrsvm = null; FormatDownData(IsTargetPlan); List <MonthlyReportDetail> MRDList = ReportDetails; List <C_TargetKpi> targetKpiList = StaticResource.Instance.GetKpiList(_System.ID, FinYear); //这里总是从最新的指标计划获取 //List<A_TargetPlanDetail> ATPDList = StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear); int i = 1; if (MRDList.Count > 0) { List <A_TargetPlanDetail> ATPDList = StaticResource.Instance.GetTargetPlanList (_System.ID, FinYear).Where(v => v.TargetPlanID == ReportDetails.FirstOrDefault().TargetPlanID).ToList(); foreach (C_Target target in _Target.OrderBy(p => p.Sequence)) { if (target.NeedReport == true) { List <MonthlyReportDetail> lstMrd = MRDList.Where(p => p.TargetID == target.ID).ToList(); if (lstMrd.Count > 0) { mrsvm = new MonthReportSummaryViewModel(); mrsvm.ID = i; mrsvm.FinYear = FinYear; mrsvm.TargetID = target.ID; mrsvm.SystemID = target.SystemID; mrsvm.TargetName = target.TargetName; mrsvm.MonthlyDetailID = lstMrd.FirstOrDefault().ID; mrsvm.NPlanAmmount = (double)(lstMrd.FirstOrDefault().NPlanAmmount); mrsvm.NActualAmmount = (double)(lstMrd.FirstOrDefault().NActualAmmount); mrsvm.NDifference = mrsvm.NActualAmmount - mrsvm.NPlanAmmount; if (IsReported) { //上报的时候 mrsvm.NAccumulativePlanAmmount = (double)ATPDList.FindAll(p => p.TargetID == target.ID && p.FinMonth <= FinMonth).Sum(s => s.Target); //(double)(lstMrd.FirstOrDefault().NAccumulativePlanAmmount); } else { //历史查询 mrsvm.NAccumulativePlanAmmount = (double)(lstMrd.FirstOrDefault().NAccumulativePlanAmmount); } mrsvm.NAccumulativeActualAmmount = (double)(lstMrd.FirstOrDefault().NAccumulativeActualAmmount); mrsvm.Counter = lstMrd.FirstOrDefault().Counter; mrsvm.NAccumulativeDifference = mrsvm.NAccumulativeActualAmmount - mrsvm.NAccumulativePlanAmmount; if (target.Configuration != null && target.Configuration.Element("SummaryTargetDisplay") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi") != null && target.Configuration.Element("SummaryTargetDisplay").Attribute("ShowKpi").Value.Trim().ToLower() == "true") { if (targetKpiList.Count > 0 && targetKpiList.Find(p => p.TargetID == target.ID) != null) { mrsvm.MeasureRate = Math.Round(targetKpiList.Find(p => p.TargetID == target.ID).MeasureRate * 100, 0, MidpointRounding.AwayFromZero).ToString() + "%"; } } else { if (IsReported) { //如果是上报功能,从A表中拿到最新的 全年计划指标 //mrsvm.MeasureRate = Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear).FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); mrsvm.MeasureRate = Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear) .Where(v => v.TargetPlanID == ReportDetails.FirstOrDefault().TargetPlanID).ToList() .FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); } else { //如果是报表 从B表中获取,历史的计划指标 if (lstMrd[0].TargetPlanID != Guid.Empty) { mrsvm.MeasureRate = Math.Round(B_TargetplandetailOperator.Instance.GetTargetplandetailList(lstMrd[0].TargetPlanID).ToList().FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); } else { //mrsvm.MeasureRate = Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear).FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); mrsvm.MeasureRate = Math.Round(StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear) .Where(v => v.TargetPlanID == ReportDetails.FirstOrDefault().TargetPlanID).ToList() .FindAll(P => P.TargetID == target.ID).Sum(P => P.Target), 7, MidpointRounding.AwayFromZero).ToString(); } } } listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); i++; } } } } return(listMonthReportSummaryViewModel); }
private List <MonthReportSummaryViewModel> GetMonthlyReportDetailSummaryList() { List <MonthReportSummaryViewModel> listMonthReportSummaryViewModel = new List <MonthReportSummaryViewModel>(); MonthReportSummaryViewModel mrsvm = null; List <MonthlyReportDetail> MRDList = ReportDetails.Where(p => p.SystemID == _System.ID).ToList(); List <C_TargetKpi> targetKpiList = StaticResource.Instance.GetKpiList(_System.ID, FinYear); //这里总是从最新的指标计划获取 List <A_TargetPlanDetail> ATPDList = StaticResource.Instance.GetTargetPlanList(_System.ID, FinYear); int i = 1; if (MRDList.Count > 0) { foreach (C_Target target in _Target.Where(p => p.HaveDetail == false).OrderBy(p => p.Sequence)) { List <MonthlyReportDetail> tempMRDList = null; List <V_GroupTargetXElement> lstVTX = SplitGroupTargetXml(_System.Configuration); if (lstVTX.Where(p => p.GroupDetail == true && p.TargetValue.ToGuid() == target.ID).Count() > 0) { var jquery = from _target in _Target.Where(p => p.HaveDetail == true) join mrd in ReportDetails on _target.ID equals mrd.TargetID select mrd; tempMRDList = jquery.ToList(); } else { tempMRDList = MRDList.Where(p => p.TargetID == target.ID).ToList(); } mrsvm = new MonthReportSummaryViewModel(); mrsvm.FinYear = FinYear; mrsvm.TargetID = target.ID; mrsvm.SystemID = target.SystemID; mrsvm.TargetName = target.TargetName; mrsvm.NPlanAmmount = (double)(tempMRDList.Sum(e => e.NPlanAmmount)); mrsvm.NActualAmmount = (double)(tempMRDList.Sum(e => e.NActualAmmount)); mrsvm.NAccumulativePlanAmmount = (double)(tempMRDList.Sum(e => e.NAccumulativePlanAmmount)); mrsvm.NAccumulativeActualAmmount = (double)(tempMRDList.Sum(e => e.NAccumulativeActualAmmount)); mrsvm.MeasureRate = "0"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(mrsvm)); i++; } } //计算合计(月度报告) if (listMonthReportSummaryViewModel.Count > 0) { MonthReportSummaryViewModel summrsvm = new MonthReportSummaryViewModel(); summrsvm.FinYear = FinYear; summrsvm.TargetID = listMonthReportSummaryViewModel[0].TargetID; summrsvm.SystemID = listMonthReportSummaryViewModel[0].SystemID; summrsvm.TargetName = "合计"; summrsvm.NPlanAmmount = listMonthReportSummaryViewModel.Sum(e => e.NPlanAmmount); summrsvm.NActualAmmount = listMonthReportSummaryViewModel.Sum(e => e.NActualAmmount); summrsvm.NAccumulativePlanAmmount = listMonthReportSummaryViewModel.Sum(e => e.NAccumulativePlanAmmount); summrsvm.NAccumulativeActualAmmount = listMonthReportSummaryViewModel.Sum(e => e.NAccumulativeActualAmmount); summrsvm.MeasureRate = "0"; listMonthReportSummaryViewModel.Add(TargetEvaluationEngine.TargetEvaluationService.SummaryCalculation(summrsvm)); } return(listMonthReportSummaryViewModel); }