java.lang.Object
ru.bitel.bgbilling.modules.sorm.server.utils.SormUtils

public final class SormUtils extends Object
Утильный класс, содержащий общеупотребимые методы для выгрузок СОРМ3.
  • Field Details

  • Constructor Details

    • SormUtils

      public SormUtils()
  • Method Details

    • getUploadContracts

      public static List<SormContract> getUploadContracts(Connection con, int sormProjectId, boolean isFullUpload, Preferences config)
      Получение списка id договоров, которые будут участвовать в выгрузке. Берет: 1-все договора после последнего выгруженного, если есть запись в таблице 2-все изменённые договора Критерии: договоры на которых: добавлен модуль СОРМ которые действуют или действовали последние 3 года есть один из модулей, которые были выбраны для выгрузки
      Parameters:
      con - - соединение с БД
      sormProjectId - - id проекта СОРМ для которого производится выгрузка.
      isFullUpload - - флаг, полная ли выгрузка базы абонентов производится или инкрементальная
      config - - конфигурация проекта СОРМ, в которой есть информация о выбранных для выгрузки модулей
    • clearChangedContractsTable

      public static void clearChangedContractsTable(Connection con, int lastContractId)
    • getLastUploadContractId

      public static int getLastUploadContractId(Connection con, int sormProjectId)
      Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМ
    • updateContractLogTable

      public static void updateContractLogTable(Connection con, int lastUploadCid, int sormProjectId) throws SQLException
      Обновляет информацию о последнем выгруженном договоре
      Parameters:
      lastUploadCid - - id последнего выгруженного договора
      sormProjectId - - id проекта выгрузки СОРМ
      Throws:
      SQLException
    • clearContractLogTable

      public static void clearContractLogTable(Connection con, int sormProjectId) throws ru.bitel.bgbilling.common.BGException
      Чистит запись о последнем выгруженном договоре для проекта СОРМ
      Parameters:
      sormProjectId - - id проекта СОРМ
      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

      public static List<Integer> getSelectedInetModulesToUpload(Preferences config)
      Returns:
      список id модулей inet, которые были выбраны для выгрузки
    • getListIntegerFromConfigByKey

      public static List<Integer> getListIntegerFromConfigByKey(Preferences config, String key)
      Возвращает список(Integer) сохранённых в конфиге по переданному ключу
    • getIdsServices

      public static List<Integer> getIdsServices(Preferences config) throws ru.bitel.bgbilling.common.BGException
      Returns:
      список id выбранных для выгрузки услуг оператора
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getSelectedServicesForUpload

      public static List<ServiceSorm> getSelectedServicesForUpload(Preferences config)
      Возвращает список услуг, которые были выбраны пользователем для выгрузки
    • sendErrorToEmail

      public static void sendErrorToEmail(Setup setup, Exception ex, String subject)
    • sendErrorToEmail

      public static void sendErrorToEmail(Setup setup, Exception ex, String subject, String email)
      В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору. Email задается при настройке выгрузки в модуле СОРМ, если не заполнен, то будет взять в конфигурации сервера в параметре alarm.mail
      Parameters:
      setup - конфигурация биллинга
      ex - экземпляр исключения. Из него берется сообщение об ошибке, а также печатается стектрейс
      subject - тема письма. Например, ошибка при выгрузке такого то файла, при формировании такого то списка и т.д.
    • trimField

      public static String trimField(String value, int length)
      Обрезает строку до указанной длины.
      Parameters:
      value - строка, длину которой, возможно, нужно сократить
      length - длина, до которой обрезаем строку
    • getUploadFile

      public static Path getUploadFile(String fileUploadPath, String filePrefix, String datePattern)
      Создает новый файл на диске по заданному пути
      Parameters:
      fileUploadPath - путь в локальной директории для создания файла
      filePrefix - префикс создаваемого файла
      datePattern - формат даты, которая должна присутствовать в названии файла
      Returns:
      объект типа файл в каталоге FILE_UPLOAD_PATH/
    • getAdminEmail

      public static String getAdminEmail(Preferences config)
      Возвращает указанный email для отправки информации по ошибкам
    • getCSVFile

      public static au.com.bytecode.opencsv.CSVWriter getCSVFile(Path file) throws IOException
      Throws:
      IOException
    • getCSVFile

      public static au.com.bytecode.opencsv.CSVWriter getCSVFile(Path file, String encoding) throws IOException
      Throws:
      IOException
    • getCSVFile

      public static au.com.bytecode.opencsv.CSVWriter getCSVFile(Path file, char quoteCharacter) throws IOException
      Throws:
      IOException
    • getCSVFile

      public static au.com.bytecode.opencsv.CSVWriter getCSVFile(Path path, Charset encoding, char quoteCharacter) throws IOException
      Throws:
      IOException
    • getCSVFile

      public static au.com.bytecode.opencsv.CSVWriter 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

      public static List<Integer> getIdsModulesFromConfig(Preferences config, String subKey)
      Возвращает из конфига список 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

      public static List<Bunch> getBunches(Preferences config)
      Возвращает список пучков оператора сохранённых в конфиге
    • 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

      public static Map<String,List<Integer>> getTelephoneModulesIds(Preferences config)
      Возвращает список выбранныз для выгрузки телефонных модулей
      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

      public static boolean checkThreeYearsAgo(Date dateTo)
      Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки даты
      Returns:
      true - если переданная дата была не раньше 3-х лет назад с текущего момента
    • getAddressList

      public static List<Pair<Integer,List<Pair<String,Integer>>>> getAddressList(Preferences config, List<SormContract> contracts)
      Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адреса
    • getAddressType

      public static String getAddressType(String configAddressKey)
      Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонента
      Parameters:
      configAddressKey - - тип адреса из конфига
      Returns:
      тип адреса (целое число в виде строки) из списка поставщиков MfiSoft или SpecTeh
    • ip2Hex

      public static String ip2Hex(String ip)
      Преобразование строки с 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, ContractParameterManager cpm, int cid, List<IdTitle> documentTypes) throws ru.bitel.bgbilling.common.BGException
      Возвращает id типа документа для договора
      Parameters:
      config - - конфиг выгрузки
      cpm -
      cid - - id договора
      documentTypes - - список типов документов
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getConnectionStandart

      public static String getConnectionStandart(Preferences config)
    • getParameterOfCity

      public static String getParameterOfCity(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, AddressManager addressManager, AddressStruct addressStruct, String parameterKey) throws ru.bitel.bgbilling.common.BGException
      Возвращает значение дополнительного параметра для города
      Parameters:
      parameterKey - - ключ параметра, значение которого будет возвращено
      addressStruct - - адрес из которого будет взят город, у которого будет взят параметр
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • checkValidAddress

      public static boolean checkValidAddress(AddressStruct address)
      Проверка адреса на заполненность обязательных для СОРМа полей
      Returns:
      true - если все необходимые поля заполнены
    • getIPGatewayItem

      public static String[] getIPGatewayItem(Device inetDevice, String regionId)
      Только для МФИСофт и Спец.Технологий! Для формирования файла IP_GATEWAY, т.к. для данных поставщиков структура файла одинакова
      Parameters:
      inetDevice - устройство модуля inet
      Returns:
      возвращает запись для файла IP_GATEWAY исходя из inetDevice
    • getFullOperatorAddress

      public static String getFullOperatorAddress(Preferences config)
      Формирует адрес оператора одной строкой из конфигурации выгрузки
      Returns:
      адресс оператора одной строкой
    • getInternalUsers

      public static List<InternalUser> getInternalUsers(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

      public static EntityAttrAddress getAddressFromDeviceAttributes(Device device)
    • getAlias

      public static String getAlias(Connection connection, int voiceIpMid, int loginId)
      Returns:
      alias по id логина для модуля VoiceIP
    • contractHasModule

      public static boolean contractHasModule(Connection connection, int moduleId, int contractId)