Организация отключения должников КТВ

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Используются следующие виды процессов: # Должник - работа с должником, обзвон, увещевания, …»)
 
(6 промежуточных версий не показаны.)
Строка 12: Строка 12:
Конфигурация типа "Должник":
Конфигурация типа "Должник":
-
<pre>
+
<source lang="bash">
processCard.1.mode=card
processCard.1.mode=card
processCard.1.components=header,status,description,executors,params,links
processCard.1.components=header,status,description,executors,params,links
Строка 26: Строка 26:
processShowProcessLinks=1
processShowProcessLinks=1
-
</pre>
+
</source>
Конфигурация типа "Отключение должника":
Конфигурация типа "Отключение должника":
-
<pre>
+
<source lang="bash">
processCard.1.mode=card
processCard.1.mode=card
processCard.1.components=header,status,description,executors,params,links
processCard.1.components=header,status,description,executors,params,links
#
#
processShowProcessLinks=1
processShowProcessLinks=1
-
</pre>
+
</source>
 +
 
 +
Настройки очередей процессов "Должник" и "Отключение".
 +
 
 +
{|
 +
|- valign=top
 +
| [[Изображение:ktv_debt_queue_debt.png|thumb|300px|Очередь "Должник"]]
 +
| [[Изображение:ktv_debt_queue_disconnect.png|thumb|300px|Очередь "Отключение должника"]]
 +
|}
 +
 
 +
{|
 +
|- valign=top
 +
| Конфигурация очереди "Должник".
 +
<source lang="bash">
 +
filter.1.type=status
 +
filter.1.availableValues=2,3,5,1,6,7
 +
filter.1.defaultValues=2,3,5
 +
filter.2.type=groups
 +
filter.2.defaultValues=3
 +
filter.2.show=false
 +
filter.3.type=executors
 +
filter.4.type=description
 +
filter.5.type=code
 +
 
 +
column.1.title=ID
 +
column.1.value=id
 +
column.3.title=Адрес
 +
column.3.value=param:1
 +
column.5.title=Статус
 +
column.5.value=status_title
 +
column.7.title=Описание
 +
column.7.value=descriptionLink
 +
column.9.title=Исполнитель
 +
column.9.value=executors
 +
column.12.title=Действия
 +
column.12.value=actions
 +
column.12.nowrap=1
 +
 
 +
sort.combo.count=1
 +
sort.combo.1.default=1
 +
sort.mode.1.columnId=3
 +
sort.mode.1.title=Адрес
 +
 
 +
media.html.showColumns=1,3,5,7,9,12
 +
 
 +
actionShowMode=buttons
 +
action.1.title=Принять и открыть
 +
action.1.shortcut=ПО
 +
action.1.statusIds=2
 +
action.1.style=padding: 0.1em 0.3em;
 +
action.1.commands=setStatus:3;open
 +
</source>
 +
|               
 +
| Конфигурация очереди "Отключение должника".
 +
<source lang="bash">
 +
filter.1.type=status
 +
filter.1.availableValues=2,3,5,1
 +
filter.1.defaultValues=2,3,5
 +
filter.2.type=groups
 +
filter.2.defaultValues=3
 +
filter.2.show=false
 +
filter.2.type=executors
 +
 
 +
column.1.title=ID
 +
column.1.value=id
 +
column.3.title=Адрес
 +
column.3.value=param:1
 +
column.5.title=Статус
 +
column.5.value=status_title
 +
column.7.title=Описание
 +
column.7.value=descriptionLink
 +
column.9.title=Исполнитель
 +
column.9.value=executors
 +
column.12.title=Действия
 +
column.12.value=actions
 +
column.12.nowrap=1
 +
 
 +
media.html.showColumns=1,3,5,7,9,12
 +
 
 +
actionShowMode=buttons
 +
action.1.title=Принять и открыть
 +
action.1.shortcut=ПО
 +
action.1.statusIds=2
 +
action.1.style=padding: 0.1em 0.3em;
 +
action.1.commands=setStatus:3;open
 +
 
 +
processor.1.title=Назначить
 +
processor.1.class=ru.bgcrm.event.listener.DefaultMarkedProcessor
 +
processor.1.page=/WEB-INF/jspf/user/process/queue/default_marked_processor.jsp
 +
processor.1.commands=setStatus:2,3;addExecutors:1
 +
#
 +
processor.2.title=Печать
 +
processor.2.class=ru.bgcrm.event.listener.DefaultMarkedProcessor
 +
processor.2.commands=print:100
 +
processor.2.responseType=file
 +
</source>
 +
|}
 +
 
 +
