Разработка #4141
Обновлено Андрей Золотухин 3 месяца назад
Формирование производственной серии:
1. Формирование происходит в момент, когда все олиги на УВП.
2. На УВП происходит списание, если необходимо.
3. Выделяются и присваиваются серии: серия состоит из даты синтеза и номера по порядку
4. После чего олиги могут быть переданы на проверку, либо переданы на производство.
5. Если олиг передан на производство он перемещается на вкладку Завершенные
6. Олиг, переданный на проверку, ожидает результата и потом передается на производство.
7. После того как все олиги переданы на производство, либо списаны, заказ считается завершенным.
Особый случай перевыпуск с передачей на 2RP. Он становится обычным олигом в стандартном производственном процессе, проходит все стадии: УХ, УПР, УВК. После УПР отправляется на УВП, но на страницу переводы. После получения данных с УВК, формируется серия по стандартной схеме: последняя дата разведения и номер серии, как у обычных олигов. Передается в проверку и после получения результатов, передается на производство.
По поводу алгоритма формирования серий для олигов из заказа с новым типом "Перевод в производство" есть такое предложение.
+ В метод createProductionSeriesForOligs() добавить новую логику установки серий, для случаев, когда все выбранные олиги для формирования серии находятся в заказе с типом "Перевод в производство". Её можно добавить перед текущей цепочкой проверок (перед случаем, если пришёл на перевыпуск).
1. Если все выбранные олиги из заказа на перевод.
2. Если для выбранных олигов выполнялась переочистка (это можно проверить также как в методе createProductionSeriesForRerelease(), но отдельным предикатом. То есть необходимо по списку synthesisObjectId достать наследственную информацию с типом PURIFICATION_FINISHED, и проверить её дату, если её дата - после даты создания заказа на перевод, - то выполняем существующую логику метода createProductionSeriesForCommonSynthesisForOligs().
3. Иначе выполняем метод с логикой создания серии на основе даты синтеза и номера по порядку внутри заказа на перевод. Я бы предложил этот метод создать отдельно, так как существующий метод createProductionSeriesForOrderTypeTransfer() вроде бы не подходит. Но за основу нового метода можно было бы взять как раз его. В этом методе мы получаем дату для серии таким же образом как в методе createProductionSeriesForOrderTypeTransfer(), а номер для текущей серии я бы предложил получать динамически. Например, запросом получить количество сформированных серий для олигов, которые находятся в данном заказе. Но по-идее нам нужно не просто количество всех серий, а только тех, которые были сформированы данной веткой алгоритма (можно в сущность серии добавить флаг isStandardSeriesFromTranslationToProduction, и устанавливать его в true, когда серия сформирована данной веткой алгоритма).