feat(dal): создана таблица ScheduleResponseAreaTimeOffsets. В таблицу JobGroup добавлено поле IsWorkGroupTimezone
This commit is contained in:
@@ -23,6 +23,11 @@
|
||||
|
||||
public DateTimeOffset ReferenceDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
|
||||
/// </summary>
|
||||
public bool IsWorkGroupTimezone { get; set; }
|
||||
|
||||
public Guid ScheduleExcludeTypeId { get; set; }
|
||||
|
||||
public Guid? ScheduleExcludeTypeCalendarId { get; set; }
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
public DateTimeOffset ReferenceDate { get; set; }
|
||||
|
||||
public bool IsWorkGroupTimezone { get; set; }
|
||||
|
||||
public required JobGroupTypeResponse GroupType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -162,6 +162,7 @@ namespace PARR.API.Controllers.V1
|
||||
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
|
||||
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
|
||||
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
|
||||
IsWorkGroupTimezone = request.IsWorkGroupTimezone
|
||||
//IsAgent = request.IsAgent,
|
||||
//AgentName = request.AgentName,
|
||||
//AgentTimeOutSec = request.AgentTimeOutSec,
|
||||
@@ -255,6 +256,7 @@ namespace PARR.API.Controllers.V1
|
||||
orig.ScheduleExcludeTypeId = request.ScheduleExcludeTypeId;
|
||||
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
|
||||
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
|
||||
orig.IsWorkGroupTimezone = request.IsWorkGroupTimezone;
|
||||
//orig.IsAgent = request.IsAgent;
|
||||
//orig.AgentName = request.AgentName;
|
||||
//orig.AgentTimeOutSec = request.AgentTimeOutSec;
|
||||
|
||||
@@ -53,6 +53,7 @@ namespace PARR.DAL.Context
|
||||
|
||||
public DbSet<ScheduleExcludeTypeCalendar> ScheduleExcludeTypeCalendars { get; set; }
|
||||
public DbSet<ScheduleExcludeType> ScheduleExcludeTypes { get; set; }
|
||||
public DbSet<ScheduleResponseAreaTimeOffset> ScheduleResponseAreaTimeOffsets { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
4137
PARR.DAL/Migrations/20260130002924_tblAddScheduleResponseAreaTimeOffset.Designer.cs
generated
Normal file
4137
PARR.DAL/Migrations/20260130002924_tblAddScheduleResponseAreaTimeOffset.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,49 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace PARR.DAL.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class tblAddScheduleResponseAreaTimeOffset : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "IsWorkGroupTimezone",
|
||||
schema: "job",
|
||||
table: "Groups",
|
||||
type: "boolean",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ResponseAreaTimeOffsets",
|
||||
schema: "schedule",
|
||||
columns: table => new
|
||||
{
|
||||
ResponseArea = table.Column<string>(type: "text", nullable: false),
|
||||
TimeOffset = table.Column<string>(type: "text", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_ResponseAreaTimeOffsets", x => x.ResponseArea);
|
||||
},
|
||||
comment: "Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "ResponseAreaTimeOffsets",
|
||||
schema: "schedule");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "IsWorkGroupTimezone",
|
||||
schema: "job",
|
||||
table: "Groups");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1678,6 +1678,9 @@ namespace PARR.DAL.Migrations
|
||||
b.Property<bool>("IsAutoDistributionEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsWorkGroupTimezone")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTimeOffset>("ReferenceDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
@@ -2569,6 +2572,23 @@ namespace PARR.DAL.Migrations
|
||||
});
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Schedule.ScheduleResponseAreaTimeOffset", b =>
|
||||
{
|
||||
b.Property<string>("ResponseArea")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("TimeOffset")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("ResponseArea");
|
||||
|
||||
b.ToTable("ResponseAreaTimeOffsets", "schedule", t =>
|
||||
{
|
||||
t.HasComment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
|
||||
});
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
|
||||
{
|
||||
b.Property<string>("Name")
|
||||
|
||||
@@ -92,6 +92,12 @@ namespace PARR.DAL.Models.Job
|
||||
public DateTimeOffset ReferenceDate { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
|
||||
/// </summary>
|
||||
public bool IsWorkGroupTimezone { get; set; } = false;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Включить автораспределение
|
||||
/// </summary>
|
||||
|
||||
20
PARR.DAL/Models/Schedule/ScheduleResponseAreaTimeOffset.cs
Normal file
20
PARR.DAL/Models/Schedule/ScheduleResponseAreaTimeOffset.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.DAL.Context;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models.Schedule
|
||||
{
|
||||
/// <summary>
|
||||
/// Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы
|
||||
/// </summary>
|
||||
[Table("ResponseAreaTimeOffsets", Schema = DataContextSettings.Schedule)]
|
||||
[Comment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы")]
|
||||
public class ScheduleResponseAreaTimeOffset
|
||||
{
|
||||
[Key]
|
||||
public required string ResponseArea { get; set; }
|
||||
|
||||
public required string TimeOffset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -107,6 +107,7 @@ namespace PARR.DAL
|
||||
|
||||
services.AddTransient<IScheduleExcludeTypeService, ScheduleExcludeTypeService>();
|
||||
services.AddTransient<IScheduleExcludeTypeCalendarService, ScheduleExcludeTypeCalendarService>();
|
||||
services.AddTransient<IScheduleResponseAreaTimeOffsetService, ScheduleResponseAreaTimeOffsetService>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.DAL.Context;
|
||||
using PARR.DAL.Models.Schedule;
|
||||
using PARR.DAL.Services.Interfaces.Schedule;
|
||||
|
||||
namespace PARR.DAL.Services.Implementations.Schedule
|
||||
{
|
||||
internal class ScheduleResponseAreaTimeOffsetService : IScheduleResponseAreaTimeOffsetService
|
||||
{
|
||||
private readonly DataContext dataContext;
|
||||
|
||||
public ScheduleResponseAreaTimeOffsetService(DataContext dataContext)
|
||||
{
|
||||
this.dataContext = dataContext;
|
||||
}
|
||||
|
||||
public IQueryable<ScheduleResponseAreaTimeOffset> Get()
|
||||
{
|
||||
return dataContext.ScheduleResponseAreaTimeOffsets;
|
||||
}
|
||||
|
||||
public async Task<string?> GetTimeOffsetByResponseAreaAsync(string responseArea)
|
||||
{
|
||||
var result = await dataContext.ScheduleResponseAreaTimeOffsets.FirstOrDefaultAsync(t => t.ResponseArea == responseArea);
|
||||
|
||||
return result != null ? result.TimeOffset : null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using PARR.DAL.Models.Schedule;
|
||||
|
||||
namespace PARR.DAL.Services.Interfaces.Schedule
|
||||
{
|
||||
public interface IScheduleResponseAreaTimeOffsetService
|
||||
{
|
||||
IQueryable<ScheduleResponseAreaTimeOffset> Get();
|
||||
|
||||
Task<string?> GetTimeOffsetByResponseAreaAsync(string responseArea);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user