This commit is contained in:
Ctepa 2024-12-20 13:55:03 +04:00
parent 224f955899
commit ed19ff8837
3 changed files with 28 additions and 8 deletions

View File

@ -5,6 +5,8 @@ public class PrintingHouseOrders
public int PrintingHouseId { get; set; }
public int OrderId { get; set; }
public int Count { get; set; }
public string OrderInfo { get; set; }
public static PrintingHouseOrders CreateEntity(int id, int orderId, int count)
{
return new PrintingHouseOrders { PrintingHouseId = id, OrderId = orderId, Count = count };

View File

@ -2,6 +2,7 @@
using System.ComponentModel;
using Unity;
using System.ComponentModel;
using Publication.Entites.Enums;
namespace Publication.Entites;
@ -22,7 +23,7 @@ public class PrintingHouses
public int MaterialsId { get; set; }
[DisplayName("Материалы")]
public string MaterialName { get; set; } = string.Empty;
public TypeMaterials MaterialName { get; set; }
[DisplayName("Название")]
public DateTime Date { get; set; }
@ -32,7 +33,7 @@ public class PrintingHouses
[DisplayName("Заказы")]
public string Orders => printingHouseOrder != null ?
string.Join(", ", printingHouseOrder.Select(x => $"{x.} {x.Count}")) : string.Empty;
string.Join(", ", printingHouseOrder.Select(x => $"{x.OrderInfo} {x.Count}")) : string.Empty;
public static PrintingHouses CreateEntity(int id, string title, string phone, string address,int materialsId, IEnumerable<PrintingHouseOrders> printingHouseOrders)
{

View File

@ -4,6 +4,7 @@ using Npgsql;
using Publication.Entites;
using Dapper;
using Unity;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Publication.Repositories.Implementations;
@ -76,16 +77,32 @@ public class PrintingHouseRepository : IPrintingHouseRepository
try
{
using var connection = new NpgsqlConnection(connectionRepository.GetConnection);
var querySelect = @"SELECT ph.*, pho.OrderId, pho.Count, mt.material AS MaterialName
var querySelect = @"SELECT ph.*, pho.OrderId, pho.Count, mt.material, Orders.description AS OrderInfo,
FROM PrintingHouses ph
INNER JOIN PrintingHouseOrders pho ON pho.PrintingHouseId = ph.Id
INNER JOIN Material mt ON ph.materialsId = mt.Id";
var printingHouses = connection.Query<TempPrintingHouseOrders>(querySelect);
INNER JOIN Material mt ON ph.materialsId = mt.Id
INNER JOIN Orders ON Orders.id = pho.orderid";
var printingHousesDict = new Dictionary<int, List<PrintingHouseOrders>>();
var printingHouses = connection.Query<PrintingHouses, PrintingHouseOrders, PrintingHouses>(querySelect,
(printingHouses, printingHouseOrders) =>
{
if (!printingHousesDict.TryGetValue(printingHouses.Id, out var pr))
{
pr = [];
printingHousesDict.Add(printingHouses.Id, pr);
}
pr.Add(printingHouseOrders);
return printingHouses;
}, splitOn: "OrderId", param: new { dateForm, dateTo, productID });
logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(printingHouses));
return printingHouses.GroupBy(x => x.Id, y => y,
(key, value) => PrintingHouses.CreateEntity(value.First(),
value.Select(z => PrintingHouseOrders.CreateEntity(z.Id, z.OrderId, z.Count)))).ToList();
return printingHousesDict.Select(x =>
{
var ph = printingHouses.First(y => y.Id == x.Key);
ph.SetPrintingHouseOrder(x.Value);
return ph;
}).ToArray();
}
catch (Exception ex)
{