промежуточный положительный результат. Отчеты коррктно формируются. Перед автоматической загрузкой файлов 1С.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
"""
|
||||
Модуль автоматического экспорта данных СКУД (Orion) из MS SQL Server в Excel.
|
||||
Исправлена логика определения направления проходов (Mode = 2 -> OUT).
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -63,15 +64,18 @@ DECLARE @TargetDate DATE = @InputDate;
|
||||
DECLARE @StartDate DATETIME = CAST(@TargetDate AS DATETIME);
|
||||
DECLARE @EndDate DATETIME = DATEADD(SECOND, -1, DATEADD(DAY, 1, @StartDate));
|
||||
|
||||
-- 1. Фильтруем логи только за нужные 24 часа с ПРАВИЛЬНЫМ ПРИОРИТЕТОМ ВЫХОДА (Mode = 2)
|
||||
WITH DailyLogs AS (
|
||||
SELECT
|
||||
log.HozOrgan AS EmployeeID,
|
||||
log.TimeVal,
|
||||
log.Event,
|
||||
log.Mode,
|
||||
CASE WHEN log.Event IN (28, 26, 32) OR log.Mode = 1 THEN 'IN'
|
||||
WHEN log.Event IN (29, 27, 33) OR log.Mode = 2 THEN 'OUT'
|
||||
ELSE 'OTHER' END AS Direction,
|
||||
CASE
|
||||
WHEN log.Mode = 2 OR log.Event IN (29, 27, 33) THEN 'OUT'
|
||||
WHEN log.Mode = 1 OR log.Event IN (28, 26, 32) THEN 'IN'
|
||||
ELSE 'OTHER'
|
||||
END AS Direction,
|
||||
ROW_NUMBER() OVER (PARTITION BY log.HozOrgan ORDER BY log.TimeVal DESC) AS RowNumDesc
|
||||
FROM pLogData log WITH (NOLOCK)
|
||||
WHERE log.TimeVal BETWEEN @StartDate AND @EndDate
|
||||
@@ -79,6 +83,7 @@ WITH DailyLogs AS (
|
||||
AND log.HozOrgan > 0
|
||||
AND (log.Event IN (28, 29, 26, 27, 32, 33) OR log.Mode IN (1, 2))
|
||||
),
|
||||
-- 2. Агрегируем первичное время входа и последнее время выхода
|
||||
Passages AS (
|
||||
SELECT
|
||||
EmployeeID,
|
||||
|
||||
Reference in New Issue
Block a user