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 java.lang.String
CHANGED_CONTRACT_UPLOAD_TABLE
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
clearContractLogTable(java.sql.Connection con, int sormProjectId)
Чистит запись о последнем выгруженном договоре для проекта СОРМ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.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 file, java.lang.String encoding, char quoteCharacter)
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, java.sql.Connection con)
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, int contractId, java.lang.String contractTitle, Preferences config)
static java.lang.String[]
getIPGatewayItem(Device inetDevice)
Только для МФИСофт и Спец.Технологий!static 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.List<Service>
getNpayServicesList(Preferences config, java.sql.Connection con)
Возвращает список услуг, которые были выбраны пользователем для выгрузки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.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
-
CHANGED_CONTRACT_UPLOAD_TABLE
public static final java.lang.String CHANGED_CONTRACT_UPLOAD_TABLE- See Also:
- Constant Field Values
-
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
- - конфигурация проекта СОРМ, в которой есть информация о выбранных для выгрузки модулей
-
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, java.sql.Connection con) throws ru.bitel.bgbilling.common.BGException- Returns:
- список id выбранных для выгрузки услуг оператора
- Throws:
ru.bitel.bgbilling.common.BGException
-
getNpayServicesList
public static java.util.List<Service> getNpayServicesList(Preferences config, java.sql.Connection con) throws ru.bitel.bgbilling.common.BGExceptionВозвращает список услуг, которые были выбраны пользователем для выгрузки- Throws:
ru.bitel.bgbilling.common.BGException
-
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 file, java.lang.String encoding, char quoteCharacter) throws java.io.IOException- Parameters:
file
- - созданный для записи файл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.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, int contractId, java.lang.String contractTitle, Preferences config) -
getAddressFromDeviceAttributes
-