forum.bitel.ru
http://forum.bitel.ru/

Операторские отчеты
http://forum.bitel.ru/viewtopic.php?f=22&t=11635
Страница 1 из 1

Автор:  Inspire [ 26 май 2016, 12:43 ]
Заголовок сообщения:  Операторские отчеты

Здравствуйте, а есть ли возможность сделать в биллинге отчет, в котором будут следующие поля: Кол-во вызовов, Количество минут , Начисления Абонентам за Услуги связи Мегафон в рублях (без НДС), Общая стоимость за трафик ?

Автор:  barguzin2 [ 26 май 2016, 13:16 ]
Заголовок сообщения:  Re: Операторские отчеты

есть :)
смотрите модуль Reoprts, создание собственных отчётов.

Автор:  Inspire [ 30 май 2016, 18:50 ]
Заголовок сообщения:  Re: Операторские отчеты

Код фильтра
Код:
<?xml version="1.0" encoding="UTF-8"?>
<report title="Отчет для Мегафон" type="java">
  <month name="month" title="Месяц"/>
  <contracts name="contracts"/>
</report>



Код табличного отчета:
Код:
public void fillReport( con, filter, bitel.billing.server.reports.BGCSVReport.ReportResult result )
{
  query = " SELECT * from contract ";

  ps = con.prepareStatement( query );
  data = new ArrayList( 1000 );

  rs = ps.executeQuery();

  while( rs. next() )
  {
    title = rs.getString("title");
    comment = rs.getString("comment");

    map = new HashMap();
    map.put( "title", title );
    map.put( "comment", comment );
    data.add( map );
  }

  result.setData( data );
}


Ошибка
Код:
https://10.0.0.101:8443/bgbilling/executer?module=reports&report_month=01.05.2016&report_mid=6&action=Report&report_id=phone_megafon&contentType=binary&mid=9&report_class=&
java.lang.NullPointerException
        at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191)
        at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492)
        at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407)
        at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6297)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
        at java.awt.Component.processEvent(Component.java:6062)
        at java.awt.Container.processEvent(Container.java:2039)
        at java.awt.Component.dispatchEventImpl(Component.java:4660)
        at java.awt.Container.dispatchEventImpl(Container.java:2097)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
        at java.awt.Container.dispatchEventImpl(Container.java:2083)
        at java.awt.Window.dispatchEventImpl(Window.java:2489)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
        at java.awt.EventQueue.access$400(EventQueue.java:81)
        at java.awt.EventQueue$2.run(EventQueue.java:633)
        at java.awt.EventQueue$2.run(EventQueue.java:631)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$3.run(EventQueue.java:647)
        at java.awt.EventQueue$3.run(EventQueue.java:645)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Что не так? Делал все как написано в доке и код брал из примера

Автор:  barguzin2 [ 30 май 2016, 21:46 ]
Заголовок сообщения:  Re: Операторские отчеты

как минимум, не хватает импортов в коде отчёта. и еще непонятно что вы сделали с кодом фильтра и кодом табличного отчёта, в смысле куда их засунули. и версию биллинга не указали. помните, правильно заданный вопрос содержит половину ответа.

Автор:  dimOn [ 30 май 2016, 22:52 ]
Заголовок сообщения:  Re: Операторские отчеты

возможно, вы что-то упускаете

Автор:  Inspire [ 31 май 2016, 12:02 ]
Заголовок сообщения:  Re: Операторские отчеты

Фильтр - phone_megafon.rep.xml - и табличный отчет - phone_megafon.java - я поместил в папку reports в папке биллинга
Добавил импорт классов в табличный отчет
Код:
import bitel.billing.server.phone.bean.*;
import bitel.billing.common.TimeUtils;
import ru.bitel.common.Utils;
import java.util.*;


Открываю отчет в биллинге, нажимаю кнопку генерации и выкидывает ошибку
Код:
https://10.0.0.101:8443/bgbilling/executer?module=reports&report_month=01.04.2016&report_mid=6&action=Report&report_id=phone_megafon&contentType=binary&mid=9&report_contracts=507&report_class=&
java.lang.NullPointerException
        at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191)
        at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492)
        at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407)
        at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6297)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
        at java.awt.Component.processEvent(Component.java:6062)
        at java.awt.Container.processEvent(Container.java:2039)
        at java.awt.Component.dispatchEventImpl(Component.java:4660)
        at java.awt.Container.dispatchEventImpl(Container.java:2097)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
        at java.awt.Container.dispatchEventImpl(Container.java:2083)
        at java.awt.Window.dispatchEventImpl(Window.java:2489)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
        at java.awt.EventQueue.access$400(EventQueue.java:81)
        at java.awt.EventQueue$2.run(EventQueue.java:633)
        at java.awt.EventQueue$2.run(EventQueue.java:631)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$3.run(EventQueue.java:647)
        at java.awt.EventQueue$3.run(EventQueue.java:645)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Автор:  Phricker [ 31 май 2016, 12:12 ]
Заголовок сообщения:  Re: Операторские отчеты

Гадание на кофейной гуще простите :)
Прикрепите сюда файлы отчета.

Автор:  Inspire [ 31 май 2016, 12:19 ]
Заголовок сообщения:  Re: Операторские отчеты

Прикрепил
Вложение:
Desktop.rar [1.56 КБ]
Скачиваний: 174

Автор:  Phricker [ 31 май 2016, 13:21 ]
Заголовок сообщения:  Re: Операторские отчеты

