fix(admin-ui): нумерация версий в истории по позиции, не по rec.version

rec.version — JPA @Version (optimistic lock counter). Растёт на UPDATE, поэтому
у нескольких закрытых исторических версий может оказаться одинаковое значение
(была 0, стала 1 при close, новая запись 0, потом 1, итого две закрытые с v=1).
В UI это выглядит как дубли v1, v1.

Используем индекс позиции в timeline: новая = data.length, старая = 1.
Отображение: v3 (текущая) → v2 → v1.
This commit is contained in:
Zimin A.N.
2026-05-04 04:11:04 +03:00
parent 416c44bd94
commit b5c2378ab7
@@ -36,6 +36,10 @@ export const RecordHistoryDrawer = ({ open, onClose, dictionaryName, businessKey
{data.map((rec, idx) => {
const isLatest = idx === 0
const closed = new Date(rec.validTo).getFullYear() < 9999
// Нумерация по позиции в timeline: total..1, новая запись = total.
// rec.version (JPA optimistic lock) растёт на UPDATE и у нескольких
// закрытых может совпасть → дубли в UI. Index — стабильный 1-based счётчик.
const displayVersion = data.length - idx
return (
<li key={rec.id} className="relative">
<span
@@ -48,7 +52,7 @@ export const RecordHistoryDrawer = ({ open, onClose, dictionaryName, businessKey
}`}
/>
<div className="flex items-center gap-2 mb-1">
<span className="text-sm font-primary text-ultramarain">v{rec.version}</span>
<span className="text-sm font-primary text-ultramarain">v{displayVersion}</span>
{isLatest && <Badge variant="primary">{t('history.current')}</Badge>}
{!isLatest && closed && <Badge variant="neutral">{t('history.closed')}</Badge>}
</div>