Автоматический режим M2M и имитация QUIK МНП

Автоматический режим (Настройка → НРД, выключен по умолчанию): входящие переводы — решение по свежей
сверке с DEPO без оператора (пакет только целиком; бумага для квал. инвесторов при неполной или
непрочитанной квалификации — отказ M2M08), поручение 16/1 — как только пришёл черновик MF010,
поручение 16 по исходящим — по черновику. Нет сверки или ИШ — повтор каждые 3 минуты и оповещение,
без сверки ничего не принимается. Обрабатывается только появившееся не раньше суток до включения
(старые черновики в INBOX не подаются). Решение не отправляется повторно по уже отвеченному переводу.

Имитация QUIK МНП (Настройка → QUIK МНП → цикл): регистрация, подпись, снятие и зачисление проходят
как выполненные с пометкой «имитация», в МНП ничего не пишется; события в DEPO — как обычно.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-16 14:59:23 +03:00
parent 4b62d00ac2
commit d47229c9a5
12 changed files with 486 additions and 30 deletions
+10 -4
View File
@@ -172,20 +172,24 @@ func NewServer(cfg ServerConfig) (*Server, error) {
registerM2MTest(mux, adminTpl, &setupHandlers{rc: rc, tpl: &adminTemplates{a: adminTpl}, svc: svc})
incomingStore := NewIncomingStore()
globalIncomingStore = incomingStore // для сводной выгрузки отчётов тест-плана
registerIncoming(mux, adminTpl, incomingDeps{
inDeps := incomingDeps{
store: incomingStore,
igwClient: igwClient,
igwChan: igwChannel,
rc: rc,
ourCode: string(cfg.DefaultSender),
})
}
globalIncomingDeps = &inDeps // автоматический режим M2M
registerIncoming(mux, adminTpl, inDeps)
globalOutgoingStore = NewOutgoingStore()
registerDepoSim(mux, adminTpl) // песочница сверки с DEPO (имитация ответа Fancy)
registerOutgoing(mux, adminTpl, outgoingDeps{
outDeps := outgoingDeps{
store: globalOutgoingStore,
igwClient: igwClient,
igwChan: igwChannel,
})
}
globalOutgoingDeps = &outDeps // автоматический режим M2M
registerOutgoing(mux, adminTpl, outDeps)
registerJournal(mux, adminTpl, svc, incomingStore)
registerLKAPI(mux, rc, svc) // API для модуля личного кабинета клиента (bj-lk)
registerHealth(mux)
@@ -296,6 +300,8 @@ func (s *Server) Run(ctx context.Context) error {
go superviseLoop(ctx, "depo-events", s.rc, s.depoEventsLoop)
healthRegister("depo-job", 2*time.Minute)
go superviseLoop(ctx, "depo-job", s.rc, s.depoJobLoop)
healthRegister("m2m-auto", 2*time.Minute)
go superviseLoop(ctx, "m2m-auto", s.rc, s.m2mAutoLoop)
// Перепроверка групп AD раз в 15 мин (если задана сервисная учётная запись).
// Тик длинный, контроллер может отвечать медленно — только recover, без heartbeat.