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:
@@ -36,6 +36,10 @@ export const RecordHistoryDrawer = ({ open, onClose, dictionaryName, businessKey
|
|||||||
{data.map((rec, idx) => {
|
{data.map((rec, idx) => {
|
||||||
const isLatest = idx === 0
|
const isLatest = idx === 0
|
||||||
const closed = new Date(rec.validTo).getFullYear() < 9999
|
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 (
|
return (
|
||||||
<li key={rec.id} className="relative">
|
<li key={rec.id} className="relative">
|
||||||
<span
|
<span
|
||||||
@@ -48,7 +52,7 @@ export const RecordHistoryDrawer = ({ open, onClose, dictionaryName, businessKey
|
|||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
<div className="flex items-center gap-2 mb-1">
|
<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 && <Badge variant="primary">{t('history.current')}</Badge>}
|
||||||
{!isLatest && closed && <Badge variant="neutral">{t('history.closed')}</Badge>}
|
{!isLatest && closed && <Badge variant="neutral">{t('history.closed')}</Badge>}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user