Готовая лабораторная работа

This commit is contained in:
xom9kxom9k 2024-12-03 17:35:12 +04:00
parent 3d98034783
commit 616953dd71
3 changed files with 10 additions and 5 deletions

View File

@ -40,7 +40,11 @@ public class ChartReport
return _peopleExpense return _peopleExpense
.ReadPeopleExpense() .ReadPeopleExpense()
.Where(x => x.DataReciept.Date == dateTime.Date) .Where(x => x.DataReciept.Date == dateTime.Date)
.GroupBy(x => x.PeopleId, (key, group) => new { Id = key, Count = group.Sum(x => x.ExpensePeopleExpenses.FirstOrDefault(y => y.ExpenseId == expenseId)?.Sum )}) .GroupBy(x => x.PeopleId, (key, group) => new
{
Id = key,
Count = group.Sum(x => x.ExpensePeopleExpenses.FirstOrDefault(y => y.ExpenseId == expenseId)?.Sum ?? 0)
})
.Select(x => (x.Id.ToString(), (double)x.Count)) .Select(x => (x.Id.ToString(), (double)x.Count))
.ToList(); .ToList();
} }

View File

@ -13,7 +13,7 @@ public class TableReport
private readonly IPeopleIncome _peopleIncomeRepository; private readonly IPeopleIncome _peopleIncomeRepository;
private readonly IPeopleExpense _peopleExpenseRepository; private readonly IPeopleExpense _peopleExpenseRepository;
private readonly ILogger<TableReport> _logger; private readonly ILogger<TableReport> _logger;
internal static readonly string[] item = ["Название операции", "Дата", "Заработано", "Потрачено"]; internal static readonly string[] item = ["Человек", "Дата", "Заработано", "Потрачено"];
public TableReport(IPeopleIncome peopleIncomeRepository, IPeopleExpense peopleExpenseRepository, ILogger<TableReport> logger) public TableReport(IPeopleIncome peopleIncomeRepository, IPeopleExpense peopleExpenseRepository, ILogger<TableReport> logger)
{ {
_peopleIncomeRepository = peopleIncomeRepository ?? throw new ArgumentNullException(nameof(peopleIncomeRepository)); _peopleIncomeRepository = peopleIncomeRepository ?? throw new ArgumentNullException(nameof(peopleIncomeRepository));
@ -25,7 +25,7 @@ public class TableReport
try try
{ {
new ExcelBuilder(filePath) new ExcelBuilder(filePath)
.AddHeader("Сводка по движению денег", 0, 3) .AddHeader("Сводка по движению денег", 0, 4)
.AddParagraph("за период", 0) .AddParagraph("за период", 0)
.AddTable([15, 10, 15, 15], GetData(incomeId, expenseId, startDate, endDate)) .AddTable([15, 10, 15, 15], GetData(incomeId, expenseId, startDate, endDate))
.Build(); .Build();

View File

@ -93,10 +93,11 @@ public class PeopleExpenseRepository : IPeopleExpense
using var connection = new NpgsqlConnection(_connectionString.ConnectionString); using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"SELECT pe.*, epe.ExpenseId, epe.Sum FROM PeopleExpense pe var querySelect = @"SELECT pe.*, epe.ExpenseId, epe.Sum FROM PeopleExpense pe
INNER JOIN ExpensePeopleExpense epe on epe.PeopleExpenseId = pe.Id"; INNER JOIN ExpensePeopleExpense epe on epe.PeopleExpenseId = pe.Id";
var peopleExpenses = connection.Query<PeopleExpense>(querySelect); var peopleExpenses = connection.Query<TempExpensePeopleExpense>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", _logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(peopleExpenses)); JsonConvert.SerializeObject(peopleExpenses));
return peopleExpenses; return peopleExpenses.GroupBy(x => x.Id, y => y, (key, value) => PeopleExpense.CreateOperation(value.First(),
value.Select(z => ExpensePeopleExpense.CreateElement(0, z.ExpenseId, z.Sum)))).ToList();
} }
catch (Exception ex) catch (Exception ex)
{ {