diff --git a/deploy/depo/fancy-m2m/FTV_M2M_PROCESS_EVENTS.sql b/deploy/depo/fancy-m2m/FTV_M2M_PROCESS_EVENTS.sql index c7ae2e7..dffea3c 100644 --- a/deploy/depo/fancy-m2m/FTV_M2M_PROCESS_EVENTS.sql +++ b/deploy/depo/fancy-m2m/FTV_M2M_PROCESS_EVENTS.sql @@ -76,6 +76,10 @@ if @EVENT_TYPE = 'HANDBOOK' begin end; +--1a. BJ_PING — проверочное событие bj (без GUID и REFERENCE): отметить обработанным, документ не трогать +if @EVENT_TYPE = 'BJ_PING' return; + + --2. Критические ошибки (TODO другте обязательные поля) if @GUID is null raiserror ('Не указан GUID', 16, 1); if @REFERENCE is null raiserror ('Не указан REFERENCE', 16, 1); @@ -103,6 +107,7 @@ if @EVENT_TYPE = 'BJ_RECEIVED' begin update OD_DOCS set ID = 0, STATE = 1 where ID = @CLISER_ID; --START = Начало обработки (зарегистрирован) end +else if @EVENT_TYPE = 'BJ_SENT' begin select @STATE = ID from OD_DOC_STATES where SYS_NAME = 'WAIT_RESP_DECIS'; update OD_DOCS set ID = 0, STATE = @STATE where ID = @CLISER_ID; --WAIT_RESP_DECIS = Ожидание ответа Response/Decision diff --git a/internal/lkgateway/depoprocs/FTV_M2M_PROCESS_EVENTS.sql b/internal/lkgateway/depoprocs/FTV_M2M_PROCESS_EVENTS.sql index c7ae2e7..dffea3c 100644 --- a/internal/lkgateway/depoprocs/FTV_M2M_PROCESS_EVENTS.sql +++ b/internal/lkgateway/depoprocs/FTV_M2M_PROCESS_EVENTS.sql @@ -76,6 +76,10 @@ if @EVENT_TYPE = 'HANDBOOK' begin end; +--1a. BJ_PING — проверочное событие bj (без GUID и REFERENCE): отметить обработанным, документ не трогать +if @EVENT_TYPE = 'BJ_PING' return; + + --2. Критические ошибки (TODO другте обязательные поля) if @GUID is null raiserror ('Не указан GUID', 16, 1); if @REFERENCE is null raiserror ('Не указан REFERENCE', 16, 1); @@ -103,6 +107,7 @@ if @EVENT_TYPE = 'BJ_RECEIVED' begin update OD_DOCS set ID = 0, STATE = 1 where ID = @CLISER_ID; --START = Начало обработки (зарегистрирован) end +else if @EVENT_TYPE = 'BJ_SENT' begin select @STATE = ID from OD_DOC_STATES where SYS_NAME = 'WAIT_RESP_DECIS'; update OD_DOCS set ID = 0, STATE = @STATE where ID = @CLISER_ID; --WAIT_RESP_DECIS = Ожидание ответа Response/Decision diff --git a/internal/lkgateway/web/templates/admin_fancy_queue.html b/internal/lkgateway/web/templates/admin_fancy_queue.html index 7d3a0af..5b1ca37 100644 --- a/internal/lkgateway/web/templates/admin_fancy_queue.html +++ b/internal/lkgateway/web/templates/admin_fancy_queue.html @@ -1,29 +1,31 @@ {{define "content"}}

Обмен с DEPO (Fancy)

- Переводы M2M, которые bj передал в депозитарную систему через трансферные таблицы базы {{.DB}} (FTV_M2M / FTV_M2M_LINES / FTV_M2M_EVENTS). Job bj2depo создаёт по ним документы в DEPO и отвечает событиями; bj ведёт статусы, документ и ошибки. + Переводы M2M, переданные в DEPO (база {{.DB}}), и документы, созданные по ним.
{{if .Flash}}
{{.Flash}}
{{end}}
-

Как идёт обмен

-

+

Состояние обмена

+
+ Переводов: {{.Sum.Total}} + Ждут обработки: {{.Sum.Pending}} + С документом DEPO: {{.Sum.WithDoc}} + С ошибками: {{.Sum.Errors}} + {{if not .Sum.LastEventAt.IsZero}}Последнее событие: {{wall .Sum.LastEventAt}}{{end}} + Справочник НРД в DEPO: {{if .Sum.HasHandbook}}{{.Sum.Handbook}} участников{{if not .Sum.HandbookAt.IsZero}} (обновлён {{wall .Sum.HandbookAt}}){{end}}{{else}}таблица FTV_M2M_HANDBOOK не создана{{end}} +
+