Конфигурация шаблона модуля Document и сами шаблоны для распечатки нарядов на отключение:
 +
<source lang="java">
 +
#
 +
# печать из очереди должников
 +
document:pattern.101.title=BLANK
 +
document:pattern.101.scope=processQueue
 +
document:pattern.101.script=ru.bgcrm.plugin.document.docgen.CommonDocumentGenerator
 +
document:pattern.101.xslt=docpattern/ktv_blank.xsl
 +
document:pattern.101.type=xsltHtml
 +
document:pattern.101.documentTitle=blank.html
 +
</source>
 +
 
 +
Файлы ktv_blank.xsl - в docpattern; KtvDebtManager.java, KtvDebtWaitRestore.java - в dyn/ru/bgcrm/dyn/sofit
 +
 
 +
[[Файл: ktv_debt_files.zip]]
 +
 
 +
Динамический класс ru.bgcrm.dyn.sofit.KtvDebtWaitRestore переводит процессы, помеченные на повторный обзвон вновь в открытый статус по истечению даты.
 +
 
 +
Класс ru.bgcrm.dyn.sofit.KtvDebtManager периодически производит выборку договоров-должников из базы биллинга, привязанной к конфигурации биллинга с идентификатором sofit.
 +
База должна быть только для чтения, сконфигурирована примерно подобным образом:
 +
<source lang="bash">
 +
# Биллинги
 +
bgbilling:server.1.id=sofit
 +
bgbilling:server.1.title=SOFIT
 +
bgbilling:server.1.url=http://810.788.253.825:8080/bgbilling/executer
 +
bgbilling:server.1.version=6.0
 +
bgbilling:server.1.db.driver=com.mysql.jdbc.Driver
 +
# при  characterEncoding=windows-1251 были проблемы в запросах с установкой русских символов
 +
bgbilling:server.1.db.url=jdbc:mysql://592.768.177.377:3306/bgbilling?jdbcCompliantTruncation=false&useUnicode=true&characterEncoding=UTF-8
 +
bgbilling:server.1.db.user=dsdfbrm
 +
bgbilling:server.1.db.pswd=xxxxxxx
 +
</source>
 +
 
 +
Для каждого найденного договора-должника создаётся процесс типа "Должник", если его нет.
 +
Необходимо скорректировать в Java коде критерии выборки должников в этом месте:
 +
<source lang="java">
 +
// -------------------------------------
 +
// условия выборки договоров - должников
 +
 +
// базовый - код группы 25 - сумма долга 744 руб
 +
processContracts( getContracts( conBilling, 1L<<25, null, new BigDecimal( -744 ) ), contractDebtProcesses, con );
 +
// код тарифа - 26, долг - 720 и выше
 +
processContracts( getContracts( conBilling, null, 26, new BigDecimal( -720 ) ), contractDebtProcesses, con );
 +
</source>
 +
 
 +
В описание процесса извлекаются адрес (в параметры), телефон, остаток и ФИО должника (в описание).
 +
Адресные справочники биллинга и BGCRM должны быть [[Синхронизация справочников адресов с BGBilling | синхронизованы]].
 +
Если процесс есть, а договора-должника уже нет (оплатил либо статус закрыт) - процесс "Должник" по этому договору закрывается.
 +
 
 +
В очереди процессов процесс должник выглядит следующим образом:
 +
{|
 +
|- valign=top
 +
| [[Изображение:ktv_debt_queue_view_debt.png|thumb|300px|Очередь "Должник"]]
 +
| [[Изображение:ktv_debt_proces_debt.png|thumb|300px|Процес "Должник"]]
 +
|}
 +
 
 +
