Changes between Initial Version and Version 1 of Ticket #1549


Ignore:
Timestamp:
Nov 2, 2026, 4:50:43 PM (40 hours ago)
Author:
Denis_N
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1549 – Description

    initial v1  
    1 По тикету (See #1394) нужно нормализовать данные несоответствий в бд. Подготовил скрипт.
     1По тикету (See #1394) нужно нормализовать данные несоответствий в бд. Подготовил скрипт для нормализации бд. Назначаю задачу на san, так как у меня нет прав на изменение записей в бд.
    22
     3Скрипт пересчитывает products.mismatch по следующим правилам:
     4
     51. Если запись дефекта имеет status=fail или старое значение NULL, её bond указывает на номер N записи устранения со статусом ok, а bond устранения указывает обратно на этот дефект, то дефект считается закрытым. Обе записи должны относиться к одному изделию — иметь одинаковый UID.
     6
     72. Если у изделия есть запись устранения со статусом ok, у которой bond=NULL или 0, и ни одна другая запись не ссылается на неё через bond, то скрипт считает её устранением по старой схеме. Если таких устранений несколько, используется последнее по дате; при одинаковой дате — с наибольшим N.
     8
     93. Если запись дефекта имеет bond=NULL или 0 и находится до устранения из пункта 2, то дефект считается закрытым. Если находится после него, то считается открытым.
     10
     114. Если у изделия нет записи устранения, соответствующей пункту 2, то дефекты с bond=NULL или 0 считаются открытыми.
     12
     135. Если по этим правилам найден хотя бы один открытый дефект, то в products.mismatch записывается yes. Если открытых дефектов нет — no. Уже совпадающее значение не изменяется.
     14
     156. Если bond указывает на отсутствующую запись, на другое изделие, на саму запись, на неподходящую запись либо отсутствует обратная ссылка, то изделие не исправляется автоматически. Оно попадает в «Для ручного разбора». Туда же попадают случаи с неизвестными статусами и отсутствующими датами, необходимыми для определения порядка событий.
     16
     17Под дефектом понимается запись, у которой type_write содержит mismatch, а status=fail или NULL. Под устранением — запись со статусом ok, у которой type_write содержит mismatch
     18«Проверить» ничего не меняет. «Исправить» изменяет только products.mismatch. История и значения bond не переписываются.
     19
     20