Обработчик DEPO: {{if eq .Fancy.DepoJobMode "bj"}}{{if .Fancy.DepoJobLast}}последний вызов {{.Fancy.DepoJobLast}}{{else}}{{.JobMode}}{{end}}{{else}}{{.JobMode}}{{if .Fancy.DepoJobCheck}} · проверка готовности: {{if .Fancy.DepoJobCheckOK}}OK{{else}}не пройдена{{end}}{{end}}{{end}}{{if can "admin"}} · настройки{{end}}

+
Как это работает +

FTV_M2M bj записывает перевод (шапка + строки по бумагам) и событие BJ_* со STATE=TODO → bj2depo процедура FTV_M2M_JOB ({{.JobMode}}) читает события, создаёт документ 16/16-1 в DEPO, отвечает DEPO_ORDER_CREATED (номер документа) или DEPO_ERROR → документ bj следит за состоянием документа (OD_DOCS: начальный ввод → конец обработки / отмена) и при отмене оповещает → события НРД по ответам MS010 и M2M bj дописывает BJ_ORDER_ACCEPTED / BJ_EXECUTED / BJ_REJECTED / BJ_CANCELLED. Опрос таблиц — раз в минуту.{{if internalDocs}} Подробности и словарь событий — страница для программиста Fancy.{{end}}

-
- Переводов: {{.Sum.Total}} - Ждут job: {{.Sum.Pending}} - С документом DEPO: {{.Sum.WithDoc}} - С ошибками: {{.Sum.Errors}} - {{if not .Sum.LastEventAt.IsZero}}Последнее событие: {{wall .Sum.LastEventAt}}{{end}} - Справочник НРД в DEPO: {{if .Sum.HasHandbook}}{{.Sum.Handbook}} участников{{if not .Sum.HandbookAt.IsZero}} (обновлён {{wall .Sum.HandbookAt}}){{end}}{{else}}таблица FTV_M2M_HANDBOOK не создана{{end}} - Job bj2depo: {{.JobMode}}{{if eq .Fancy.DepoJobMode "bj"}}{{if .Fancy.DepoJobLast}} · последний вызов: {{.Fancy.DepoJobLast}}{{if not .Fancy.DepoJobLastAt.IsZero}} ({{msk .Fancy.DepoJobLastAt}}){{end}}{{end}}{{else if .Fancy.DepoJobCheck}} · проверка готовности: {{if .Fancy.DepoJobCheckOK}}OK{{else}}не пройдена{{end}}{{if not .Fancy.DepoJobCheckAt.IsZero}} ({{msk .Fancy.DepoJobCheckAt}}){{end}}{{end}} · настройки -
+
{{if or .Failures (not .RunAsOK)}}
diff --git a/internal/lkgateway/web/templates/part_fancy.html b/internal/lkgateway/web/templates/part_fancy.html index 287a015..b0aa33f 100644 --- a/internal/lkgateway/web/templates/part_fancy.html +++ b/internal/lkgateway/web/templates/part_fancy.html @@ -109,7 +109,6 @@ для вариантов с джобой bj пишет служебное событие BJ_PING и ждёт до 40 с, пока обработчик его отметит
{{if .Settings.Fancy.DepoJobCheck}}

{{if .Settings.Fancy.DepoJobCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoJobCheck}} ({{.Settings.Fancy.DepoJobCheckAt.Format "02.01.2006 15:04"}})

{{end}} - {{if .Settings.Fancy.DepoProcCheck}}

Обработка событий (процедуры): {{if .Settings.Fancy.DepoProcCheckOK}}✓{{else}}⚠{{end}} {{.Settings.Fancy.DepoProcCheck}}

{{end}} {{if and (eq .Settings.Fancy.DepoJobMode "bj") .Settings.Fancy.DepoJobLast}}

Последний вызов процедуры — {{.Settings.Fancy.DepoJobLast}}

{{end}} {{end}} @@ -136,7 +135,7 @@ {{range depoProcList}}{{end}}
пустое поле или совпадение со встроенным — вернуть исходную версию; изменённые ставятся при «Установить» и при «Подготовить» в мастере
- {{if .Settings.Fancy.DepoProcCheck}}

{{if .Settings.Fancy.DepoProcCheckOK}}✓{{else}}⚠{{end}} {{.Settings.Fancy.DepoProcCheck}}

{{end}} + {{if .Settings.Fancy.DepoProcCheck}}

{{if .Settings.Fancy.DepoProcCheckOK}}✓{{else}}⚠{{end}} {{.Settings.Fancy.DepoProcCheck}}{{if not .Settings.Fancy.DepoProcCheckAt.IsZero}} · {{msk .Settings.Fancy.DepoProcCheckAt}}{{end}}

{{end}} {{end}}