Разработка #4296
Обновлено Андрей Золотухин 6 месяца назад
В рамках задачи разбить строку архивного номера на несколько раздельных данных, изменить способ его сохранения, редактирования.
Сделать так, чтобы везде, где используется архивный номер, он отображался в качестве той же строки, что и раньше, но формировался из независимых данных.
Текущие архивные номера сохраняются в формате
БукваклиентаГодЗаказа/НомерЗаказаВГоду/НомерОлигаВЗаказе
И выглядят как:
M25/_/01
M25/05/01
Между слешами номер заказа в году заказа, заполняется при закрытии.
Требуется разбить существующие в системе архивные номера
class Order
БукваКлиента - Буквы клиентов редактируются, но в архивных номерах требуется оставлять как есть, поэтому требуется сохранять
ГодЗаказа - (order.getCreationDate().getYear() % 100) как это итак берется при формировании номера
НомерЗаказаВГоду - исходно null, заполняется при закрытии заказа через метод findOrdersCountByClientLetterAndYearAndIsReadyTrue на текущий момент.
class OligInScientificOrder
НомерОлигаВЗаказе - эта часть архивного номера не редактируется, поэтому, возможно есть смысл не сохранять её вовсе, но, в таком случае, зачастую надо будет считать все олиги в заказе через JOIN с oligs_in_orders и scientific_oligs_in_orders. Иначе
Все сценарии, в которых затрагивается архивный номер:
* Отображение полного архивного номера у каждой записи в архиве УВПН.
* Отображение части архивного номера без номера олига у каждого заказа в архиве УВПН и на деталях (ScientificOrderDetails.vue)
* Поиск по подстроке архивного номера в списке архивных заказов УВПН. /scientificOrdersArchive, а также отображение олигов для автозаполнения при вводе этой подстроки. (FIND_OLIGS_BY_NAME_OR_SEQ_OR_ARCHIVE_NUMBER_QUERY)
* Отображение строки архивного номера на деталях контейнера /testtube/:id
* Отображение и редактирование архивного номера на страницах со списком олигов на УВПН, списком архивных олигов. (editableArchiveNumber.vue)
* Создание архивного номера при создании заказа (createArchiveNumber)
* Формирование полного архивного номера при закрытии заказа. (performCloseOrder, findOrdersCountByClientLetterAndYearAndIsReadyTrue)
* "Присваивание" архивного номера на странице со списком олигов УВПН (установка поля showArchiveNumber) в true, по которому определяется, отображать ли строку архивного номера или нет.
* Сокрытие архивного номера при установке статуса по контолю "Брак" (ScientificOrderReleaseStatus.REJECTED, createNewOligForScientificOrderReleaseAfterStatusChanged, hideFullyArchiveNumberForRejected)
* Отображение архивного номера при закрытии заказа на списке с научными заказами (scientificOrders.vue, scientificEnrichmentOrders.vue,J updateOrderArchiveNumber)
* Отображение архивного номера при передаче научных олигов заказчику (TransferOligsToCustomer.vue)
* Возможно есть еще моменты.
Для заказов на обогащение в архиве олиги не отображаются, поэтому
Также в рамках этой задачи хотелось бы переименовать название поля clientFirstLetter на что-то вроде индентификатора, обозначения клиента.
Еще архивные номера задаются при импорте архива УВПН, тут уже надо уточнять у Андрея Ерзунова, который писал импорт.