Class SormUtils
java.lang.Object
ru.bitel.bgbilling.modules.sorm.server.utils.SormUtils
public final class SormUtils
extends java.lang.Object
Утильный класс, содержащий общеупотребимые методы для выгрузок СОРМ3.
-
Field Summary
Fields Modifier and Type Field Description static char
CSV_SEPARATOR
static java.lang.String
PARAMETER_KEY_REGION
static java.lang.String
PARAMETER_KEY_ZONE
static int
sormModuleId
-
Constructor Summary
Constructors Constructor Description SormUtils()
-
Method Summary
Modifier and Type Method Description static boolean
checkThreeYearsAgo(java.util.Date dateTo)
Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки датыstatic boolean
checkValidAddress(AddressStruct address)
Проверка адреса на заполненность обязательных для СОРМа полейstatic void
clearChangedContractsTable(java.sql.Connection con)
static void
clearContractLogTable(java.sql.Connection con, int sormProjectId)
Чистит запись о последнем выгруженном договоре для проекта СОРМstatic boolean
contractHasModule(java.sql.Connection connection, int moduleId, int contractId)
static java.lang.String
formatDateToUTC(java.util.Calendar date, java.lang.String pattern)
static java.lang.String
formatDateToUTC(java.util.Date date, java.lang.String pattern)
static EntityAttrAddress
getAddressFromDeviceAttributes(Device device)
static java.util.List<Pair<java.lang.Integer,java.util.List<Pair<java.lang.String,java.lang.Integer>>>>
getAddressList(Preferences config, java.util.List<SormContract> contracts)
Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адресаstatic java.lang.String
getAddressType(java.lang.String configAddressKey)
Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонентаstatic java.lang.String
getAdminEmail(Preferences config)
Возвращает указанный email для отправки информации по ошибкамstatic java.lang.String
getAlias(java.sql.Connection connection, int voiceIpMid, int loginId)
static java.util.List<Bunch>
getBunches(Preferences config)
Возвращает список пучков оператора сохранённых в конфигеstatic java.lang.String
getConnectionStandart(Preferences config)
static au.com.bytecode.opencsv.CSVWriter
getCSVFile(java.nio.file.Path file)
static au.com.bytecode.opencsv.CSVWriter
getCSVFile(java.nio.file.Path file, char quoteCharacter)
static au.com.bytecode.opencsv.CSVWriter
getCSVFile(java.nio.file.Path file, java.lang.String encoding)
static au.com.bytecode.opencsv.CSVWriter
getCSVFile(java.nio.file.Path path, java.nio.charset.Charset encoding, char quoteCharacter)
static au.com.bytecode.opencsv.CSVWriter
getCSVFile(java.nio.file.Path path, java.nio.charset.Charset charset, char quoteCharacter, char separator)
static java.util.List<DialUpLogin>
getDialUpLogins(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, java.util.List<SormContract> contracts)
Привязка договоров к логинам модуля DialUp.static java.util.List<DialUpNAS>
getDialUpNasList(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, boolean isSwitches)
список nas'ов модуля dialUp для выгрузки как коммутаторовstatic java.util.List<IdTitle>
getDocumentsTypes(Preferences config, ContractParameterManager cpm)
Возвращает список документов из выбранного пользователем спискового параметра договораstatic int
getDocumentTypeIdOfContract(Preferences config, ContractParameterManager cpm, int cid, java.util.List<IdTitle> documentTypes)
Возвращает id типа документа для договораstatic java.lang.String
getFullOperatorAddress(Preferences config)
Формирует адрес оператора одной строкой из конфигурации выгрузкиstatic java.util.List<java.lang.Integer>
getIdsModulesFromConfig(Preferences config, java.lang.String subKey)
Возвращает из конфига список id модулей по подключу.static java.util.List<java.lang.Integer>
getIdsServices(Preferences config)
static java.util.List<Device>
getInetDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров Inetstatic java.util.List<InetServ>
getInetServices(Preferences preferences, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, java.util.List<SormContract> contractIds)
static java.util.List<InternalUser>
getInternalUsers(java.sql.Connection connection, ObjectManager objectManager, ParamValueManager valueManager, ru.bitel.bgbilling.modules.sorm.server.utils.SormUploadHelper uploadHelper, Preferences config)
static java.lang.String[]
getIPGatewayItem(Device inetDevice, java.lang.String regionId)
Только для МФИСофт и Спец.Технологий!static java.util.Map<IpCategory,java.util.List<IpResource>>
getIPResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемыеstatic int
getLastUploadContractId(java.sql.Connection con, int sormProjectId)
Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМstatic java.util.List<java.lang.Integer>
getListIntegerFromConfigByKey(Preferences config, java.lang.String key)
Возвращает список(Integer) сохранённых в конфиге по переданному ключуstatic java.util.Map<java.lang.Integer,java.util.List<InetServ>>
getPairsAbonentInetServices(Preferences config, java.util.List<SormContract> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Получение списка сервисов всех установленных модулей Inet с уникальными ip-адресами всех договоров, которые возвращает метод getContractIdsstatic java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>>
getPairsMidsListIds(Preferences preferences, java.lang.String subKey)
Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуляstatic java.lang.String
getParameterOfCity(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, AddressManager addressManager, AddressStruct addressStruct, java.lang.String parameterKey)
Возвращает значение дополнительного параметра для городаstatic java.util.List<Source>
getPhoneSources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext context)
static java.util.List<Device>
getSelectedGateways(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Возвращает список устройств, которые выбраны, как шлюзы оператораstatic java.util.List<java.lang.Integer>
getSelectedInetModulesToUpload(Preferences config)
static java.util.List<ServiceSorm>
getSelectedServicesForUpload(Preferences config)
Возвращает список услуг, которые были выбраны пользователем для выгрузкиstatic java.util.Map<java.lang.String,java.util.List<java.lang.Integer>>
getTelephoneModulesIds(Preferences config)
Возвращает список выбранныз для выгрузки телефонных модулейstatic java.util.List<SormContract>
getUploadContracts(java.sql.Connection con, int sormProjectId, boolean isFullUpload, Preferences config)
Получение списка id договоров, которые будут участвовать в выгрузке.static java.nio.file.Path
getUploadFile(java.lang.String fileUploadPath, java.lang.String filePrefix, java.lang.String datePattern)
Создает новый файл на диске по заданному путиstatic java.util.List<NumberRange>
getUploadPhoneNumberingResources(Preferences config, java.sql.Connection connection)
Возвращает список номеров, которые должны быть выгружены для выбранных модулей phonestatic java.util.List<NumberRange>
getUploadVoiceNumberingResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей Voicestatic java.util.List<Device>
getVoiceDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
Возвращает список устройств модуля Voice для выбранных модулей в конфигеstatic java.util.Map<java.lang.Integer,java.util.List<PhoneResourceSubscription>>
getVoiceModuleSubscriptionList(java.util.List<java.lang.Integer> voiceModules, ru.bitel.bgbilling.kernel.container.managed.ServerContext context, Preferences config)
static java.lang.String
ip2Hex(java.lang.String ip)
Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представлениеstatic void
sendErrorToEmail(Setup setup, java.lang.Exception ex, java.lang.String subject)
static void
sendErrorToEmail(Setup setup, java.lang.Exception ex, java.lang.String subject, java.lang.String email)
В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору.static java.lang.String
trimField(java.lang.String value, int length)
Обрезает строку до указанной длины.static void
updateContractLogTable(java.sql.Connection con, int lastUploadCid, int sormProjectId)
Обновляет информацию о последнем выгруженном договореMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
PARAMETER_KEY_REGION
public static final java.lang.String PARAMETER_KEY_REGION- See Also:
- Constant Field Values
-
PARAMETER_KEY_ZONE
public static final java.lang.String PARAMETER_KEY_ZONE- See Also:
- Constant Field Values
-
CSV_SEPARATOR
public static final char CSV_SEPARATOR- See Also:
- Constant Field Values
-
sormModuleId
public static int sormModuleId
-
-
Constructor Details
-
SormUtils
public SormUtils()
-
-
Method Details
-
getUploadContracts
public static java.util.List<SormContract> getUploadContracts(java.sql.Connection con, int sormProjectId, boolean isFullUpload, Preferences config)Получение списка id договоров, которые будут участвовать в выгрузке. Берет: 1-все договора после последнего выгруженного, если есть запись в таблице 2-все изменённые договора Критерии: договоры на которых: добавлен модуль СОРМ которые действуют или действовали последние 3 года есть один из модулей, которые были выбраны для выгрузки- Parameters:
con
- - соединение с БДsormProjectId
- - id проекта СОРМ для которого производится выгрузка.isFullUpload
- - флаг, полная ли выгрузка базы абонентов производится или инкрементальнаяconfig
- - конфигурация проекта СОРМ, в которой есть информация о выбранных для выгрузки модулей
-
clearChangedContractsTable
public static void clearChangedContractsTable(java.sql.Connection con) -
getLastUploadContractId
public static int getLastUploadContractId(java.sql.Connection con, int sormProjectId)Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМ -
updateContractLogTable
public static void updateContractLogTable(java.sql.Connection con, int lastUploadCid, int sormProjectId) throws java.sql.SQLExceptionОбновляет информацию о последнем выгруженном договоре- Parameters:
lastUploadCid
- - id последнего выгруженного договораsormProjectId
- - id проекта выгрузки СОРМ- Throws:
java.sql.SQLException
-
clearContractLogTable
public static void clearContractLogTable(java.sql.Connection con, int sormProjectId) throws ru.bitel.bgbilling.common.BGExceptionЧистит запись о последнем выгруженном договоре для проекта СОРМ- Parameters:
sormProjectId
- - id проекта СОРМ- Throws:
ru.bitel.bgbilling.common.BGException
-
getPairsAbonentInetServices
public static java.util.Map<java.lang.Integer,java.util.List<InetServ>> getPairsAbonentInetServices(Preferences config, java.util.List<SormContract> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) throws ru.bitel.bgbilling.common.BGExceptionПолучение списка сервисов всех установленных модулей Inet с уникальными ip-адресами всех договоров, которые возвращает метод getContractIds- Returns:
- map, где key - cid договороа, value - список сервисов для данного договора
- Throws:
ru.bitel.bgbilling.common.BGException
-
getInetServices
public static java.util.List<InetServ> getInetServices(Preferences preferences, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, java.util.List<SormContract> contractIds) throws ru.bitel.bgbilling.common.BGException- Returns:
- список сервисов всех установленных экземпляров модулей инета, которые были отмечены для выгрузки
- Throws:
ru.bitel.bgbilling.common.BGException
-
getSelectedInetModulesToUpload
- Returns:
- список id модулей inet, которые были выбраны для выгрузки
-
getListIntegerFromConfigByKey
public static java.util.List<java.lang.Integer> getListIntegerFromConfigByKey(Preferences config, java.lang.String key)Возвращает список(Integer) сохранённых в конфиге по переданному ключу -
getIdsServices
public static java.util.List<java.lang.Integer> getIdsServices(Preferences config) throws ru.bitel.bgbilling.common.BGException- Returns:
- список id выбранных для выгрузки услуг оператора
- Throws:
ru.bitel.bgbilling.common.BGException
-
getSelectedServicesForUpload
Возвращает список услуг, которые были выбраны пользователем для выгрузки -
sendErrorToEmail
-
sendErrorToEmail
public static void sendErrorToEmail(Setup setup, java.lang.Exception ex, java.lang.String subject, java.lang.String email)В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору. Email задается при настройке выгрузки в модуле СОРМ, если не заполнен, то будет взять в конфигурации сервера в параметре alarm.mail- Parameters:
setup
- конфигурация биллингаex
- экземпляр исключения. Из него берется сообщение об ошибке, а также печатается стектрейсsubject
- тема письма. Например, ошибка при выгрузке такого то файла, при формировании такого то списка и т.д.
-
trimField
public static java.lang.String trimField(java.lang.String value, int length)Обрезает строку до указанной длины.- Parameters:
value
- строка, длину которой, возможно, нужно сократитьlength
- длина, до которой обрезаем строку
-
getUploadFile
public static java.nio.file.Path getUploadFile(java.lang.String fileUploadPath, java.lang.String filePrefix, java.lang.String datePattern)Создает новый файл на диске по заданному пути- Parameters:
fileUploadPath
- путь в локальной директории для создания файлаfilePrefix
- префикс создаваемого файлаdatePattern
- формат даты, которая должна присутствовать в названии файла- Returns:
- объект типа файл в каталоге FILE_UPLOAD_PATH/
-
getAdminEmail
Возвращает указанный email для отправки информации по ошибкам -
getCSVFile
public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file) throws java.io.IOException- Throws:
java.io.IOException
-
getCSVFile
public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file, java.lang.String encoding) throws java.io.IOException- Throws:
java.io.IOException
-
getCSVFile
public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file, char quoteCharacter) throws java.io.IOException- Throws:
java.io.IOException
-
getCSVFile
public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path path, java.nio.charset.Charset encoding, char quoteCharacter) throws java.io.IOException- Throws:
java.io.IOException
-
getCSVFile
public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path path, java.nio.charset.Charset charset, char quoteCharacter, char separator) throws java.io.IOException- Parameters:
path
- - созданный для записи файлquoteCharacter
- - Для поставщика Специальные Технологии использовать CSVWriter.NO_QUOTE_CHARACTER, для остальных CSVWriter.DEFAULT_QUOTE_CHARACTER- Returns:
- Throws:
java.io.IOException
-
getIdsModulesFromConfig
public static java.util.List<java.lang.Integer> getIdsModulesFromConfig(Preferences config, java.lang.String subKey)Возвращает из конфига список id модулей по подключу. (Например, для выгрузки коммутаторов было выбрано несколько модулей inet, то вернётся список с выбранными модулями) -
getPairsMidsListIds
public static java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> getPairsMidsListIds(Preferences preferences, java.lang.String subKey)Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуля -
getInetDevices
public static java.util.List<Device> getInetDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров Inet -
getDialUpNasList
public static java.util.List<DialUpNAS> getDialUpNasList(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, boolean isSwitches) throws ru.bitel.bgbilling.common.BGExceptionсписок nas'ов модуля dialUp для выгрузки как коммутаторов- Parameters:
isSwitches
- если true, то вернётся список nas'ов выбранных в качестве коммутаторов, если false, то список в качестве шлюзов- Throws:
ru.bitel.bgbilling.common.BGException
-
getDialUpLogins
public static java.util.List<DialUpLogin> getDialUpLogins(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, java.util.List<SormContract> contracts) throws ru.bitel.bgbilling.common.BGExceptionПривязка договоров к логинам модуля DialUp.- Throws:
ru.bitel.bgbilling.common.BGException
-
getIPResources
public static java.util.Map<IpCategory,java.util.List<IpResource>> getIPResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемые -
getVoiceDevices
public static java.util.List<Device> getVoiceDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)Возвращает список устройств модуля Voice для выбранных модулей в конфиге -
getPhoneSources
public static java.util.List<Source> getPhoneSources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext context) -
getSelectedGateways
public static java.util.List<Device> getSelectedGateways(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)Возвращает список устройств, которые выбраны, как шлюзы оператора -
getBunches
Возвращает список пучков оператора сохранённых в конфиге -
getUploadVoiceNumberingResources
public static java.util.List<NumberRange> getUploadVoiceNumberingResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей Voice -
getUploadPhoneNumberingResources
public static java.util.List<NumberRange> getUploadPhoneNumberingResources(Preferences config, java.sql.Connection connection)Возвращает список номеров, которые должны быть выгружены для выбранных модулей phone -
getTelephoneModulesIds
public static java.util.Map<java.lang.String,java.util.List<java.lang.Integer>> getTelephoneModulesIds(Preferences config)Возвращает список выбранныз для выгрузки телефонных модулей- Returns:
- Map, где key - модуль phone или voice, value - список id соответствующего модуля установленного в биллинге
-
getVoiceModuleSubscriptionList
public static java.util.Map<java.lang.Integer,java.util.List<PhoneResourceSubscription>> getVoiceModuleSubscriptionList(java.util.List<java.lang.Integer> voiceModules, ru.bitel.bgbilling.kernel.container.managed.ServerContext context, Preferences config)- Parameters:
voiceModules
- - список id установленных модулей Voice- Returns:
- Map, где key - id модуля Voice, value - список подписок на ресурсы данного модуля за последние 3 года
-
checkThreeYearsAgo
public static boolean checkThreeYearsAgo(java.util.Date dateTo)Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки даты- Returns:
- true - если переданная дата была не раньше 3-х лет назад с текущего момента
-
getAddressList
public static java.util.List<Pair<java.lang.Integer,java.util.List<Pair<java.lang.String,java.lang.Integer>>>> getAddressList(Preferences config, java.util.List<SormContract> contracts)Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адреса -
getAddressType
public static java.lang.String getAddressType(java.lang.String configAddressKey)Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонента- Parameters:
configAddressKey
- - тип адреса из конфига- Returns:
- тип адреса (целое число в виде строки) из списка поставщиков MfiSoft или SpecTeh
-
ip2Hex
public static java.lang.String ip2Hex(java.lang.String ip)Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представление- Parameters:
ip
- вида 192.168.1.12- Returns:
- вида C0A88565
-
getDocumentsTypes
public static java.util.List<IdTitle> getDocumentsTypes(Preferences config, ContractParameterManager cpm) throws ru.bitel.bgbilling.common.BGExceptionВозвращает список документов из выбранного пользователем спискового параметра договора- Throws:
ru.bitel.bgbilling.common.BGException
-
getDocumentTypeIdOfContract
public static int getDocumentTypeIdOfContract(Preferences config, ContractParameterManager cpm, int cid, java.util.List<IdTitle> documentTypes) throws ru.bitel.bgbilling.common.BGExceptionВозвращает id типа документа для договора- Parameters:
config
- - конфиг выгрузкиcpm
-cid
- - id договораdocumentTypes
- - список типов документов- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getConnectionStandart
-
getParameterOfCity
public static java.lang.String getParameterOfCity(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, AddressManager addressManager, AddressStruct addressStruct, java.lang.String parameterKey) throws ru.bitel.bgbilling.common.BGExceptionВозвращает значение дополнительного параметра для города- Parameters:
parameterKey
- - ключ параметра, значение которого будет возвращеноaddressStruct
- - адрес из которого будет взят город, у которого будет взят параметр- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
checkValidAddress
Проверка адреса на заполненность обязательных для СОРМа полей- Returns:
- true - если все необходимые поля заполнены
-
getIPGatewayItem
Только для МФИСофт и Спец.Технологий! Для формирования файла IP_GATEWAY, т.к. для данных поставщиков структура файла одинакова- Parameters:
inetDevice
- устройство модуля inet- Returns:
- возвращает запись для файла IP_GATEWAY исходя из inetDevice
-
getFullOperatorAddress
Формирует адрес оператора одной строкой из конфигурации выгрузки- Returns:
- адресс оператора одной строкой
-
getInternalUsers
public static java.util.List<InternalUser> getInternalUsers(java.sql.Connection connection, ObjectManager objectManager, ParamValueManager valueManager, ru.bitel.bgbilling.modules.sorm.server.utils.SormUploadHelper uploadHelper, Preferences config) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
getAddressFromDeviceAttributes
-
getAlias
public static java.lang.String getAlias(java.sql.Connection connection, int voiceIpMid, int loginId)- Returns:
- alias по id логина для модуля VoiceIP
-
contractHasModule
public static boolean contractHasModule(java.sql.Connection connection, int moduleId, int contractId) -
formatDateToUTC
public static java.lang.String formatDateToUTC(java.util.Date date, java.lang.String pattern) -
formatDateToUTC
public static java.lang.String formatDateToUTC(java.util.Calendar date, java.lang.String pattern)
-