Процессы "Должник" обрабатываются диспетчерами. Статус "Принят" означает занятие процесса на обработку.
 +
"Ожидание оплаты" - процесс откладывается и после указанной даты переводится в "Открыт".
 +
"Отключение" - создаётся связанный процесс "Отключение должника", куда копируется описание.
 +
 
 +
Процессы "Отключение должника" выводятся в отдельной очереди и обрабатываются отдельной группой исполнителей.
 +
В конфигурации очереди настроены групповое переключение статусов и печать бланков извещений.
 +
{|
 +
|- valign=top
 +
| [[Изображение:ktv_debt_queue_disconnect_view.png|thumb|300px|Очередь "Отключение должников"]]
 +
| [[Изображение:ktv_debt_queue_disconnect_actions.png|thumb|300px|Доп действия в очереди]]
 +
| [[Изображение:ktv_debt_queue_disconnect_blank.png|thumb|300px|Вид бланка]]
 +
|}
 +
 
 +
ФИО и сумма долга для бланка извлекаются из автоматически сгенерированного опаисания процесса. При необходимости в описание процесса возможно добавление примечаний после символа разделителя "----------".

Текущая версия на 11:10, 21 апреля 2014

Используются следующие виды процессов:

  1. Должник - работа с должником, обзвон, увещевания, возможно разнос квитанций.
  2. Отключение должника - физическое отключение.

Настроенные типы процессов,их параметры и конфигурации.

Типы процессов
Процесс "Должник"
Процесс "Отключение должника"

Конфигурация типа "Должник":

processCard.1.mode=card
processCard.1.components=header,status,description,executors,params,links
#
onProcessEvent.1.events=statusChanged:3
onProcessEvent.1.ifExpression=process.getExecutorIds().size() == 0
onProcessEvent.1.commands=addExecutors:{@ctxUserId}
#
onProcessEvent.2.events=linkAdded;createdAsLink
onProcessEvent.2.commands=bgbilling:getLinkedContractAddressParam:sofit:26:1
#
requireFillParamIdsBeforeStatusSet.5=2
 
processShowProcessLinks=1

Конфигурация типа "Отключение должника":

processCard.1.mode=card
processCard.1.components=header,status,description,executors,params,links
#
processShowProcessLinks=1

Настройки очередей процессов "Должник" и "Отключение".

Очередь "Должник"
Очередь "Отключение должника"
Конфигурация очереди "Должник".
filter.1.type=status
filter.1.availableValues=2,3,5,1,6,7
filter.1.defaultValues=2,3,5
filter.2.type=groups
filter.2.defaultValues=3
filter.2.show=false
filter.3.type=executors
filter.4.type=description
filter.5.type=code
 
column.1.title=ID
column.1.value=id
column.3.title=Адрес
column.3.value=param:1
column.5.title=Статус
column.5.value=status_title
column.7.title=Описание
column.7.value=descriptionLink
column.9.title=Исполнитель
column.9.value=executors
column.12.title=Действия
column.12.value=actions
column.12.nowrap=1
 
sort.combo.count=1
sort.combo.1.default=1
sort.mode.1.columnId=3
sort.mode.1.title=Адрес
 
media.html.showColumns=1,3,5,7,9,12
 
actionShowMode=buttons
action.1.title=Принять и открыть
action.1.shortcut=ПО
action.1.statusIds=2
action.1.style=padding: 0.1em 0.3em;
action.1.commands=setStatus:3;open
Конфигурация очереди "Отключение должника".
filter.1.type=status
filter.1.availableValues=2,3,5,1
filter.1.defaultValues=2,3,5
filter.2.type=groups
filter.2.defaultValues=3
filter.2.show=false
filter.2.type=executors
 
column.1.title=ID
column.1.value=id
column.3.title=Адрес
column.3.value=param:1
column.5.title=Статус
column.5.value=status_title
column.7.title=Описание
column.7.value=descriptionLink
column.9.title=Исполнитель
column.9.value=executors
column.12.title=Действия
column.12.value=actions
column.12.nowrap=1
 
media.html.showColumns=1,3,5,7,9,12
 
