BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 апр 2024, 20:53

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: 09 апр 2015, 02:34 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Добрый день!
Быть может вопрос в кривых руках но не корректно строится отчет по направлениям модуля phone, он не в одну цифру не совпадает с отчетом DECT по количеству звонков. Отчет DECT выверил, на основе собранных логов из data все попало в session, из этого можно сделать вывод, что DECT считает корректно. Пример кривого отчета в сравнение с DECT:
Изображение
Изображение
Изображение
В детализации на договорах все отображается корректно, название направления, код цена.
В отчете из модуля отчетов коды с 000 цена не корректна количество не корректно и не совпадает с отчетом DECT.
Версия BG:
Код:
Информация о версии:

  Клиент: вер. 6.1.842 / 31.03.2015 18:02:43
    os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_31
    ВНИМАНИЕ: Спецификация версии 1.8 не рекомендуется
  Сервер: вер. 6.1.1061 / 03.04.2015 15:11:09
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_67

  bill: вер. 6.1.257 / 20.03.2015 15:47:58
  card: вер. 6.1.205 / 11.03.2015 20:02:46
  inet: вер. 6.1.685 / 03.04.2015 15:11:32
  npay: вер. 6.1.189 / 03.04.2015 15:11:33
  phone: вер. 6.1.250 / 23.03.2015 19:26:46
  reports: вер. 6.1.199 / 30.03.2015 17:25:55
  ru.bitel.bgbilling.plugins.cladr: вер. 6.1.115 / 08.02.2015 20:45:26

Окружение:

  Клиент:
    os: Windows 7 x86, 6.1
    java: Java HotSpot(TM) Client VM, v.1.8.0_31
    jre home: C:\Program Files (x86)\Java\jre1.8.0_31
    default tz: 08.04.2015 23:32 MSK +0300 (Europe/Moscow)
    user tz: 08.04.2015 23:32 AST +0300 (Asia/Baghdad)
    locale: ru_RU
  Сервер:
    os: Linux amd64, 3.2.0-4-amd64
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_67
    jre home: /opt/java/jdk1.7.0_67/jre
    default tz: 08.04.2015 23:16 MSK +0300 (Europe/Moscow)
    locale: ru_RU


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 апр 2015, 11:12 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
напишите лучше в helpdesk. Это надо на вашей базе смотреть. В одном отчете горуппировка идет по услугам :
Код:
SELECT service.title, log.sid, COUNT(log.id), SUM(log.session_time), SUM(log.round_session_time), SUM(log.cost) FROM service
LEFT JOIN log_session_73_200907 AS log ON service.id=log.sid
LEFT JOIN contract ON contract.id=log.cid
GROUP BY log.sid


во втором по направлениям:
Код:
SELECT session.dest_id, dest.title, codes.code, COUNT(session.id) as cnt,
SUM(session.round_session_time) as round_session_time, SUM(session.cost) as cost
FROM log_session_73_200907 as session
LEFT JOIN contract ON session.cid=contract.id
LEFT JOIN phone_dest_73 as dest ON session.dest_id=dest.id
LEFT JOIN phone_geographic_code_73
 as codes ON codes.dest_id=dest.id
GROUP BY dest_id


Вот и вся разница если вы фильтры одинаковые задали..Можете сравнить эти 2 запроса.
Тут скорее ошибка в данных, а не в отчетах. Да и не понятно по вашему скриншоту, в отчете по направлениям вроде 5 столбцов, а у вас 4.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 апр 2015, 15:17 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Колонку отрезал просто с ценой, спасибо за запросы буду дальше ковырять. Странно в каком месте может быть ошибка в данных если по геогр кодам в детальке на договоре все разбирается корректно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 апр 2015, 15:21 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
neon писал(а):
Колонку отрезал просто с ценой, спасибо за запросы буду дальше ковырять. Странно в каком месте может быть ошибка в данных если по геогр кодам в детальке на договоре все разбирается корректно.


ну надо запустить запросы вручную и выяснить откуда разница идет .


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 апр 2015, 18:25 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Да. сегодня этим займусь. Попробую выяснить по каким кодам из таблицы с сессиями идет не совпадения и уже от этого буду отталкиваться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 апр 2015, 23:45 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Не уверен, что в данных косяк. Делаю запрос:
Код:
SELECT session.dest_id, dest.title, codes.code, COUNT(session.id) as cnt,
SUM(session.round_session_time) as round_session_time, SUM(session.cost) as cost

FROM bgbilling.log_session_4_201504 as session
LEFT JOIN bgbilling.contract ON session.cid=contract.id
LEFT JOIN bgbilling.phone_dest_4 as dest ON session.dest_id=dest.id
LEFT JOIN bgbilling.phone_geographic_code_4
 as codes ON codes.dest_id=dest.id
GROUP BY dest_id


Получаю результат как в клиенте. Первое что бросается в глаза строка:
837 Москва (mob) - Билайн 790300 86840 16976700 556786.10
При всем желании не может быть столько звонков так как в таблице:
bgbilling.log_session_4_201504 всего около 5К записей, но не страшно смотрим дальше.
Узнаем по коду 790300 dist_id
Код:
select *
from bgbilling.phone_geographic_code_4
where code=790300

