feat(dal,api,esppSync): в таблицу unitFields добавлено поле Code
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
|
||||
public required string Name { get; set; }
|
||||
|
||||
public string? Code { get; set; }
|
||||
|
||||
public bool? IsMultipleValue { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -126,13 +126,15 @@ namespace PARR.API.MappingProfiles
|
||||
{
|
||||
Id = fieldGroup.Key!.Id,
|
||||
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()
|
||||
}
|
||||
).OrderBy(o => o.Field.Name)
|
||||
));
|
||||
|
||||
|
||||
CreateMap<Unit, UnitRelationshipsAndAttributesResponse>()
|
||||
.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)));
|
||||
|
||||
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()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Code")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTimeOffset>("DateCreated")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
|
||||
@@ -41,6 +41,11 @@ namespace PARR.DAL.Models.Unit
|
||||
/// </summary>
|
||||
public string? DisplayName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Код поля, используется в GUI
|
||||
/// </summary>
|
||||
public string? Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Могут ли принимать несколько значений. Из АИХ ИТ приходят значения разделённые запятой
|
||||
/// </summary>
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace PARR.EsppSync
|
||||
{
|
||||
logger.LogInformation($"Есть изменения, требуется обновление. {esppObject.TemplateName}");
|
||||
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, ref template);
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, template);
|
||||
|
||||
// Если предыдущий статус был 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)
|
||||
{
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, ref robotConfig);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, robotConfig);
|
||||
if (!await templateService.CommitAsync())
|
||||
logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}");
|
||||
else
|
||||
@@ -170,8 +170,8 @@ namespace PARR.EsppSync
|
||||
|
||||
private void SetUpdateStatus(ref Template template, IRobotConfigurationService robotConfigurationService, RobotsEnum robot)
|
||||
{
|
||||
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, ref template);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref robotConfig);
|
||||
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, template);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, robotConfig);
|
||||
}
|
||||
|
||||
|
||||
@@ -213,8 +213,8 @@ namespace PARR.EsppSync
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет ненужные символы из строки
|
||||
/// </summary>
|
||||
|
||||
@@ -4,11 +4,9 @@ using PARR.BLL.Domain.Mq;
|
||||
using PARR.BLL.Helpers;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Extensions;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.TemplateDistributor;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace PARR.GeneratorTemplates.Services
|
||||
{
|
||||
@@ -306,16 +304,16 @@ namespace PARR.GeneratorTemplates.Services
|
||||
{
|
||||
item.IsActiveTemplate = false;
|
||||
//необходимо обновить шаблон
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, ref item);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, item);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
}
|
||||
|
||||
if (item.IsActiveSchedule)
|
||||
{
|
||||
item.IsActiveSchedule = false;
|
||||
//необходимо обновить расписание
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, ref item);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, item);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace PARR.JobAutoControl
|
||||
|
||||
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)
|
||||
logger.LogInformation($"Отправлен запрос на генерацию: {msg}");
|
||||
@@ -124,37 +124,37 @@ namespace PARR.JobAutoControl
|
||||
/// <returns></returns>
|
||||
private async Task DeactivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
||||
{
|
||||
var jobsToDeactivate = await jobAutoControlService.Get()
|
||||
.Include(t => t.JobEkMasks)
|
||||
.Include(t => t.JobAutoControlInEkStatuses)
|
||||
.Where(t => t.Deactivate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||
.Select(t => t.ApplicationInWorkId)
|
||||
.ToListAsync();
|
||||
//var jobsToDeactivate = await jobAutoControlService.Get()
|
||||
// .Include(t => t.JobEkMasks)
|
||||
// .Include(t => t.JobAutoControlInEkStatuses)
|
||||
// .Where(t => t.Deactivate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||
// .Select(t => t.ApplicationInWorkId)
|
||||
// .ToListAsync();
|
||||
|
||||
logger.LogInformation($"Найдено РР с включенным авто-контролем для деактивации шаблонов и расписаний: {jobsToDeactivate.Count()} шт.");
|
||||
//logger.LogInformation($"Найдено РР с включенным авто-контролем для деактивации шаблонов и расписаний: {jobsToDeactivate.Count()} шт.");
|
||||
|
||||
if (!jobsToDeactivate.Any())
|
||||
return;
|
||||
//if (!jobsToDeactivate.Any())
|
||||
// return;
|
||||
|
||||
//todo: проверить, нормально ли отрабатывает async в foreach
|
||||
jobsToDeactivate.ForEach(async applicationInWorkId =>
|
||||
{
|
||||
var request = new TemplateActivatorMq
|
||||
{
|
||||
Action = TemplateActivatorActionsEnum.DeactivateAllForAutoControl,
|
||||
JobId = applicationInWorkId,
|
||||
HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на деактивацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
||||
};
|
||||
////todo: проверить, нормально ли отрабатывает async в foreach
|
||||
//jobsToDeactivate.ForEach(async applicationInWorkId =>
|
||||
//{
|
||||
// var request = new TemplateActivatorMq
|
||||
// {
|
||||
// Action = TemplateActivatorActionsEnum.DeactivateAllForAutoControl,
|
||||
// JobId = applicationInWorkId,
|
||||
// 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)
|
||||
logger.LogInformation($"Отправлен запрос на деактивацию: {msg}");
|
||||
else
|
||||
logger.LogError($"Ошибка при отправке запроса на деактивацию: {msg}");
|
||||
});
|
||||
// if (result.IsSuccess)
|
||||
// logger.LogInformation($"Отправлен запрос на деактивацию: {msg}");
|
||||
// else
|
||||
// logger.LogError($"Ошибка при отправке запроса на деактивацию: {msg}");
|
||||
//});
|
||||
}
|
||||
|
||||
|
||||
@@ -166,35 +166,35 @@ namespace PARR.JobAutoControl
|
||||
/// <returns></returns>
|
||||
private async Task ActivateAsync(IJobAutoControlService jobAutoControlService, IMqService mqService)
|
||||
{
|
||||
var jobsToActivate = await jobAutoControlService.Get()
|
||||
.Include(t => t.JobEkMasks)
|
||||
.Include(t => t.JobAutoControlInEkStatuses)
|
||||
.Where(t => t.Activate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||
.Select(t => t.ApplicationInWorkId)
|
||||
.ToListAsync();
|
||||
// var jobsToActivate = await jobAutoControlService.Get()
|
||||
// .Include(t => t.JobEkMasks)
|
||||
// .Include(t => t.JobAutoControlInEkStatuses)
|
||||
// .Where(t => t.Activate && t.JobEkMasks.Any() && t.JobAutoControlInEkStatuses.Any())
|
||||
// .Select(t => t.ApplicationInWorkId)
|
||||
// .ToListAsync();
|
||||
|
||||
if (!jobsToActivate.Any())
|
||||
return;
|
||||
// if (!jobsToActivate.Any())
|
||||
// return;
|
||||
|
||||
//todo: проверить, нормально ли отрабатывает async в foreach
|
||||
jobsToActivate.ForEach(async applicationInWorkId =>
|
||||
{
|
||||
var request = new TemplateActivatorMq
|
||||
{
|
||||
Action = TemplateActivatorActionsEnum.ActivateAllForAutoControl,
|
||||
JobId = applicationInWorkId,
|
||||
HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на активацию с авто-контроля", InitiatorParrComponentId = ParrComponentsEnum.JobAutoControl }
|
||||
};
|
||||
// //todo: проверить, нормально ли отрабатывает async в foreach
|
||||
// jobsToActivate.ForEach(async applicationInWorkId =>
|
||||
// {
|
||||
// var request = new TemplateActivatorMq
|
||||
// {
|
||||
// Action = TemplateActivatorActionsEnum.ActivateAllForAutoControl,
|
||||
// JobId = applicationInWorkId,
|
||||
// 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)
|
||||
logger.LogInformation($"Отправлен запрос на активацию: {msg}");
|
||||
else
|
||||
logger.LogError($"Ошибка при отправке запроса на активацию: {msg}");
|
||||
});
|
||||
// if (result.IsSuccess)
|
||||
// logger.LogInformation($"Отправлен запрос на активацию: {msg}");
|
||||
// else
|
||||
// logger.LogError($"Ошибка при отправке запроса на активацию: {msg}");
|
||||
// });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user