Точим скрипты под 6.0.
Вот с одним уперся. Помогите разобраться
Скрипт:
Код:
import bitel.billing.server.util.*;
import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.npay.bean.*;
import java.math.*;
import bitel.billing.server.task.bean.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.npay.*;
import bitel.billing.common.KernelConst;
import ru.bitel.common.*;
import ru.bitel.bgbilling.modules.npay.server.*;
import java.util.*;
import java.sql.*;
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/contract" );
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/crm" );
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/trial" );
public void onEvent( event, setup, con, conSlave )
{
task = event.getTask();
ttid = task.getTypeId();
print("Проверяем ТИП закрываемой задачи");
if ( ttid == 1 ) { // Тип задачи 1 - Подключение к сети
print("ОК, закрыли задачу ТИПА 'подключение к сети'");
Calendar now = new GregorianCalendar();
ContractManager cm = new ContractManager( con );
cid = event.getContractId();
Contract contract = cm.getContractById( cid );
// для дебитовых договоров открываем триал-период
if ( contract.getBalanceMode() != Contract.CREDIT_BALANCE_MODE ) {
// добавляем в группу тестирования
addToGroup( con, cid, GROUP_TRIAL );
// в группу живых договоров
addToGroup( con, cid, GROUP_INET_ACTIVE );
// удаляем из группы очереди подключения
deleteFromGroup( con, cid, GROUP_JOIN_PROC );
// устанавливаем дату начала предоставления услуг
cpu = new ContractParamUtils( con );
cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 );
// смотрим есть ли персональный тестовый период
tp = cpu.getStringParam( cid, PARAM_TRIAL_PERIOD );
if ( tp == null ) {
tp = DAYS_TEST_PERIOD;
}
// открываем договор
setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация тестового периода на "+tp+" дн" );
}
// для кредитовых договоров активируем договор, создаем АП
else {
// открываем договор
setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация договора после подключения" );
Calendar startMonth = TimeUtils.getStartMonth( now );
Calendar endMonth = TimeUtils.getEndMonth( now );
ServiceObjectManager som = new ServiceObjectManager( con, NPAY_MID );
BalanceUtils bu = new BalanceUtils( con );
// проверка наличия абонплаты
List serviceObjectList = som.getServiceObjectList( cid, null );
isServiceExist = false;
for( ServiceObject s : serviceObjectList )
{
if( s.getServiceId() == ABON_SID )
{
print( "Abon already exists" );
isServiceExist = true;
}
}
// открытие абонплаты
if ( !isServiceExist ) {
print( "Add AP" );
ServiceObject serviceObject = new ServiceObject();
serviceObject.setContractId( cid );
serviceObject.setServiceId( ABON_SID );
serviceObject.setDate1( TimeUtils.convertCalendarToDate( now ) );
serviceObjectList.clear();
serviceObjectList.add( serviceObject );
som.updateServiceObject( serviceObject );
}
print( "Active date: " + TimeUtils.formatDate( now ) );
print( "Calс abon to date: " + TimeUtils.formatDate( endMonth ) );
BigDecimal planAccount = BigDecimal.ZERO;
// предначисление до конца месяца
Calculator calculator = new Calculator();
calculator.setExecutingTime( endMonth );
calculator.setPreCalc();
calculator.setActiveFromDate( now );
calculator.setServiceObjectList( serviceObjectList );
calculator.initTask( setup, 0, "mid=" + NPAY_MID );
calculator.setCids( String.valueOf( cid ) );
calculator.startTask();
print( "Precalc for time: " + TimeUtils.formatDate( endMonth ) );
if( calculator.isCalcErrors() )
{
print( "Precalc to end month errors!" );
return;
}
Map planAccountMap = calculator.getCostCache().getContractAccounts();
if( planAccountMap.get( cid ) == null )
{
print( "Can't calculate plan account" );
}
planAccount = planAccountMap.get( cid );
print( "planAccount=" + planAccount );
// запуск реального начисления
new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, now, null, 0, String.valueOf( cid ), "Автоматическое открытие абонплаты" ) );
// в группу живых договоров
addToGroup( con, cid, GROUP_INET_ACTIVE );
// удаляем из группы очереди подключения
deleteFromGroup( con, cid, GROUP_JOIN_PROC );
// устанавливаем дату начала предоставления услуг
cpu = new ContractParamUtils( con );
cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 );
}
}
}
Лог отработки:
Код:
12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Caught event: ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent
12-24/10:09:15 INFO [scrpt-evnt-lstnr-p-4-t-2] ScriptInstance - Invoke method Function [id:71; title:Закрытие задачи на подключение] : onEvent
12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
12-24/10:09:15 INFO [scrpt-evnt-lstnr-p-4-t-3] ScriptInstance - Invoke method Function [id:49; title:Изменение группы в соответствии со статусом договора] : onEvent
12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Process time => 169
12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Проверяем ТИП закрываемой задачи
ОК, закрыли задачу ТИПА 'подключение к сети'
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'val' cannot be null
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.reflect.Constructor.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.Util.getInstance(Util.java:386)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1339)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:825)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bitel.billing.server.contract.bean.ContractParameterManager.updateDateParam(ContractParameterManager.java:240)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bitel.billing.server.contract.bean.ContractParameterManager.setDateParam(ContractParameterManager.java:198)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.reflect.Method.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Reflect.invokeMethod(Reflect.java:137)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Reflect.invokeObjectMethod(Reflect.java:83)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Name.invokeMethod(Name.java:858)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:47)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invokeImpl(BshMethod.java:362)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:258)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:186)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.This.invokeMethod(This.java:255)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.This.invokeMethod(This.java:174)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:385)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$Invoker.runScriptImpl(ScriptEventListener.java:116)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:353)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.access$0(ScriptEventListener.java:1)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener$1.call(ScriptEventListener.java:454)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.FutureTask.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.Thread.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 26
12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Статус:0
Добавляем в группу 'Недостаточно средств'
Удаляем из группы 'Недостаточно средств'