diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index e1f1d6b8..a1f421f9 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore; +using AsbCloudDb.Model.DailyReportDB; +using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; diff --git a/AsbCloudDb/Model/DailyReportDB/DailyReportDb.cs b/AsbCloudDb/Model/DailyReportDB/DailyReport.cs similarity index 79% rename from AsbCloudDb/Model/DailyReportDB/DailyReportDb.cs rename to AsbCloudDb/Model/DailyReportDB/DailyReport.cs index a4e16ec3..0d43f1a9 100644 --- a/AsbCloudDb/Model/DailyReportDB/DailyReportDb.cs +++ b/AsbCloudDb/Model/DailyReportDB/DailyReport.cs @@ -5,8 +5,8 @@ using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudDb.Model.DailyReportDB { #nullable disable - [Table("t_daily_report"), Comment("Ежедневные отчёты")] - public class DailyReportDb + [Table("t_daily_report_mod"), Comment("Ежедневные отчёты")] + public class DailyReport { [Column("id_well"), Comment("ID скважины")] public int IdWell { get; set; } @@ -15,11 +15,14 @@ namespace AsbCloudDb.Model.DailyReportDB public DateTimeOffset StartDate { get; set; } [Column("blockHead", TypeName = "jsonb"), Comment("1 блок параметров для отчёта")] - public DailyReportInfo BlockHead { get; set; } + public DailyReportHead BlockHead { get; set; } [Column("blockBha", TypeName = "jsonb"), Comment("2 блок параметров для отчёта")] public DailyReportBha BlockBha { get; set; } + [Column("blockTimeBalance", TypeName = "jsonb"), Comment("2 блок параметров для отчёта")] + public DailyReportTimeBalance BlockTimeBalance { get; set; } + [Column("blockDimensionless", TypeName = "jsonb"), Comment("4 блок параметров для отчёта")] public DailyReportDimensionless BlockDimensionless { get; set; } @@ -37,7 +40,7 @@ namespace AsbCloudDb.Model.DailyReportDB - + diff --git a/AsbCloudDb/Model/DailyReportDB/DailyReportInfo.cs b/AsbCloudDb/Model/DailyReportDB/DailyReportInfo.cs new file mode 100644 index 00000000..40833d8d --- /dev/null +++ b/AsbCloudDb/Model/DailyReportDB/DailyReportInfo.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using AsbCloudDb.Model.DailyReportDB; + +namespace AsbCloudDb.Model +{ +#nullable disable + public class DailyReportInfo + { + public DailyReportHead HeadInfo { get; set; } + public DailyReportBha BhaDto { get; set; } + public DailyReportDimensionless DimensionlessInfo { get; set; } + public DailyReportTimeBalance TimeBalanceInfo { get; set; } + public DailyReportSaub SaubInfo { get; set; } + public DailyReportSign SignInfo { get; set; } + } + +} diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 84f4a824..8fbd7de5 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -1,4 +1,5 @@ -using AsbCloudDb.Model.WITS; +using AsbCloudDb.Model.DailyReportDB; +using AsbCloudDb.Model.WITS; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using System; diff --git a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs index b0a689f6..0dbb4636 100644 --- a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs +++ b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs @@ -9,7 +9,7 @@ using AsbCloudApp.Data; using AsbCloudApp.Services; using AsbCloudDb.Model; using System.Collections.Generic; - +using AsbCloudDb.Model.DailyReportDB; using AsbCloudApp.Data.DailyReport; namespace AsbCloudInfrastructure.Services.DailyReport @@ -64,11 +64,17 @@ namespace AsbCloudInfrastructure.Services.DailyReport var offsetHours = wellService.GetTimezone(idWell).Hours; var reportDateOffset = dto.HeadDto.ReportDate.ToUtcDateTimeOffset(offsetHours); var info = Convert(dto, offsetHours); - var entity = new AsbCloudDb.Model.DailyReport + var entity = new AsbCloudDb.Model.DailyReportDB.DailyReport { IdWell = idWell, StartDate = reportDateOffset, - Info = info, + BlockHead = info.HeadInfo, + BlockBha = info.BhaDto, + BlockDimensionless = info.DimensionlessInfo, + BlockTimeBalance = info.TimeBalanceInfo, + BlockSaub = info.SaubInfo, + BlockSign = info.SignInfo + }; db.DailyReports.Add(entity); var result = await db.SaveChangesAsync(token); @@ -88,7 +94,8 @@ namespace AsbCloudInfrastructure.Services.DailyReport if (entity is null) return 0; - entity.Info = Convert(dto, offsetHours); + var convertEntity = Convert(dto, offsetHours); + entity.BlockHead = convertEntity.HeadInfo; db.DailyReports.Update(entity); var result = await db.SaveChangesAsync(token); @@ -141,9 +148,18 @@ namespace AsbCloudInfrastructure.Services.DailyReport return result; } - private static DailyReportDto Convert(AsbCloudDb.Model.DailyReport entity, double offsetHours) + private static DailyReportDto Convert(AsbCloudDb.Model.DailyReportDB.DailyReport entity, double offsetHours) { - var dto = entity.Info.Adapt(); + var dto = new DailyReportDto() + { + BhaDto = entity.BlockBha.Adapt(), + HeadDto = entity.BlockHead.Adapt(), + TimeBalanceDto = entity.BlockTimeBalance.Adapt(), + DimensionlessDto = entity.BlockDimensionless.Adapt(), + SaubDto = entity.BlockSaub.Adapt(), + SignDto = entity.BlockSign.Adapt() + }; + dto.HeadDto.ReportDate = entity.StartDate .ToRemoteDateTime(offsetHours); return dto;