Разработка #3604
Обновлено Андрей Ерзунов 7 месяца назад
В системе должна появиться функциональность для двух типов перевода олигов: 1. Из науки в производство. 2. Из производства в науку. В общем случае перевод выполняется посредством создания заказа нового типа. В системе появятся два типа заказов: 1. *Перевод в производство.* Под переводом в производство подразумевается перевод олигов из научных в производственные. 2. *Перевод в архив.* Под переводом в архив подразумевается перевод олигов из производственных в научные. На текущий момент Справочнике наименований олигов (сущностей Olig), списки разделяются по двум вкладкам: производственные и научные, на основе значения поля orderType (INDUSTRIAL или SCIENTIFIC). И при выполнении перевода, - у наименований олигов меняется значение поля orderType в зависимости от типа перевода. Кроме этого, с сущностью Olig связаны сущности OligsOrderTypeChangesSnapshot. Это снэпшоты изменений параметров олига при редактировании, на текущий момент любое редактирование олига через справочник приводит к созданию такого снэпшота. И при переводе, когда мы меняем orderType - также должна создаваться запись данного снэпшота. Для данной сущности есть свой сервис, туда будет необходимо добавить соответствующую логику. Также к теме снэпшотов добавлю то, что при переводе из науки в производство, помимо изменения orderType, иногда выполняется и переименование сущности Olig, изменяется значение поля name. Это изменение также должно быть зафиксировано в том же снэпшоте, который будет создан при выполнении перевода. Более подробно про переименование будет указано ниже. В разделе "Заказы" должен появиться пункт меню "Переводы". !clipboard-202510091100-xxcqh.png! Внутри которого должны располагаться два подпункта: 1. Перевод в производство. 2. Перевод в архив. На соответствующих страницах: Перевод в производство и Перевод в архив, - будут располагаться список созданных заказов соответствующих типов, и кнопка для их создания. *Создание заказа Перевода из науки в производство* * Необходимо добавить страницу создания заказа с типом "Перевод в производство". * На данной странице должна быть следующая функциональность: 1. Пользователь загружает .csv-файл с полями: старое название олига, новое название олига, последовательность, конечная концентрация олига, серия олига. Под серией подразумевается При импорте данного .csv-файла необходимо выполнить ряд валидаций. И после выполнения валидаций отобразить предупреждающий блок с деталями найденных несоответствий (то есть пишем, какое несоответствие было найдено для какого олига): валидаций: * Все последовательности в файле должны быть пропущены через валидатор последовательности в ДТ-Синтезе. При валидации на текущий момент выполняется поиск ошибок в последовательности и их исправление. Визуализацию этого процесса можно посмотреть на странице /settings/validation. На текущий момент в стандартных заказах уже выполняется валидация и очистка последовательностей, можно посмотреть, как там это происходит. Прикрепляю скриншот с примером того, как это можно было бы сделать. !clipboard-202510091210-mzb2q.png! * Если последовательность не найдена в ДТ-Синтезе. Критическое несоответствие. Не даём завершить создание заказа. * Если для соответствующей последовательности, название в ДТ-Синтезе не соответствует старому названию олига в файле. Критическое несоответствие. Не даём завершить создание заказа. * Если значение Нового названия уже используется в системе. Критическое несоответствие. Не даём завершить создание заказа. 2.