Примеры технических отчётов

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

В данной статье приведены примеры технических отчётов, которые сотрудники поддержки делают при решении задач - часто это короткие отчеты для каких-то специфичных кейсов.

Такие отчёты создаются при решении кейсов на уровне поддержки SLA4

Примеры

Просмотр текущих прав доступа к типам адресных единиц для задачи SUP-632439

Выводит настроенные права доступа к справочнику "Типы адресных единиц"

select
    agp.id,
    ag.name,
    ap.codename
from
    auth_permission ap
left join
    AUTH_GROUP_PERMISSIONS as agp
    on agp.PERMISSION_ID = ap.id
left join
    AUTH_GROUP as ag
    on ag.id = agp.group_id
where
    ap.codename like 'modelperm_HomeTypeName%' order by agp.id

Пояснение структуры хранения данных в справочнике адресов по задаче SUP-594716

  1. Основные данные (страна, улица, номер дома) хранятся в таблице HOMES
  2. Основная таблица связана с таблицей типы адресных единицы (это строение, дом, микрорайон, улица, область или край и тд), название таблицы - HOME_TYPE_NAME
  3. Еще есть служебное поле с типом записи справочника дома - нужно для верного построения дерева домов, таблица называется HOME_TYPES

Ниже сам запрос и пример полученных данных

Запрос
select first 1
    HOMES.ID "ID дома",
    HOMES.ZIP_CODE "Индекс",
    HOME_TYPE.NAME "Служебный тип",
    HOMES.COUNTRY "Страна",
    REGION_TYPE."FULL" "Тип региона",
    HOMES.REGION "Регион",
    CITY_TYPE."FULL" "Тип нас.пункта",
    HOMES.CITY "Нас. пункт",
    SETTLEMENT_TYPE."FULL" "Тип поселения",
    HOMES.SETTLEMENT "Поселение",
    STREET_TYPE."FULL" "Тип улицы",
    HOMES.STREET "Улица",
    S_NUMBER_TYPE."FULL" "Тип строения",
    HOMES.S_NUMBER "Номер строения",
    KLADR_ID "ID в ФИАС",
    UNRESTRICTED_VALUE "Адрес строкой"
from HOMES
    left join HOME_TYPES as HOME_TYPE on HOMES.HOME_TYPES_ID=HOME_TYPE.ID
    left join HOME_TYPE_NAME as CITY_TYPE on HOMES.CITY_TYPE_ID=CITY_TYPE.ID
    left join HOME_TYPE_NAME as DISTRICT_TYPE on HOMES.DISTRICT_TYPE_ID=DISTRICT_TYPE.ID
    left join HOME_TYPE_NAME as REGION_TYPE on HOMES.REGION_TYPE_ID=REGION_TYPE.ID
    left join HOME_TYPE_NAME as SETTLEMENT_TYPE on HOMES.SETTLEMENT_TYPE_ID=SETTLEMENT_TYPE.ID
    left join HOME_TYPE_NAME as STREET_TYPE on HOMES.STREET_TYPE_ID=STREET_TYPE.ID
    left join HOME_TYPE_NAME as S_NUMBER_TYPE on HOMES.S_NUMBER_TYPE_ID=S_NUMBER_TYPE.ID
    left join HOME_TYPE_NAME as S_LITER_TYPE on HOMES.S_LITER_TYPE_ID=S_LITER_TYPE.ID
order by HOMES.ID desc
Пример данных
ID дома 2409
Индекс 665831
Служебный тип Строение
Страна Россия
Тип региона область
Регион Иркутская
Тип нас.пункта город
Нас. пункт Ангарск
Тип поселения микрорайон
Поселение Байкальск
Тип улицы улица
Улица Торговая
Тип строения дом
Номер строения 10
ID в ФИАС 3800000400010560005
Адрес строкой 665831, Иркутская обл, г Ангарск, мкр Байкальск, ул Торговая, д 10

Дубли реквизитов, задача SUP-645914

Отчёт находит абонентов с дублями реквизитов.

Абоненту можно добавить несколько экземпляров одного и того же реквизита (например, если нужно добавить несколько телефонов или файлов). Но в некоторых случаях это может создавать проблемы - например, при интеграции с СОРМ.

Отчёт покажет какие реквизиты у каких абонентов задублированы.

Последнее текстовое поле нужно поправить "под себя" - укажите там IP-адрес Вашего биллинга вместо 10.0.0.1

