forum.bitel.ru http://forum.bitel.ru/ |
|
Интерфейсы. Фич-реквест (CRM) http://forum.bitel.ru/viewtopic.php?f=44&t=8181 |
Страница 1 из 2 |
Автор: | barguzin2 [ 20 июн 2013, 20:54 ] |
Заголовок сообщения: | Интерфейсы. Фич-реквест |
В IPN в шлюзах можно посмотреть занятость портов (договоры). Может в Inet на вкладке Устройства при открытии Интерфейсы конкретного девайса добавить в табличку столбец Договор, чтобы сразу всю текущую картину видеть, а то лазить в Использование каждого интерфейса не есть хорошая затея. Попутно это будет так сказать поиском по порту. А если еще сделать оттуда переход в договор - совсем чудно будет. |
Автор: | nik247 [ 20 июн 2013, 22:53 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
+100 Сейчас посмотреть занятость портов нет возможности - нужно в каждый прыгать. Кто-то здесь писал - делал через отчеты, но как-то кузяво это, хотя лучше чем ничего. |
Автор: | Cromeshnic [ 21 июн 2013, 08:19 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
+1 Про переход в договор тоже писал уже, во вкладке "использование". Надо в 2 местах тогда. |
Автор: | snark [ 24 июн 2013, 17:34 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
+1 Хотелка более чем нужная. |
Автор: | borisk [ 10 июл 2013, 19:29 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Я эту фичу просил уже черт знает когда ![]() |
Автор: | nik247 [ 15 июл 2013, 19:47 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Лед двинулся... Надо обновляться и смотреть... Код: 1207 15.07.2013 19:23:22 ДОБАВЛЕНО Inet: Отображение текущего подписчика в интерфейсах устройства.
1207 15.07.2013 19:23:22 ДОБАВЛЕНО Inet: Открытие вкладки договора в клиенте для подписчика интерфейса устройства. |
Автор: | Cromeshnic [ 14 окт 2013, 12:07 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Всё работает, круто. А ещё сортировка по имени интерфейса появилась. У меня ещё один фичреквест появился - улучшить форму выбора интерфейса в редакторе сервиса на договоре. Хочется поиск по интерфейсам и/или сортировку по имени. Иначе искать нужный неудобно. Вложение: Кстати, туда же - список из 2800 интерфейсов на устройстве во вкладке "Устройства и ресурсы" у меня открывается секунд 8. (v 5.2) |
Автор: | Cromeshnic [ 15 окт 2013, 14:07 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Насчёт долгого открытия списка интерфейсов: там на каждый интерфейс создаётся и закрывается отдельный preparedStatement для поиска в базе подписчика. Мб это оптимизировать? Кэшировать этот стейтмент как-то или вообще одним запросом получать.. |
Автор: | Cromeshnic [ 04 июл 2014, 07:08 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
up |
Автор: | snark [ 04 июл 2014, 12:37 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Cromeshnic писал(а): список из 2800 интерфейсов Что мешало сделать папку, в папке 3 устройства с одним и тем же IP адресом и на каждом из которых 1000 интерфейсов, которые, IMHO, удобнее передвать как Gi0/0/0.$vlan, а не как $interfaceTitle. Как много абонентов ты подключил к Nu0? ![]() |
Автор: | Cromeshnic [ 04 июл 2014, 13:01 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Да там мусора куча импортировалось сразу. Надо поудалять бы.. |
Автор: | Cromeshnic [ 07 июл 2014, 10:29 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Таки UP Сейчас пытаюсь завести руками сервис на договоре - найти в неупорядоченном списке интерфейс Te0/1/0.17110117 среди кучи подобных - анриал. Меня инженеры живьём сожрут, когда мы в продакшене перейдём на Inet из IPN. v 5.2 ps. Мусорные интерфейсы поудалял, легче не стало |
Автор: | Cromeshnic [ 07 июл 2014, 12:36 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Я могу конечно попробовать переопределить класс панельки в клиентских либах (благо, Java WebStart)... Есть смысл ждать на 5.2? И сколько? |
Автор: | Cromeshnic [ 07 июл 2014, 14:56 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Переопределил панельку, скопипастив модель списка интерфейсов из дерева устройств. Всё работает, но такой костыль уязвляет мои религиозные чувства. Мб всё-таки у себя так же запилите? Код: package ru.bitel.bgbilling.modules.inet.api.client.contract;
import ru.bitel.bgbilling.client.common.BGUPanel; import ru.bitel.bgbilling.client.common.BGUTable; import ru.bitel.bgbilling.client.common.ClientContext; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServType; import ru.bitel.common.RangeUtils; import ru.bitel.common.client.AbstractBGUPanel; import ru.bitel.common.client.BGSwingUtilites; import ru.bitel.common.client.table.BGTableModel; import ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService; import ru.bitel.oss.systems.inventory.resource.common.bean.DeviceInterface; import ru.bitel.oss.systems.inventory.resource.common.bean.DeviceInterfaceIndex; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; import java.util.List; public class InetServDeviceInterfaceForm extends BGUPanel { private DeviceInterfaceService deviceInterfaceService = (DeviceInterfaceService)((ClientContext)getContext()).getPort(DeviceInterfaceService.class); private final InetServForm inetServForm; private int interfaceId; private DeviceInterface initialDeviceInterface; private DeviceInterface deviceInterface; //private BGUList<DeviceInterface> result; private BGTableModel<DeviceInterface> result; AbstractBGUPanel.DefaultAction interfaceSelect = new AbstractBGUPanel.DefaultAction("interface.resource", "Интерфейсы") { public void actionPerformedImpl(ActionEvent e) throws Exception { InetServType inetServType = InetServDeviceInterfaceForm.this.inetServForm.serviceType.getSelectedItem(); boolean personalInterface = (inetServType == null) || (inetServType.isPersonalInterface()); List<DeviceInterface> list = InetServDeviceInterfaceForm.this.deviceInterfaceService.deviceInterfaceListFree(InetServDeviceInterfaceForm.this.inetServForm.current.getDeviceId(), InetServDeviceInterfaceForm.this.inetServForm.period.getDateFrom(), InetServDeviceInterfaceForm.this.inetServForm.period.getDateTo()); if (!personalInterface) { Set<DeviceInterface> freeInterfaces = new HashSet<DeviceInterface>(); for (DeviceInterface aList : list) { freeInterfaces.add(aList); } list = InetServDeviceInterfaceForm.this.deviceInterfaceService.devicePortList(InetServDeviceInterfaceForm.this.inetServForm.current.getDeviceId(), false); for (DeviceInterface iface : list) { if (!freeInterfaces.contains(iface)) { iface.setTitle(iface.getTitle() + " *"); } } } if ((InetServDeviceInterfaceForm.this.initialDeviceInterface != null) && (InetServDeviceInterfaceForm.this.initialDeviceInterface.getDeviceId() == InetServDeviceInterfaceForm.this.inetServForm.current.getDeviceId())) { InetServDeviceInterfaceForm.this.result.setData(list); if ((InetServDeviceInterfaceForm.this.deviceInterface == null) || (InetServDeviceInterfaceForm.this.deviceInterface.equals(InetServDeviceInterfaceForm.this.initialDeviceInterface))) { //InetServDeviceInterfaceForm.this.result.setSelectedIndex(pos); InetServDeviceInterfaceForm.this.result.setSelectedRow(initialDeviceInterface); //InetServDeviceInterfaceForm.this.result.ensureIndexIsVisible(pos); } else { //InetServDeviceInterfaceForm.this.result.setSelectedValue(InetServDeviceInterfaceForm.this.deviceInterface, true); InetServDeviceInterfaceForm.this.result.setSelectedRow(InetServDeviceInterfaceForm.this.deviceInterface); } } else { InetServDeviceInterfaceForm.this.result.setData(list); } InetServDeviceInterfaceForm.this.performActionOpen(); } }; AbstractBGUPanel.DefaultAction ok = new AbstractBGUPanel.DefaultAction("ok", "Ok") { public void actionPerformedImpl(ActionEvent e) throws Exception { DeviceInterface selected = InetServDeviceInterfaceForm.this.result.getSelectedRow(); if (selected != null) { InetServDeviceInterfaceForm.this.interfaceId = selected.getPort(); InetServDeviceInterfaceForm.this.deviceInterface = selected; InetServDeviceInterfaceForm.this.inetServForm.iface.setText(InetServDeviceInterfaceForm.this.deviceInterface.getTitle()); } else { InetServDeviceInterfaceForm.this.interfaceId = 0; InetServDeviceInterfaceForm.this.deviceInterface = null; InetServDeviceInterfaceForm.this.inetServForm.iface.setText(""); } InetServDeviceInterfaceForm.this.performActionClose(); } }; public InetServDeviceInterfaceForm(InetServForm inetServForm, ActionListener actionListener) { super(new BorderLayout()); BGSwingUtilites.wrapBorder(this, "Интерфейсы"); this.inetServForm = inetServForm; } protected void jbInit() { //this.result = new BGUList(DeviceInterface.class); this.result = new BGTableModel<DeviceInterface>("port") { protected void initColumns() { addColumn("Интерфейс", -1, 120, 200, "port", true); addColumn("Название", -1, 180, 240, "title", true); addColumn("Индекс", -1, 120, 120, "port", true); addColumn("Статус", -1, 120, 120, null, true); //addColumn("Категория IP", -1, 180, 240, null, true); addColumn("Подписчик", -1, 200, -1, "subscriberTitle", true); addColumn("Комментарий", -1, 240, -1, "comment", true); } public Object getValue(DeviceInterface val, int column) { switch (column) { case 2: List<DeviceInterfaceIndex> indexList = val.getIndexList(); if ((indexList == null) || (indexList.size() == 0)) { return val.getPort(); } Date now = new Date(); for (DeviceInterfaceIndex index : indexList) { if (RangeUtils.inRange(now, now, index.getTimeFrom(), index.getTimeTo())) { return index.getIndex(); } } return val.getPort(); case 3: switch (val.getStatus()) { case 0: return "зарезервирован"; case 1: return "доступен"; } return null; } return super.getValue(val, column); } }; add(new JScrollPane(new BGUTable(this.result))); } public void setInterfaceId(int interfaceId) { this.interfaceId = interfaceId; if (interfaceId == -1) { this.initialDeviceInterface = null; this.deviceInterface = null; return; } try { this.initialDeviceInterface = this.deviceInterfaceService.devicePort(this.inetServForm.current.getDeviceId(), interfaceId); this.deviceInterface = this.initialDeviceInterface; } catch (BGException e) { getContext().processException(e); } } public int getInterfaceId() { return this.interfaceId; } public String getInterfaceTitle() { return this.deviceInterface.getTitle(); } } |
Автор: | Cromeshnic [ 07 июл 2014, 14:58 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Вложение:
|
Автор: | snark [ 07 июл 2014, 16:12 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест |
Cromeshnic писал(а): Меня инженеры живьём сожрут, когда мы в продакшене перейдём на Inet из IPN. v 5.2 Есть мнение, что надо ставить 6.1, т.к. для 5.2 вряд ли что-то будут пилить. |
Автор: | Cromeshnic [ 07 июл 2014, 16:16 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Есть мнение, что мне денег на 6.1 не дадут |
Автор: | snark [ 07 июл 2014, 16:44 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Cromeshnic писал(а): мне денег на 6.1 не дадут Если Бител пошлет, что вполне вероятно, то придется убеждать руководство любыми возможными способами, вплоть до членовредительства (но без уголовщины!). |
Автор: | skyb [ 07 июл 2014, 19:23 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
мб я чего не понимаю, но наверное сеть как то планировать нужно было по другому, у меня, покачто, таких проблем не возникает, хотя абонентов достаточно |
Автор: | Cromeshnic [ 08 июл 2014, 06:12 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
2 skyb Ты используешь cisco ip subscriber interface? |
Автор: | Artur [ 08 июл 2014, 15:15 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Правильно ли я понимаю, что необходимо добавить фильтр + сортировку интерфейсов? Также я вижу вопрос о проблеме с долгим открытием списка интерфейсов. Все верно? Ничего не упустил? |
Автор: | Cromeshnic [ 08 июл 2014, 15:23 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Всё верно. По скорости: в договоре список интерфейсов открывается ~3 секунды, в дереве устройств на дом же устройстве ~ 1,5. |
Автор: | skyb [ 11 июл 2014, 17:37 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Artur писал(а): Для 6.1 а че в заголовке 5.3 ? )))) |
Автор: | Artur [ 11 июл 2014, 17:45 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
skyb писал(а): Artur писал(а): Для 6.1 а че в заголовке 5.3 ? )))) Упс...спалился |
Автор: | stark [ 11 июл 2014, 17:59 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
skyb писал(а): Artur писал(а): Для 6.1 а че в заголовке 5.3 ? )))) Это у нас в master-е такая версия , когда давно мы ее как 5.2 собирались выпускать, но с тех пор планы поменялись ![]() |
Автор: | skyb [ 14 июл 2014, 07:08 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
stark писал(а): skyb писал(а): Artur писал(а): Для 6.1 а че в заголовке 5.3 ? )))) Это у нас в master-е такая версия , когда давно мы ее как 5.2 собирались выпускать, но с тех пор планы поменялись ![]() 5.3 вышла как 6.1, нехилый такой скачек)))))) |
Автор: | Phricker [ 14 июл 2014, 10:25 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
![]() Работает, но почему-то всегда оставляет для выбора самый первый интерфейс. |
Автор: | Amir [ 14 июл 2014, 12:34 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Может быть это тот что уже установлен, текущий? |
Автор: | Phricker [ 14 июл 2014, 12:40 ] |
Заголовок сообщения: | Re: Интерфейсы. Фич-реквест (CRM) |
Фак. Точно ))) Да, тогда все прекрасно работает, при этом показывая тот, что сейчас уже установлен |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |