Beispiel #1
0
        /// <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);
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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()
            });