Получаем значение
837
И теперь считаем сколько на самом деле в таблице с сессиями у нас таких звонков по этому коду
Код:
SELECT count(id)
FROM bgbilling.log_session_4_201504
where dest_id='837'
#codes='790300'
;

Получаем число 668.
Это реальное количество звонков на номера с этим кодом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 01:05 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Я кажется понял из-за чего это происходит, если выполнить запрос:
Код:
select dest_id,code
from bgbilling.phone_geographic_code_4
where dest_id=837
;

То мы получим множество кодов, соответственен при объединение они все вылезают. В связи с этим вопрос у каждого кода не индивидуальный dest_id ? Наверное нет,
тк таблицы
bgbilling.phone_dest_4 и bgbilling.phone_geographic_code_4
Связаны 1 к 1 по ID<>DEST_ID
Но в таблице bgbilling.phone_geographic_code_4
Может быть несколько кодов с одним DEST_ID (группы геогр кодов), наверное исходя из этого строится красивое дерево геогр кодов в модуле Phone.
Итого как строится отчет по DEST_ID если он для сессии однозначно не определен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 12:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
neon писал(а):
Я кажется понял из-за чего это происходит, если выполнить запрос:
Код:
select dest_id,code
from bgbilling.phone_geographic_code_4
where dest_id=837
;

То мы получим множество кодов, соответственен при объединение они все вылезают. В связи с этим вопрос у каждого кода не индивидуальный dest_id ? Наверное нет,
тк таблицы
bgbilling.phone_dest_4 и bgbilling.phone_geographic_code_4
Связаны 1 к 1 по ID<>DEST_ID
Но в таблице bgbilling.phone_geographic_code_4
Может быть несколько кодов с одним DEST_ID (группы геогр кодов), наверное исходя из этого строится красивое дерево геогр кодов в модуле Phone.
Итого как строится отчет по DEST_ID если он для сессии однозначно не определен.


ясно.. Т.е у одного разные коды могут попадать на одно и то направление. Например все дочерние коды в Архангельской области привязаны к одному и тому же направлению. Это хорошо видно если запустить запрос
Код:
select group_concat(gc.code), gc.dest_id, count(*) as cc, dest.title from phone_geographic_code_73  as gc
left join phone_dest_73 as dest on gc.dest_id=dest.id
group by dest_id having cc > 1



У меня выводит (часть информации)
Код:
781830,781831,781832,781833,781834,781835,781836,781837,781838,781839,781840,781841,781842,781843,781844,781845,781846,781847,781848,781849,781850,781851,781852,781854,781855,781856,781858,781859   164011   28   Архангельская область/ Ненецкий АО {1}
78173,78174,78175   164023   3   Вологодская область {1}
....

Получается что отчет расчитан на случай: одно направление-один код.. Проблема в том, что в сессии не хранится код, а только направление. А по направлению нельзя однозначно определить код в общем случае. В качеств быстрого решения проблемы вижу - столбец убрать "код" из вывода и запроса, так как он имеет смысла в данном случае..Либо не пользоваться этим отчетом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 12:27 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Забавно. Этот отчет и был изначально без этого столбца.. И в документации он без него:
http://bgbilling.ru/v6.1/doc/ch31s07.html

Но кто-то, видимо, попросил этот столбце и его добавили 10.03.2011 в ветку 6.1.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 13:10 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Да, я вам об этом и говорил. Но странно, что он рассчитан на одно направление - один код. Так как если грузить дерево геогр кодов, то оно автоматически разбирается по направлениям и при всем желании сложно сделать один код одно направление и вообще какой смысл тогда в направлении. Быть может вообще убрать в новом релизе колонку, так как мне кажется оно не у кого нормально не строится. Но мб оно никому и не надо. Без колонки вроде строится корректно, следующим запросом(мб кому пригодится)
Код:
SELECT session.dest_id, dest.title, COUNT(session.id) as cnt,
SUM(session.round_session_time) as round_session_time, SUM(session.cost) as cost

FROM bgbilling.log_session_4_201504 as session
LEFT JOIN bgbilling.contract ON session.cid=contract.id
LEFT JOIN bgbilling.phone_dest_4 as dest ON session.dest_id=dest.id

GROUP BY session.dest_id



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 14:04 
Не в сети
Клиент

Зарегистрирован: 04 июн 2009, 15:33
Сообщения: 268
Откуда: Москва
Карма: 8
Спасибо за решение, тоже с этим столкнулись!

UPD:
Хотя нет, коды тоже нужны...

_________________
Клиент: вер. 7.1.102 / 20.04.2018 19:02:09
os: Windows 8.1; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_172
Сервер: вер. 7.1.970 / 20.04.2018 19:04:17
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_162


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 16:41 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Убрали столбце код, теперь отчет будет работать верно. В следующем обновлении будет


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 17:11 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 апр 2015, 22:33 
Не в сети
Клиент

Зарегистрирован: 08 апр 2013, 17:07
Сообщения: 44
Откуда: Москва
Карма: 0
Обновился, все работает. Теперь можно переходить к отладке модуля Voice )))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.111s | 46 Queries | GZIP : On ]