Мониторинг связи с НРД: участки Шлюз/НРД/M2M/Отправка, сквозная проверка справочником раз в 10 мин, история за сутки на «Статусе», цепочка в шапке (30 с), автоповтор недоставленных до 24 ч, баннер и статус «ожидает отправки» в кабинете клиента

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-09-25 16:17:25 +03:00
parent a0f6ce9f7b
commit 4cbefa41d5
18 changed files with 1075 additions and 62 deletions
+15
View File
@@ -10,6 +10,7 @@ import (
"encoding/json"
"errors"
"fmt"
"log"
"strings"
"sync"
"time"
@@ -330,3 +331,17 @@ func lkClaimsByContract(ctx context.Context, rc *RuntimeConfig, contract string,
}
return out, rows.Err()
}
// lkQueuedToSent — перевод, не доходивший до НРД, доставлен: заявка клиента «ожидает отправки»
// становится «отправлена». Заявки не из модуля ЛК молча пропускаются.
func lkQueuedToSent(rc *RuntimeConfig, guid string) {
db, err := lkDB(rc)
if err != nil {
return
}
ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second)
defer cancel()
if _, err := db.ExecContext(ctx, "UPDATE lk.transfer_requests SET status='sent' WHERE lower(guid)=lower($1) AND status='queued'", guid); err != nil {
log.Printf("lk-gateway: заявка ЛК GUID=%s → отправлена: %v", guid, err)
}
}