actionShowMode=buttons
action.1.title=Принять и открыть
action.1.shortcut=ПО
action.1.statusIds=2
action.1.style=padding: 0.1em 0.3em;
action.1.commands=setStatus:3;open
 
processor.1.title=Назначить
processor.1.class=ru.bgcrm.event.listener.DefaultMarkedProcessor
processor.1.page=/WEB-INF/jspf/user/process/queue/default_marked_processor.jsp
processor.1.commands=setStatus:2,3;addExecutors:1
#
processor.2.title=Печать
processor.2.class=ru.bgcrm.event.listener.DefaultMarkedProcessor
processor.2.commands=print:100
processor.2.responseType=file

Конфигурация шаблона модуля Document и сами шаблоны для распечатки нарядов на отключение:

#
# печать из очереди должников
document:pattern.101.title=BLANK
document:pattern.101.scope=processQueue
document:pattern.101.script=ru.bgcrm.plugin.document.docgen.CommonDocumentGenerator
document:pattern.101.xslt=docpattern/ktv_blank.xsl
document:pattern.101.type=xsltHtml
document:pattern.101.documentTitle=blank.html

Файлы ktv_blank.xsl - в docpattern; KtvDebtManager.java, KtvDebtWaitRestore.java - в dyn/ru/bgcrm/dyn/sofit

Файл:Ktv debt files.zip

Динамический класс ru.bgcrm.dyn.sofit.KtvDebtWaitRestore переводит процессы, помеченные на повторный обзвон вновь в открытый статус по истечению даты.

Класс ru.bgcrm.dyn.sofit.KtvDebtManager периодически производит выборку договоров-должников из базы биллинга, привязанной к конфигурации биллинга с идентификатором sofit. База должна быть только для чтения, сконфигурирована примерно подобным образом:

# Биллинги
bgbilling:server.1.id=sofit
bgbilling:server.1.title=SOFIT
bgbilling:server.1.url=http://810.788.253.825:8080/bgbilling/executer
bgbilling:server.1.version=6.0
bgbilling:server.1.db.driver=com.mysql.jdbc.Driver
# при  characterEncoding=windows-1251 были проблемы в запросах с установкой русских символов
bgbilling:server.1.db.url=jdbc:mysql://592.768.177.377:3306/bgbilling?jdbcCompliantTruncation=false&useUnicode=true&characterEncoding=UTF-8
bgbilling:server.1.db.user=dsdfbrm
bgbilling:server.1.db.pswd=xxxxxxx

Для каждого найденного договора-должника создаётся процесс типа "Должник", если его нет. Необходимо скорректировать в Java коде критерии выборки должников в этом месте:

// -------------------------------------
// условия выборки договоров - должников
 
// базовый - код группы 25 - сумма долга 744 руб
processContracts( getContracts( conBilling, 1L<<25, null, new BigDecimal( -744 ) ), contractDebtProcesses, con );			
// код тарифа - 26, долг - 720 и выше
processContracts( getContracts( conBilling, null, 26, new BigDecimal( -720 ) ), contractDebtProcesses, con );

В описание процесса извлекаются адрес (в параметры), телефон, остаток и ФИО должника (в описание). Адресные справочники биллинга и BGCRM должны быть синхронизованы. Если процесс есть, а договора-должника уже нет (оплатил либо статус закрыт) - процесс "Должник" по этому договору закрывается.

В очереди процессов процесс должник выглядит следующим образом:

Очередь "Должник"
Процес "Должник"

Процессы "Должник" обрабатываются диспетчерами. Статус "Принят" означает занятие процесса на обработку. "Ожидание оплаты" - процесс откладывается и после указанной даты переводится в "Открыт". "Отключение" - создаётся связанный процесс "Отключение должника", куда копируется описание.

Процессы "Отключение должника" выводятся в отдельной очереди и обрабатываются отдельной группой исполнителей. В конфигурации очереди настроены групповое переключение статусов и печать бланков извещений.

Очередь "Отключение должников"
Доп действия в очереди
Вид бланка

ФИО и сумма долга для бланка извлекаются из автоматически сгенерированного опаисания процесса. При необходимости в описание процесса возможно добавление примечаний после символа разделителя "----------".

Личные инструменты