select
    *
from
    (select
        count(*) cnt,
        ua.name attr_name,
        av.attribute_id attr_id,
        av.abonent_id abon_id,
        a.name abon_name,
        'http://10.0.0.1:8082/admin/Abonents/' || av.abonent_id || '/?tab=tab1147' url_to_abon_attrs
    from
        ATTRIBUTE_VALUES av
    join
        USER_ATTRIBUTES ua
        on av.attribute_id=ua.attribute_id
    join
        abonents a
    on
        av.abonent_id=a.id
    group by
        2,3,4,5,6)
where
    cnt>1
order by
    4,5,1 desc

Учётные записи с логином равным номеру договора другого абонента, задача SUP-650800

При создании абонента, создаётся и учётная запись с логином соответствующим номеру договора, поэтому маловероятно что такой логин будет использоваться у како-то другого абонента.

Тем неменее, такую ситуацию можно воспроизвести при интеграции IPTV, когда отдельная услуга создаёт учетную запись, в результате "второму" абоненту не будет добавлена новая учетная запись, а система мониторинга создаст автозаявку о проблеме.

Чтобы проблема не возникала, лучше не создавать ситуацию когда номер договора соответствует логину учетной записи другого абонента. Отчёт позволит найти таких абонентов.

Отчёт покажет проблемных абонентов
select
    u.abonent_id,
    u.login,
    a.id,
    a.contract_number
from
    users u
join
    abonents a
    on u.login=a.contract_number
    and u.abonent_id<>a.id
where
    a.is_folder=0
Отчёт покажет количество проблемных абонентов
select
    count(*)
from users u
join abonents a on u.login=a.contract_number and u.abonent_id<>a.id
where a.is_folder=0

Отчет со списком абонентов, подключивших оповещение через Telegram. SUP-651766

Номер договора, ФИО, ID
select
A.CONTRACT_NUMBER as "Номер договора",
A.Name as "ФИО",
TLG.ATTRIBUTE_VALUE as "ID Telegram"
from ABONENTS A
left join ATTRIBUTE_VALUES TLG on TLG.ABONENT_ID=A.ID and TLG.ATTRIBUTE_ID=1002
where
A.is_folder=0
and A.deleted=0
and TLG.ATTRIBUTE_VALUE!=0

Количество точек подключения по адресам SUP-633846

Отчёт покажет только адреса, на которых есть хотя бы одна точка подключения.

select 
    count(*),
    h.street "Улица",
    h.s_number "Номер дома",
    h.id "ID дома"
from 
    connection_points cp 
join 
    homes h 
    on cp.home_id=h.id 
group by 
    2,3,4 
order by 
    3,4

Точки подключения по выбранному адресу SUP-633846

Отчёт покажет только точки подключения, в которых выбран коммутатор и порт

select 
    cp.id "ID точки п.",
    case 
        when coalesce(sp.name,'')<>'' then sp.name ||', ' || uf_ip2string(sw.ip)
        when coalesce(sp.num,-100)<>-100 then sp.num ||', ' || uf_ip2string(sw.ip)
        else ''
    end "Коммутатор/порт",
    cp.socket "Розетка",
    '(ID ' || h.id ||'), ' || h.street ||', ' || h.s_number ||', ' || cp.flat "Адрес",
    case
        when cp.abonent_id is not null then (select a.id || ' ' || a.name from abonents a where a.id=cp.abonent_id)
        when cp.user_id is not null then (select u.id || ' ' || u.login from users u where u.id=cp.user_id)
        else 'Свободно'
    end "Кем занято"
from 
    connection_points cp 
join 
    homes h 
    on cp.home_id=h.id 
join 
    switch_ports sp 
    on cp.switch_p_id=sp.id
join 
    switch sw
    on sp.switch_id=sw.id
where 
    cp.home_id = ':Дом|select[Homes,home_types_id=6]$'
order by 
    h.id,cp.flat

Проверка дублей портов SUP-633846

Порты заведённые с одним наименованием более одного раза

select 
    * 
from (select 
        count(*) cnt,
        sp.switch_id,
        sp.name 
    from 
        switch_ports sp 
    where
        coalesce(name,'')<>'' 
    group by 
        sp.switch_id,
        sp.name
    ) 
where 
    cnt>1 
order by 

1 desc


Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.