Из доки
Код:
<report title="Test" type="java">
  <address title="Адрес" cityName="cityId" streetName="streetId" houseName="house"/>
  <combo name="status" title="Статус">
    <item id="-1" title="любой"/>
    <item id="0" title="активен"/>
    <item id="4" title="приостановлен"/>
    <item id="3" title="закрыт"/>
  </combo>
  <fields>
    <item id="title" title="Имя"/>
    <item id="comment" title="Комментарий"/>
  </fields>
</report>

У вас же я вижу
Код:
    map.put( "title", title );
    map.put( "comment", comment );

но не вижу перечисления в fields

Автор:  Inspire [ 31 май 2016, 14:42 ]
Заголовок сообщения:  Re: Операторские отчеты

Сделал копи паст из доки в файлы
Все равно ошибку выдает
Код:
https://10.0.0.101:8443/bgbilling/executer?module=reports&report_=-1&report_status=-1&report_cityId=-1&report_mid=6&action=Report&report_streetId=-1&report_id=phone_megafon&contentType=binary&mid=9&re
port_class=&
java.lang.NullPointerException
        at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191)
        at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492)
        at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407)
        at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6297)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
        at java.awt.Component.processEvent(Component.java:6062)
        at java.awt.Container.processEvent(Container.java:2039)
        at java.awt.Component.dispatchEventImpl(Component.java:4660)
        at java.awt.Container.dispatchEventImpl(Container.java:2097)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
        at java.awt.Container.dispatchEventImpl(Container.java:2083)
        at java.awt.Window.dispatchEventImpl(Window.java:2489)
        at java.awt.Component.dispatchEvent(Component.java:4488)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
        at java.awt.EventQueue.access$400(EventQueue.java:81)
        at java.awt.EventQueue$2.run(EventQueue.java:633)
        at java.awt.EventQueue$2.run(EventQueue.java:631)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$3.run(EventQueue.java:647)
        at java.awt.EventQueue$3.run(EventQueue.java:645)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Версия биллинга 5.1.
Вложение:
Desktop2.rar [842 байт]
Скачиваний: 176

Автор:  barguzin2 [ 31 май 2016, 14:54 ]
Заголовок сообщения:  Re: Операторские отчеты

если убрать вторую строку с query+, то всё работает.
комрад, еще не исправили ошибку, а уже правите отчёт. нехорошо.

Автор:  Inspire [ 31 май 2016, 15:51 ]
Заголовок сообщения:  Re: Операторские отчеты

barguzin2 писал(а):
если убрать вторую строку с query+, то всё работает.
комрад, еще не исправили ошибку, а уже правите отчёт. нехорошо.

Разобрался, спасибо

Автор:  Inspire [ 31 май 2016, 18:12 ]
Заголовок сообщения:  Re: Операторские отчеты

Как распарсить дату? Мне надо выдернуть год и месяц
Код:
 String date = filter.getStringParam( "month" ).toString(); //возвращает дату в формате 01.05.2016
  date = date.replace(".", ",");
  String[] arr_date = date.split(",");
  String year = arr_date[2]; //год
  String month = arr_date[1]; //месяц


Так не работает. Выдает опять ту же ошибку

И как сделать, чтобы в отчете в биллинге вместо кракозябр были русские символы? (параметр service)
Вложение:
Desktop3.rar [1.16 КБ]
Скачиваний: 165

Автор:  Phricker [ 31 май 2016, 18:17 ]
Заголовок сообщения:  Re: Операторские отчеты

Видел костыли ))))))))))))))) Но такой :D
Код:
Calendar cal = filter.getCalendarParam("month");
int year= cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);

Вроде как то так

Автор:  Phricker [ 31 май 2016, 18:20 ]
Заголовок сообщения:  Re: Операторские отчеты

Правда учтите что java.util.Calendar считает месяцы с НУЛЯ.
Т.е. январь == 0
февраль == 1 и т.д.

Автор:  Inspire [ 31 май 2016, 18:51 ]
Заголовок сообщения:  Re: Операторские отчеты

query = "SELECT SUM(ses.round_session_time DIV 60) AS min, SUM(ses.cost) AS cost, COUNT(*) AS calls FROM log_session_6_"+year+month+" WHERE ses.sid = 36 AND ses.r..."
Теперь из за этой строки не работает ....
Из-за конкантенации year и Month

Автор:  barguzin2 [ 31 май 2016, 19:51 ]
Заголовок сообщения:  Re: Операторские отчеты

кажись, пошли вопросы за 100 :facepalm:
потому что, пилять, месяц в таблице c лидирующим нулём. ну неужели нельзя выводить в лог для отладки всякие query и прочую информацию и немного уже самому разбираться.

Автор:  Inspire [ 02 июн 2016, 13:02 ]
Заголовок сообщения:  Re: Операторские отчеты

barguzin2 писал(а):
кажись, пошли вопросы за 100 :facepalm:
потому что, пилять, месяц в таблице c лидирующим нулём. ну неужели нельзя выводить в лог для отладки всякие query и прочую информацию и немного уже самому разбираться.

Спасибо за идею, я не знал, что так можно
Все получилось. Скажите, как убрать кракозябры
Вложение:
Безымянный.png
Безымянный.png [ 7.99 КБ | Просмотров: 7233 ]

Автор:  barguzin2 [ 02 июн 2016, 13:33 ]
Заголовок сообщения:  Re: Операторские отчеты

в 5.1, насколько помню, нужно в win-1251 писать код java-отчёта. iconv в помощь

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/