Организация отключения должников КТВ
Материал из BiTel WiKi
(5 промежуточных версий не показаны.) | |||
Строка 90: | Строка 90: | ||
<source lang="bash"> | <source lang="bash"> | ||
filter.1.type=status | filter.1.type=status | ||
- | filter.1.availableValues=2,3,5,1 | + | filter.1.availableValues=2,3,5,1 |
filter.1.defaultValues=2,3,5 | filter.1.defaultValues=2,3,5 | ||
filter.2.type=groups | filter.2.type=groups | ||
filter.2.defaultValues=3 | filter.2.defaultValues=3 | ||
filter.2.show=false | filter.2.show=false | ||
- | filter. | + | filter.2.type=executors |
- | + | ||
- | + | ||
column.1.title=ID | column.1.title=ID | ||
Строка 112: | Строка 110: | ||
column.12.value=actions | column.12.value=actions | ||
column.12.nowrap=1 | column.12.nowrap=1 | ||
- | |||
- | |||
- | |||
- | |||
- | |||
media.html.showColumns=1,3,5,7,9,12 | media.html.showColumns=1,3,5,7,9,12 | ||
Строка 126: | Строка 119: | ||
action.1.style=padding: 0.1em 0.3em; | action.1.style=padding: 0.1em 0.3em; | ||
action.1.commands=setStatus:3;open | 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> | </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
Используются следующие виды процессов:
- Должник - работа с должником, обзвон, увещевания, возможно разнос квитанций.
- Отключение должника - физическое отключение.
Настроенные типы процессов,их параметры и конфигурации.
Конфигурация типа "Должник":
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
Динамический класс 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 должны быть синхронизованы. Если процесс есть, а договора-должника уже нет (оплатил либо статус закрыт) - процесс "Должник" по этому договору закрывается.
В очереди процессов процесс должник выглядит следующим образом:
Процессы "Должник" обрабатываются диспетчерами. Статус "Принят" означает занятие процесса на обработку. "Ожидание оплаты" - процесс откладывается и после указанной даты переводится в "Открыт". "Отключение" - создаётся связанный процесс "Отключение должника", куда копируется описание.
Процессы "Отключение должника" выводятся в отдельной очереди и обрабатываются отдельной группой исполнителей. В конфигурации очереди настроены групповое переключение статусов и печать бланков извещений.
ФИО и сумма долга для бланка извлекаются из автоматически сгенерированного опаисания процесса. При необходимости в описание процесса возможно добавление примечаний после символа разделителя "----------".