/// <summary> /// 获取加油单报表 /// </summary> /// <param name="billsFilter">筛选参数</param> /// <param name="errMsg">错误信息</param> /// <returns></returns> public static IList <Model.Report> GetReports( ReportsFilter reportsFilter, out string errMsg) { errMsg = ""; try { string sql = ""; SqlParameter[] para = null; List <SqlParameter> listPara = new List <SqlParameter>(); string where = ""; IList <string> listWhere = new List <string>(); if (reportsFilter != null && reportsFilter.Project > 0) { listPara.Add(new SqlParameter("@Project", reportsFilter.Project)); listWhere.Add("Project = @Project"); } if (reportsFilter != null && reportsFilter.Department > 0) { listPara.Add(new SqlParameter("@Department", reportsFilter.Department)); listWhere.Add("Department = @Department"); } if (reportsFilter != null) { listPara.Add(new SqlParameter("@StartDate", reportsFilter.StartDate)); listPara.Add(new SqlParameter("@EndDate", reportsFilter.EndDate)); listWhere.Add("Time between @StartDate and @EndDate"); } para = listPara.ToArray(); if (listWhere.Count > 0) { where += "where "; where += String.Join(" and ", listWhere.ToArray()); } sql = string.Format("select convert(int,ROW_NUMBER() over(order by Project)) as Id,sum(Volume) as Volume,Project,Department,Oil,getdate() as CreatedDate from [Bill] {0} group by Project,Department,Oil", where); DataTable dt = DBHelper.ExecuteGetDataTable(CommandType.Text, sql, para); IList <Model.Report> listReports = new List <Model.Report>(); foreach (DataRow dr in dt.Rows) { Model.Report report = new Model.Report(); report.Id = (int)dr["Id"]; report.Project = (int)dr["Project"]; report.Department = (int)dr["Department"]; report.Oil = (int)dr["Oil"]; report.Volume = double.Parse(dr["Volume"].ToString()); report.CreatedDate = (DateTime)dr["CreatedDate"]; listReports.Add(report); } return(listReports); } catch (Exception ex) { errMsg = ex.Message; return(null); } }
public async Task GetSummaryData_ReturnsCorrectInactiveDataCollectorCount() { var filters = new ReportsFilter { ProjectId = ProjectId }; var rawReports = new List <RawReport> { new RawReport { DataCollector = new DataCollector { Id = 1 } }, new RawReport { DataCollector = new DataCollector { Id = 2 } }, new RawReport { DataCollector = new DataCollector { Id = 2 } } }; _dataCollectors.AddRange(new[] { new DataCollector { Id = 1, Project = _projects.First() }, new DataCollector { Id = 2, Project = _projects.First() }, new DataCollector { Id = 3, Project = _projects.First() }, new DataCollector { Id = 4, Project = _projects.First() } }); _reportService.GetRawReportsWithDataCollectorQuery(filters).Returns(rawReports.AsQueryable()); var summaryData = await _projectDashboardDataService.GetData(filters); summaryData.ActiveDataCollectorCount.ShouldBe(2); }
public async Task GetSummaryData_ReturnsCorrectActiveDataCollectorCount() { var filters = new ReportsFilter { NationalSocietyId = NationalSocietyId }; var rawReports = new List <RawReport> { new RawReport { DataCollector = new DataCollector { Id = 1 } }, new RawReport { DataCollector = new DataCollector { Id = 1 } }, new RawReport { DataCollector = new DataCollector { Id = 2 } }, new RawReport { DataCollector = new DataCollector { Id = 2 } }, new RawReport { DataCollector = new DataCollector { Id = 3 } } }; _reportService.GetRawReportsWithDataCollectorQuery(filters).Returns(rawReports.AsQueryable()); var summaryData = await _nationalSocietyDashboardSummaryService.GetData(filters); summaryData.ActiveDataCollectorCount.ShouldBe(3); }
public async Task GetSummaryData_ReturnsCorrectReportCount() { var filters = new ReportsFilter { ProjectId = ProjectId }; var reports = new List <Report> { new Report { ReportedCaseCount = 2 }, new Report { ReportedCaseCount = 3 } }; _reportService.GetHealthRiskEventReportsQuery(filters).Returns(reports.AsQueryable()); var summaryData = await _projectDashboardDataService.GetData(filters); summaryData.ReportCount.ShouldBe(5); }
public HttpResponseMessage Get(int?project, int?department, DateTime startDate, DateTime endDate) { ReportsFilter reportsFilter = new ReportsFilter(); reportsFilter.Project = project; reportsFilter.Department = department; reportsFilter.StartDate = startDate; reportsFilter.EndDate = endDate; string errMsg = ""; IList <Model.Report> listReport = BLL.BillManager.GetReports(reportsFilter, out errMsg); HttpStatusCode status; string json; //errMsg = "网络繁忙,请稍稍再度"; if (errMsg.Length > 0) { status = (HttpStatusCode)422; var msg = new { errors = new { ServerSideError = errMsg } }; json = JsonConvert.SerializeObject(msg); } else { status = HttpStatusCode.OK; var msg2 = new { reports = listReport }; json = JsonConvert.SerializeObject(msg2); } return(new HttpResponseMessage(status) { Content = new StringContent(json, System.Text.Encoding.GetEncoding("UTF-8"), "application/json") }); }
public async Task GetSummaryData_ReturnsCorrectErrorReportCount() { var filters = new ReportsFilter { ProjectId = ProjectId }; var allReportsCount = 3; var validReportsCount = 2; var expectedErrorReportsCount = 1; var reports = Enumerable.Range(0, validReportsCount).Select(i => new Report()); var rawReports = Enumerable.Range(0, allReportsCount).Select(i => new RawReport { DataCollector = new DataCollector() }); _reportService.GetSuccessReportsQuery(filters).Returns(reports.AsQueryable()); _reportService.GetRawReportsWithDataCollectorQuery(filters).Returns(rawReports.AsQueryable()); var summaryData = await _projectDashboardDataService.GetData(filters); summaryData.ErrorReportCount.ShouldBe(expectedErrorReportsCount); }
public async Task <IList <ReportByFeaturesAndDateResponseDto> > GetReportsGroupedByFeaturesAndDate(ReportsFilter filters, DatesGroupingType groupingType) { var reports = _reportService.GetHealthRiskEventReportsQuery(filters); var humanReports = reports .Where(r => r.ProjectHealthRisk.HealthRisk.HealthRiskType == HealthRiskType.Human); return(groupingType switch { DatesGroupingType.Day => await GroupReportsByFeaturesAndDay(humanReports, filters.StartDate.Date, filters.EndDate.Date), DatesGroupingType.Week => await GroupReportsByFeaturesAndWeek(humanReports, filters.StartDate.Date, filters.EndDate.Date), _ => throw new InvalidOperationException() });