Class SormUtils
java.lang.Object
ru.bitel.bgbilling.modules.sorm.server.utils.SormUtils
Утильный класс, содержащий общеупотребимые методы для выгрузок СОРМ3.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
checkThreeYearsAgo
(Date dateTo) Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки датыstatic boolean
checkValidAddress
(AddressStruct address) Проверка адреса на заполненность обязательных для СОРМа полейstatic void
clearChangedContractsTable
(Connection con, int moduleId) static void
clearContractLogTable
(Connection con, int sormProjectId, int sormModuleId) Чистит запись о последнем выгруженном договоре для проекта СОРМstatic boolean
contractHasModule
(Connection connection, int moduleId, int contractId) static String
formatDateToUTC
(Calendar date, String pattern) static String
formatDateToUTC
(Date date, String pattern) static EntityAttrAddress
getAddressFromDeviceAttributes
(Device<?, ?> device) getAddressList
(Preferences config, List<SormContract> contracts) Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адресаstatic String
getAddressType
(String configAddressKey) Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонентаstatic String
getAdminEmail
(Preferences config) Возвращает указанный email для отправки информации по ошибкамstatic String
getAlias
(Connection connection, int voiceIpMid, int loginId) getBunches
(Preferences config) Возвращает список пучков оператора сохранённых в конфигеstatic String
getConnectionStandart
(Preferences config) static SormCSVWriter
getCSVFile
(Path file) static SormCSVWriter
getCSVFile
(Path file, char quoteCharacter) static SormCSVWriter
getCSVFile
(Path file, String encoding) static SormCSVWriter
getCSVFile
(Path path, Charset encoding, char quoteCharacter) static SormCSVWriter
getCSVFile
(Path path, Charset charset, char quoteCharacter, char separator) static List<DialUpLogin>
getDialUpLogins
(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, List<SormContract> contracts) Привязка договоров к логинам модуля DialUp.getDialUpNasList
(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, boolean isSwitches) список nas'ов модуля dialUp для выгрузки как коммутаторовgetDocumentsTypes
(Preferences config, ContractParameterManager cpm) Возвращает список документов из выбранного пользователем спискового параметра договораstatic int
getDocumentTypeIdOfContract
(Preferences config, ContractDao contractDao, int contractId, List<IdTitle> documentTypes) Возвращает id типа документа для договораstatic String
getFullOperatorAddress
(Preferences config) Формирует адрес оператора одной строкой из конфигурации выгрузкиgetIdsModulesFromConfig
(Preferences config, String subKey) Возвращает из конфига список id модулей по подключу.getIdsServices
(Preferences config) getInetDevices
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров InetgetInetServices
(Preferences preferences, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, List<SormContract> contractIds) static List<InternalUser>
getInternalUsers
(Connection connection, ObjectManager objectManager, ContractObjectDao contractObjectDao, ru.bitel.bgbilling.modules.sorm.server.utils.SormUploadHelper uploadHelper, Preferences config) static String[]
getIPGatewayItem
(Device inetDevice, String regionId) Только для МФИСофт и Спец.Технологий!static Map<IpCategory,
List<IpResource>> getIPResources
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемыеstatic int
getLastUploadContractId
(Connection con, int sormModuleId, int sormProjectId) Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМgetListIntegerFromConfigByKey
(Preferences config, String key) Возвращает список(Integer) сохранённых в конфиге по переданному ключуgetPairsAbonentInetServices
(Preferences config, List<SormContract> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Получение списка сервисов всех установленных модулей Inet с уникальными ip-адресами всех договоров, которые возвращает метод getContractIdsgetPairsAbonentInetServicesByContractIds
(Preferences config, List<Integer> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) static Map<Integer,
List<VoiceAccount>> getPairsAbonentVoiceAccountsByContractIds
(Preferences config, List<Integer> contractIds, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) getPairsMidsListIds
(Preferences preferences, String subKey) Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуляstatic String
getParameterOfCity
(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImpl, int houseId, String parameterKey) static String
getParameterOfCity
(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImpl, AddressStruct addressStruct, String parameterKey) Возвращает значение дополнительного параметра для городаgetPhoneSources
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext context) getSelectedGateways
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств, которые выбраны, как шлюзы оператораstatic List<ServiceSorm>
Возвращает список услуг, которые были выбраны пользователем для выгрузкиgetTelephoneModulesIds
(Preferences config) Возвращает список выбранныз для выгрузки телефонных модулейstatic List<SormContract>
getUploadContracts
(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation) Получение списка id договоров, которые будут участвовать в выгрузке.static List<SormContract>
getUploadContracts
(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation, boolean forFullUpload) Флаг для полной выгрузки или инкрементальной сделан, т.к. для некоторых типов выгрузок (логины абонентов для ВасЭкспертс) требуется полный список договоров всегда, несмотря на то, что сама выгрузка инкрементальнаяstatic Path
getUploadFile
(String fileUploadPath, String filePrefix, String datePattern) Создает новый файл на диске по заданному путиstatic List<NumberRange>
getUploadPhoneNumberingResources
(Preferences config, Connection connection) Возвращает список номеров, которые должны быть выгружены для выбранных модулей phonestatic List<NumberRange>
getUploadVoiceNumberingResources
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей VoicegetVoiceDevices
(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств модуля Voice для выбранных модулей в конфигеstatic Map<Integer,
List<PhoneResourceSubscription>> getVoiceModuleSubscriptionList
(List<Integer> voiceModules, ru.bitel.bgbilling.kernel.container.managed.ServerContext context, Preferences config) static String
Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представлениеstatic void
sendErrorToEmail
(Setup setup, Exception ex, String subject) static void
sendErrorToEmail
(Setup setup, Exception ex, String subject, String email) В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору.static String
Обрезает строку до указанной длины.static void
updateContractLogTable
(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation) Обновляет информацию о последнем выгруженном договоре
-
Field Details
-
PARAMETER_KEY_REGION
- See Also:
-
PARAMETER_KEY_ZONE
- See Also:
-
CSV_SEPARATOR
public static final char CSV_SEPARATOR- See Also:
-
sormModuleId
public static int sormModuleId
-
-
Constructor Details
-
SormUtils
public SormUtils()
-
-
Method Details
-
getUploadContracts
public static List<SormContract> getUploadContracts(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation, boolean forFullUpload) Флаг для полной выгрузки или инкрементальной сделан, т.к. для некоторых типов выгрузок (логины абонентов для ВасЭкспертс) требуется полный список договоров всегда, несмотря на то, что сама выгрузка инкрементальная- Parameters:
uploadImplementation
- реализация выгрузкиforFullUpload
- флаг, полный список договоров или только изменения- Returns:
-
getUploadContracts
public static List<SormContract> getUploadContracts(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation) Получение списка id договоров, которые будут участвовать в выгрузке. Берет: 1-все договора после последнего выгруженного, если есть запись в таблице 2-все изменённые договора Критерии: договоры на которых: добавлен модуль СОРМ которые действуют или действовали последние 3 года есть один из модулей, которые были выбраны для выгрузки -
clearChangedContractsTable
-
getLastUploadContractId
Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМ -
updateContractLogTable
public static void updateContractLogTable(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImplementation) throws SQLException Обновляет информацию о последнем выгруженном договоре- Parameters:
uploadImplementation
- - реализация выгрузки- Throws:
SQLException
-
clearContractLogTable
public static void clearContractLogTable(Connection con, int sormProjectId, int sormModuleId) throws ru.bitel.bgbilling.common.BGException Чистит запись о последнем выгруженном договоре для проекта СОРМ- Parameters:
sormProjectId
- - id проекта СОРМ- Throws:
ru.bitel.bgbilling.common.BGException
-
getPairsAbonentInetServicesByContractIds
public static Map<Integer,List<InetServ>> getPairsAbonentInetServicesByContractIds(Preferences config, List<Integer> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getPairsAbonentVoiceAccountsByContractIds
public static Map<Integer,List<VoiceAccount>> getPairsAbonentVoiceAccountsByContractIds(Preferences config, List<Integer> contractIds, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getPairsAbonentInetServices
public static Map<Integer,List<InetServ>> getPairsAbonentInetServices(Preferences config, 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 List<InetServ> getInetServices(Preferences preferences, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, List<SormContract> contractIds) throws ru.bitel.bgbilling.common.BGException - Returns:
- список сервисов всех установленных экземпляров модулей инета, которые были отмечены для выгрузки
- Throws:
ru.bitel.bgbilling.common.BGException
-
getSelectedInetModulesToUpload
- Returns:
- список id модулей inet, которые были выбраны для выгрузки
-
getListIntegerFromConfigByKey
Возвращает список(Integer) сохранённых в конфиге по переданному ключу -
getIdsServices
public static List<Integer> getIdsServices(Preferences config) throws ru.bitel.bgbilling.common.BGException - Returns:
- список id выбранных для выгрузки услуг оператора
- Throws:
ru.bitel.bgbilling.common.BGException
-
getSelectedServicesForUpload
Возвращает список услуг, которые были выбраны пользователем для выгрузки -
sendErrorToEmail
-
sendErrorToEmail
В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору. Email задается при настройке выгрузки в модуле СОРМ, если не заполнен, то будет взять в конфигурации сервера в параметре alarm.mail- Parameters:
setup
- конфигурация биллингаex
- экземпляр исключения. Из него берется сообщение об ошибке, а также печатается стектрейсsubject
- тема письма. Например, ошибка при выгрузке такого то файла, при формировании такого то списка и т.д.
-
trimField
Обрезает строку до указанной длины.- Parameters:
value
- строка, длину которой, возможно, нужно сократитьlength
- длина, до которой обрезаем строку
-
getUploadFile
Создает новый файл на диске по заданному пути- Parameters:
fileUploadPath
- путь в локальной директории для создания файлаfilePrefix
- префикс создаваемого файлаdatePattern
- формат даты, которая должна присутствовать в названии файла- Returns:
- объект типа файл в каталоге FILE_UPLOAD_PATH/
-
getAdminEmail
Возвращает указанный email для отправки информации по ошибкам -
getCSVFile
- Throws:
IOException
-
getCSVFile
- Throws:
IOException
-
getCSVFile
- Throws:
IOException
-
getCSVFile
public static SormCSVWriter getCSVFile(Path path, Charset encoding, char quoteCharacter) throws IOException - Throws:
IOException
-
getCSVFile
public static SormCSVWriter getCSVFile(Path path, Charset charset, char quoteCharacter, char separator) throws IOException - Parameters:
path
- - созданный для записи файлquoteCharacter
- - Для поставщика Специальные Технологии использовать CSVWriter.NO_QUOTE_CHARACTER, для остальных CSVWriter.DEFAULT_QUOTE_CHARACTER- Returns:
- Throws:
IOException
-
getIdsModulesFromConfig
Возвращает из конфига список id модулей по подключу. (Например, для выгрузки коммутаторов было выбрано несколько модулей inet, то вернётся список с выбранными модулями) -
getPairsMidsListIds
public static Map<Integer,List<Integer>> getPairsMidsListIds(Preferences preferences, String subKey) Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуля -
getInetDevices
public static List<Device> getInetDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров Inet -
getDialUpNasList
public static 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 List<DialUpLogin> getDialUpLogins(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, List<SormContract> contracts) throws ru.bitel.bgbilling.common.BGException Привязка договоров к логинам модуля DialUp.- Throws:
ru.bitel.bgbilling.common.BGException
-
getIPResources
public static Map<IpCategory,List<IpResource>> getIPResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемые -
getVoiceDevices
public static List<Device> getVoiceDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств модуля Voice для выбранных модулей в конфиге -
getPhoneSources
public static List<Source> getPhoneSources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext context) -
getSelectedGateways
public static List<Device> getSelectedGateways(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список устройств, которые выбраны, как шлюзы оператора -
getBunches
Возвращает список пучков оператора сохранённых в конфиге -
getUploadVoiceNumberingResources
public static List<NumberRange> getUploadVoiceNumberingResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext) Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей Voice -
getUploadPhoneNumberingResources
public static List<NumberRange> getUploadPhoneNumberingResources(Preferences config, Connection connection) Возвращает список номеров, которые должны быть выгружены для выбранных модулей phone -
getTelephoneModulesIds
Возвращает список выбранныз для выгрузки телефонных модулей- Returns:
- Map, где key - модуль phone или voice, value - список id соответствующего модуля установленного в биллинге
-
getVoiceModuleSubscriptionList
public static Map<Integer,List<PhoneResourceSubscription>> getVoiceModuleSubscriptionList(List<Integer> voiceModules, ru.bitel.bgbilling.kernel.container.managed.ServerContext context, Preferences config) - Parameters:
voiceModules
- - список id установленных модулей Voice- Returns:
- Map, где key - id модуля Voice, value - список подписок на ресурсы данного модуля за последние 3 года
-
checkThreeYearsAgo
Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки даты- Returns:
- true - если переданная дата была не раньше 3-х лет назад с текущего момента
-
getAddressList
public static List<Pair<Integer,List<Pair<String, getAddressListInteger>>>> (Preferences config, List<SormContract> contracts) Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адреса -
getAddressType
Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонента- Parameters:
configAddressKey
- - тип адреса из конфига- Returns:
- тип адреса (целое число в виде строки) из списка поставщиков MfiSoft или SpecTeh
-
ip2Hex
Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представление- Parameters:
ip
- вида 192.168.1.12- Returns:
- вида C0A88565
-
getDocumentsTypes
public static 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, ContractDao contractDao, int contractId, List<IdTitle> documentTypes) throws ru.bitel.bgbilling.common.BGException Возвращает id типа документа для договора- Parameters:
config
- - конфиг выгрузкиcontractDao
-contractId
- - id договораdocumentTypes
- - список типов документов- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getConnectionStandart
-
getParameterOfCity
public static String getParameterOfCity(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImpl, AddressStruct addressStruct, String parameterKey) throws ru.bitel.bgbilling.common.BGException Возвращает значение дополнительного параметра для города- Parameters:
parameterKey
- - ключ параметра, значение которого будет возвращеноaddressStruct
- - адрес из которого будет взят город, у которого будет взят параметр, если в конфигурации не установлен пользователем ключ- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getParameterOfCity
public static String getParameterOfCity(ru.bitel.bgbilling.modules.sorm.server.upload.Upload uploadImpl, int houseId, String parameterKey) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
checkValidAddress
Проверка адреса на заполненность обязательных для СОРМа полей- Returns:
- true - если все необходимые поля заполнены
-
getIPGatewayItem
Только для МФИСофт и Спец.Технологий! Для формирования файла IP_GATEWAY, т.к. для данных поставщиков структура файла одинакова- Parameters:
inetDevice
- устройство модуля inet- Returns:
- возвращает запись для файла IP_GATEWAY исходя из inetDevice
-
getFullOperatorAddress
Формирует адрес оператора одной строкой из конфигурации выгрузки- Returns:
- адресс оператора одной строкой
-
getInternalUsers
public static List<InternalUser> getInternalUsers(Connection connection, ObjectManager objectManager, ContractObjectDao contractObjectDao, 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
- Returns:
- alias по id логина для модуля VoiceIP
-
contractHasModule
-
formatDateToUTC
-
formatDateToUTC
-