/// <summary> /// 获取公司当年的整个指标总数 /// </summary> public List <V_PlanTargetModel> GetAnnualPlanTarget(Guid TargetPlanID, int FinYear) { string sql = string.Empty; sql += @" SELECT FinYear ,TargetID , CompanyID ,SUM(Target) AS Target FROM dbo.B_TargetPlanDetail WHERE TargetPlanID =@TargetPlanID AND FinYear =@FinYear GROUP BY FinYear ,TargetID ,CompanyID" ; SqlParameter pTargetPlanID = CreateSqlParameter("@TargetPlanID", System.Data.DbType.Guid, TargetPlanID); SqlParameter pYear = CreateSqlParameter("@FinYear", System.Data.DbType.Int32, FinYear); DataTable dt = ExecuteReturnTable(sql, pTargetPlanID, pYear); List <V_PlanTargetModel> data = new List <V_PlanTargetModel>(); if (dt != null && dt.Rows.Count > 0) { dt.Rows.Cast <System.Data.DataRow>().ForEach(row => { V_PlanTargetModel item = new V_PlanTargetModel(); ORMapping.DataRowToObject(row, item); data.Add(item); }); } return(data); }
bool IsSingleTarget = false; // Update 2015-5-13 是否单个指标 public List <DictionaryVmodel> GetMissTargetRptDataSource(ReportInstance RptModel, C_System sys) { #region 初始化 MissTargetList = new List <MonthlyReportDetail>(); MissTargetTextList = new List <MonthlyReportDetail>(); ReportDetails = new List <MonthlyReportDetail>(); targetList = new List <C_Target>(); #endregion _System = sys; FinMonth = RptModel.FinMonth; FinYear = RptModel.FinYear; targetList = RptModel._Target; List <VGroup> GroupList = new List <VGroup>(); XElement element = null; //加载XML,系统配置信息 element = _System.Configuration; //局部 if (element.Elements("Misstarget").Elements("Group") != null) { List <XElement> Groups = element.Elements("Misstarget").Elements("Group").ToList(); foreach (XElement group in Groups) { GroupList.Add(new VGroup(group)); } } //-------Update 2015 -5-13 区分未完成的时候是单个指标,还是组合指标 start if (element.Elements("Misstarget").ToList().Count > 0) { XElement subElement = element.Elements("Misstarget").ToList()[0]; IsSingleTarget = subElement.GetAttributeValue("IsSingleTarget", false); } //-------Update 2015 -5-13 区分未完成的时候是单个指标,还是组合指标 End ReportDetails = RptModel.ReportDetails; //当月未完成A或B表指标 if (ReportDetails != null && ReportDetails.Count > 0) { MissTargetList = ReportDetails; //当月的数据 int lastFinMonth = 0; if (FinMonth == 1) { lastFinMonth = 0; } else { lastFinMonth = FinMonth - 1; } //找到上个月的数据 , 上个月的数据只能在A表中 //List<A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(RptModel._System.ID, FinYear, lastFinMonth).ToList(); List <A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyReportDetailListForTargetPlanID(RptModel._System.ID, FinYear, lastFinMonth, RptModel.TargetPlanID).ToList(); // 获取各个公司全年的总指标数据 List <V_PlanTargetModel> VPlanTargeList = A_TargetplandetailOperator.Instance.GetAnnualPlanTarget(ReportDetails[0].TargetPlanID, FinYear); //上月的数据 LastMissTargetList = new List <MonthlyReportDetail>(); AList.ForEach(P => LastMissTargetList.Add(P.ToVModel())); foreach (MonthlyReportDetail item in MissTargetList) { MonthlyReportDetail LastTempDetai = LastMissTargetList.Find(p => p.CompanyID == item.CompanyID && p.TargetID == item.TargetID); V_PlanTargetModel PTM = VPlanTargeList.Find(Tp => Tp.CompanyID == item.CompanyID && Tp.TargetID == item.TargetID); //将全年指标总数加进去 if (PTM != null) { item.AnnualTargetPlanValue = PTM.Target; } //判断上个月是否有数据 if (LastTempDetai != null) { item.LastNAccumulativeActualAmmount = LastTempDetai.NAccumulativeActualAmmount; item.LastNAccumulativeDifference = LastTempDetai.NAccumulativeDifference; item.LastNAccumulativePlanAmmount = LastTempDetai.NAccumulativePlanAmmount; item.AddDifference = item.NAccumulativeDifference - item.LastNAccumulativeDifference; item.LastIsMissTarget = LastTempDetai.IsMissTarget; item.LastIsCommitDate = LastTempDetai.IsCommitDate; } else { item.AddDifference = item.NAccumulativeDifference - 0; } MissTargetTextList.Add(item); } } Dictionary <string, object> Alldata = new Dictionary <string, object>(); List <DictionaryVmodel> ReturnList = new List <DictionaryVmodel>(); //补回情况,分组List foreach (var Group in GroupList.OrderBy(G => G.Senquence)) { DictionaryVmodel Vmodel = new DictionaryVmodel(); Vmodel.Name = Group.TargetName; Vmodel.ObjValue = FormartVData(Group, "MissTarget", Group.TargetName); Vmodel.Mark = "Group"; Vmodel.GuoupID = Group.TargetName; Vmodel.TargetGroupCount = Group.TargetIDs.Count(); Vmodel.SystemName = _System.SystemName; ReturnList.Add(Vmodel); } return(ReturnList); }
public List <DictionaryVmodel> GetCurrentMissTargetRptDataSource(ReportInstance RptModel, C_System sys) { _System = sys; FinMonth = RptModel.FinMonth; FinYear = RptModel.FinYear; ReportDetails = RptModel.ReportDetails; List <MonthlyReportDetail> MissTargetList = new List <MonthlyReportDetail>(); List <MonthlyReportDetail> LastMissTargetList = new List <MonthlyReportDetail>(); List <MonthlyReportDetail> MissTargetTextList = new List <MonthlyReportDetail>(); //加载XML List <VGroup> lstVGroup = GetDirectlyMissTargetXml(_System.Configuration); //当月未完成A或B表指标 if (ReportDetails != null && ReportDetails.Count > 0) { MissTargetList = ReportDetails; //当月的数据 int lastFinMonth = 0; if (FinMonth == 1) { lastFinMonth = 0; } else { lastFinMonth = FinMonth - 1; } //找到上个月的数据 , 上个月的数据只能在A表中 //List<A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(RptModel._System.ID, FinYear, lastFinMonth).ToList(); List <A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyReportDetailListForTargetPlanID(RptModel._System.ID, FinYear, lastFinMonth, RptModel.TargetPlanID).ToList(); // 获取各个公司全年的总指标数据 List <V_PlanTargetModel> VPlanTargeList = A_TargetplandetailOperator.Instance.GetAnnualPlanTarget(ReportDetails[0].TargetPlanID, FinYear); //上月的数据 LastMissTargetList = new List <MonthlyReportDetail>(); AList.ForEach(P => LastMissTargetList.Add(P.ToVModel())); foreach (MonthlyReportDetail item in MissTargetList) { V_PlanTargetModel PTM = VPlanTargeList.Find(Tp => Tp.CompanyID == item.CompanyID && Tp.TargetID == item.TargetID); //将全年指标总数加进去 if (PTM != null) { item.AnnualTargetPlanValue = PTM.Target; } //判断上个月是否有数据 MonthlyReportDetail LastMrd = LastMissTargetList.Find(p => p.CompanyID == item.CompanyID && p.TargetID == item.TargetID); if (LastMrd != null) { item.LastNAccumulativeActualAmmount = LastMrd.NAccumulativeActualAmmount; item.LastNAccumulativeDifference = LastMrd.NAccumulativeDifference; item.LastNAccumulativePlanAmmount = LastMrd.NAccumulativePlanAmmount; item.AddDifference = item.NAccumulativeDifference - item.LastNAccumulativeDifference; } else { item.AddDifference = item.NAccumulativeDifference - 0; } MissTargetTextList.Add(item); } } Dictionary <string, object> Alldata = new Dictionary <string, object>(); List <DictionaryVmodel> ReturnList = new List <DictionaryVmodel>(); List <MonthlyReportDetail> AllMissTargetDetail = new List <MonthlyReportDetail>(); List <MonthlyReportDetail> ListMonthReportDetailTemp = new List <MonthlyReportDetail>(); ListMonthReportDetailTemp.Clear(); AllMissTargetDetail.Clear(); foreach (VGroup vGroup in lstVGroup) { foreach (Guid guid in vGroup.TargetIDs) { ListMonthReportDetailTemp.AddRange(MissTargetTextList.Where(p => p.TargetID == guid)); } AllMissTargetDetail.AddRange(FormatData(ListMonthReportDetailTemp, vGroup)); ListMonthReportDetailTemp.Clear(); } ReturnList.Add(new DictionaryVmodel("", AllMissTargetDetail)); return(ReturnList); }