feat(dal,api,esppSync): в таблицу unitFields добавлено поле Code
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
public required string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
|
|
||||||
|
public string? Code { get; set; }
|
||||||
|
|
||||||
public bool? IsMultipleValue { get; set; }
|
public bool? IsMultipleValue { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -126,13 +126,15 @@ namespace PARR.API.MappingProfiles
|
|||||||
{
|
{
|
||||||
Id = fieldGroup.Key!.Id,
|
Id = fieldGroup.Key!.Id,
|
||||||
Name = string.IsNullOrEmpty(fieldGroup.Key.DisplayName) ? fieldGroup.Key.AihitName : fieldGroup.Key.DisplayName,
|
Name = string.IsNullOrEmpty(fieldGroup.Key.DisplayName) ? fieldGroup.Key.AihitName : fieldGroup.Key.DisplayName,
|
||||||
IsMultipleValue = fieldGroup.Key.IsMultipleValue
|
IsMultipleValue = fieldGroup.Key.IsMultipleValue,
|
||||||
|
Code = fieldGroup.Key.Code
|
||||||
},
|
},
|
||||||
Values = fieldGroup.Select(s => new UnitFieldValueResponse { Id = s.ValueId, Value = s.Value!.Value }).ToList()
|
Values = fieldGroup.Select(s => new UnitFieldValueResponse { Id = s.ValueId, Value = s.Value!.Value }).ToList()
|
||||||
}
|
}
|
||||||
).OrderBy(o => o.Field.Name)
|
).OrderBy(o => o.Field.Name)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
CreateMap<Unit, UnitRelationshipsAndAttributesResponse>()
|
CreateMap<Unit, UnitRelationshipsAndAttributesResponse>()
|
||||||
.ForMember(d => d.Childrens, o => o.MapFrom(s => s.ChildUnits.Select(t => t.ChildUnit).OrderBy(t => t.Name)))
|
.ForMember(d => d.Childrens, o => o.MapFrom(s => s.ChildUnits.Select(t => t.ChildUnit).OrderBy(t => t.Name)))
|
||||||
.ForMember(d => d.Parents, o => o.MapFrom(s => s.ParentUnits.Select(t => t.ParentUnit).OrderBy(t => t.Name)));
|
.ForMember(d => d.Parents, o => o.MapFrom(s => s.ParentUnits.Select(t => t.ParentUnit).OrderBy(t => t.Name)));
|
||||||
|
|||||||
3967
PARR.DAL/Migrations/20251127225810_tblUnitFieldsAddCode.Designer.cs
generated
Normal file
3967
PARR.DAL/Migrations/20251127225810_tblUnitFieldsAddCode.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
30
PARR.DAL/Migrations/20251127225810_tblUnitFieldsAddCode.cs
Normal file
30
PARR.DAL/Migrations/20251127225810_tblUnitFieldsAddCode.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace PARR.DAL.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class tblUnitFieldsAddCode : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<string>(
|
||||||
|
name: "Code",
|
||||||
|
schema: "unit",
|
||||||
|
table: "Fields",
|
||||||
|
type: "text",
|
||||||
|
nullable: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "Code",
|
||||||
|
schema: "unit",
|
||||||
|
table: "Fields");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2845,6 +2845,9 @@ namespace PARR.DAL.Migrations
|
|||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Code")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
b.Property<DateTimeOffset>("DateCreated")
|
b.Property<DateTimeOffset>("DateCreated")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,11 @@ namespace PARR.DAL.Models.Unit
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string? DisplayName { get; set; }
|
public string? DisplayName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Код поля, используется в GUI
|
||||||
|
/// </summary>
|
||||||
|
public string? Code { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Могут ли принимать несколько значений. Из АИХ ИТ приходят значения разделённые запятой
|
/// Могут ли принимать несколько значений. Из АИХ ИТ приходят значения разделённые запятой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ namespace PARR.EsppSync
|
|||||||
{
|
{
|
||||||
logger.LogInformation($"Есть изменения, требуется обновление. {esppObject.TemplateName}");
|
logger.LogInformation($"Есть изменения, требуется обновление. {esppObject.TemplateName}");
|
||||||
|
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, ref template);
|
var config = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, template);
|
||||||
|
|
||||||
// Если предыдущий статус был Create или Ок, то ставим ему Update
|
// Если предыдущий статус был Create или Ок, то ставим ему Update
|
||||||
// пусть даже Create завершился с ошибками, но раз он уже есть в ЕСПП, то изменим на Update, сбросим все счетчики и пусть попробует обновить и исправить все
|
// пусть даже Create завершился с ошибками, но раз он уже есть в ЕСПП, то изменим на Update, сбросим все счетчики и пусть попробует обновить и исправить все
|
||||||
@@ -148,10 +148,10 @@ namespace PARR.EsppSync
|
|||||||
|
|
||||||
//если все поля совпали
|
//если все поля совпали
|
||||||
//проверяем, какой был статус предыдущий статус в БД, если он был не Ок, то ставим ему ОК
|
//проверяем, какой был статус предыдущий статус в БД, если он был не Ок, то ставим ему ОК
|
||||||
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, ref template);
|
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, template);
|
||||||
if (robotConfig.TaskStatusCode != (int)TaskStatusEnum.Ok)
|
if (robotConfig.TaskStatusCode != (int)TaskStatusEnum.Ok)
|
||||||
{
|
{
|
||||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, ref robotConfig);
|
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, robotConfig);
|
||||||
if (!await templateService.CommitAsync())
|
if (!await templateService.CommitAsync())
|
||||||
logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}");
|
logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}");
|
||||||
else
|
else
|
||||||
@@ -170,8 +170,8 @@ namespace PARR.EsppSync
|
|||||||
|
|
||||||
private void SetUpdateStatus(ref Template template, IRobotConfigurationService robotConfigurationService, RobotsEnum robot)
|
private void SetUpdateStatus(ref Template template, IRobotConfigurationService robotConfigurationService, RobotsEnum robot)
|
||||||
{
|
{
|
||||||
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, ref template);
|
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, template);
|
||||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref robotConfig);
|
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, robotConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,9 @@ using PARR.BLL.Domain.Mq;
|
|||||||
using PARR.BLL.Helpers;
|
using PARR.BLL.Helpers;
|
||||||
using PARR.Constants;
|
using PARR.Constants;
|
||||||
using PARR.DAL.Contracts;
|
using PARR.DAL.Contracts;
|
||||||
using PARR.DAL.Extensions;
|
|
||||||
using PARR.DAL.Models;
|
using PARR.DAL.Models;
|
||||||
using PARR.DAL.Services.Interfaces;
|
using PARR.DAL.Services.Interfaces;
|
||||||
using PARR.TemplateDistributor;
|
using PARR.TemplateDistributor;
|
||||||
using System.Text.Json;
|
|
||||||
|
|
||||||
namespace PARR.GeneratorTemplates.Services
|
namespace PARR.GeneratorTemplates.Services
|
||||||
{
|
{
|
||||||
@@ -306,16 +304,16 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
{
|
{
|
||||||
item.IsActiveTemplate = false;
|
item.IsActiveTemplate = false;
|
||||||
//необходимо обновить шаблон
|
//необходимо обновить шаблон
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, ref item);
|
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, item);
|
||||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
|
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.IsActiveSchedule)
|
if (item.IsActiveSchedule)
|
||||||
{
|
{
|
||||||
item.IsActiveSchedule = false;
|
item.IsActiveSchedule = false;
|
||||||
//необходимо обновить расписание
|
//необходимо обновить расписание
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, ref item);
|
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, item);
|
||||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
|
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ namespace PARR.JobAutoControl
|
|||||||
|
|
||||||
var msg = JsonSerializer.Serialize(request);
|
var msg = JsonSerializer.Serialize(request);
|
||||||
|
|
||||||
var result =await mqService.SendAsync(mqSettings.Generator, new[] { msg });
|
var result = await mqService.SendAsync(mqSettings.Generator, new[] { msg });
|
||||||
|
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess)
|
||||||
logger.LogInformation($"Отправлен запрос на генерацию: {msg}");
|
logger.LogInformation($"Отправлен запрос на генерацию: {msg}");
|
||||||
@@ -124,37 +124,37 @@ namespace PARR.JobAutoControl
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task DeactivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
private async Task DeactivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
||||||
{
|
{
|
||||||
var jobsToDeactivate = await jobAutoControlService.Get()
|
//var jobsToDeactivate = await jobAutoControlService.Get()
|
||||||
.Include(t => t.JobEkMasks)
|
// .Include(t => t.JobEkMasks)
|
||||||
.Include(t => t.JobAutoControlInEkStatuses)
|
// .Include(t => t.JobAutoControlInEkStatuses)
|
||||||
.Where(t => t.Deactivate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
// .Where(t => t.Deactivate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||||
.Select(t => t.ApplicationInWorkId)
|
// .Select(t => t.ApplicationInWorkId)
|
||||||
.ToListAsync();
|
// .ToListAsync();
|
||||||
|
|
||||||
logger.LogInformation($"Найдено РР с включенным авто-контролем для деактивации шаблонов и расписаний: {jobsToDeactivate.Count()} шт.");
|
//logger.LogInformation($"Найдено РР с включенным авто-контролем для деактивации шаблонов и расписаний: {jobsToDeactivate.Count()} шт.");
|
||||||
|
|
||||||
if (!jobsToDeactivate.Any())
|
//if (!jobsToDeactivate.Any())
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
//todo: проверить, нормально ли отрабатывает async в foreach
|
////todo: проверить, нормально ли отрабатывает async в foreach
|
||||||
jobsToDeactivate.ForEach(async applicationInWorkId =>
|
//jobsToDeactivate.ForEach(async applicationInWorkId =>
|
||||||
{
|
//{
|
||||||
var request = new TemplateActivatorMq
|
// var request = new TemplateActivatorMq
|
||||||
{
|
// {
|
||||||
Action = TemplateActivatorActionsEnum.DeactivateAllForAutoControl,
|
// Action = TemplateActivatorActionsEnum.DeactivateAllForAutoControl,
|
||||||
JobId = applicationInWorkId,
|
// JobId = applicationInWorkId,
|
||||||
HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на деактивацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
// HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на деактивацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
||||||
};
|
// };
|
||||||
|
|
||||||
var msg = JsonSerializer.Serialize(request);
|
// var msg = JsonSerializer.Serialize(request);
|
||||||
|
|
||||||
var result = await mqService.SendAsync(mqSettings.Activator, new[] { msg });
|
// var result = await mqService.SendAsync(mqSettings.Activator, new[] { msg });
|
||||||
|
|
||||||
if (result.IsSuccess)
|
// if (result.IsSuccess)
|
||||||
logger.LogInformation($"Отправлен запрос на деактивацию: {msg}");
|
// logger.LogInformation($"Отправлен запрос на деактивацию: {msg}");
|
||||||
else
|
// else
|
||||||
logger.LogError($"Ошибка при отправке запроса на деактивацию: {msg}");
|
// logger.LogError($"Ошибка при отправке запроса на деактивацию: {msg}");
|
||||||
});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -166,35 +166,35 @@ namespace PARR.JobAutoControl
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task ActivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
private async Task ActivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
||||||
{
|
{
|
||||||
var jobsToActivate = await jobAutoControlService.Get()
|
// var jobsToActivate = await jobAutoControlService.Get()
|
||||||
.Include(t => t.JobEkMasks)
|
// .Include(t => t.JobEkMasks)
|
||||||
.Include(t => t.JobAutoControlInEkStatuses)
|
// .Include(t => t.JobAutoControlInEkStatuses)
|
||||||
.Where(t => t.Activate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
// .Where(t => t.Activate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||||
.Select(t => t.ApplicationInWorkId)
|
// .Select(t => t.ApplicationInWorkId)
|
||||||
.ToListAsync();
|
// .ToListAsync();
|
||||||
|
|
||||||
if (!jobsToActivate.Any())
|
// if (!jobsToActivate.Any())
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
//todo: проверить, нормально ли отрабатывает async в foreach
|
// //todo: проверить, нормально ли отрабатывает async в foreach
|
||||||
jobsToActivate.ForEach(async applicationInWorkId =>
|
// jobsToActivate.ForEach(async applicationInWorkId =>
|
||||||
{
|
// {
|
||||||
var request = new TemplateActivatorMq
|
// var request = new TemplateActivatorMq
|
||||||
{
|
// {
|
||||||
Action = TemplateActivatorActionsEnum.ActivateAllForAutoControl,
|
// Action = TemplateActivatorActionsEnum.ActivateAllForAutoControl,
|
||||||
JobId = applicationInWorkId,
|
// JobId = applicationInWorkId,
|
||||||
HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на активацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
// HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на активацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
||||||
};
|
// };
|
||||||
|
|
||||||
var msg = JsonSerializer.Serialize(request);
|
// var msg = JsonSerializer.Serialize(request);
|
||||||
|
|
||||||
var result = await mqService.SendAsync(mqSettings.Activator, new[] { msg });
|
// var result = await mqService.SendAsync(mqSettings.Activator, new[] { msg });
|
||||||
|
|
||||||
if (result.IsSuccess)
|
// if (result.IsSuccess)
|
||||||
logger.LogInformation($"Отправлен запрос на активацию: {msg}");
|
// logger.LogInformation($"Отправлен запрос на активацию: {msg}");
|
||||||
else
|
// else
|
||||||
logger.LogError($"Ошибка при отправке запроса на активацию: {msg}");
|
// logger.LogError($"Ошибка при отправке запроса на активацию: {msg}");
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user