forum.bitel.ru
http://forum.bitel.ru/

что ему не нравится? не могу понять
http://forum.bitel.ru/viewtopic.php?f=19&t=10577
Страница 1 из 1

Автор:  skyb [ 02 июн 2015, 13:15 ]
Заголовок сообщения:  что ему не нравится? не могу понять

Код:
package ru.skyb.scripts.global;

import bitel.billing.common.TimeUtils;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.Date;
import java.util.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.task.bean.RunTaskDataManager;
import bitel.billing.server.npay.*;
import bitel.billing.server.util.MailMsg;
//import ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent;

public class ActivateSevenDay
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup1, ConnectionSet connectionSet2 )
      throws Exception
   {
      int NPAY_MID = 9;
      StringBuilder sb = new StringBuilder();
      StringBuilder cids = new StringBuilder();
      Calendar dateTask = Calendar.getInstance();
      MailMsg msg = new MailMsg(setup1);
      String mail = "";
       // набор услуг, 0- все услуги
       int serviceSet = 0;
       //Комментарий задачи
       String comment = "";
       String email = "null";
      Connection con = connectionSet2.getConnection();
      ContractParameterManager cpm = new ContractParameterManager( con );
      ContractStatusManager csm = new ContractStatusManager(con);
      ContractManager cm = new ContractManager(con);
      ContractStatus ncs = new ContractStatus();
      Calendar nowDate = Calendar.getInstance();
      String subject = "";
      String query = " SELECT id, title, date1 FROM contract " +
                  " WHERE gr&(1<<3)>0 AND status = 5";
         PreparedStatement ps = con.prepareStatement(query);
         ResultSet rs = ps.executeQuery();
         while (rs.next())
         {
                int cid = rs.getInt(1);
                String title = rs.getString(2);
                Date date1 = rs.getDate(3);
                print("day " + TimeUtils.daysDelta(date1,TimeUtils.convertCalendarToDate(nowDate)));
                if ( TimeUtils.daysDelta(date1, TimeUtils.convertCalendarToDate(nowDate)) == 7 )
                   {
                      print(title);
                      cids.append( cid + "," );
                  cpm.unsetGroup( cid, 9 );
                  ncs.setContractId(cid);
                  ncs.setDateFrom(new Date());
                  ncs.setStatus(0);
                  ncs.setComment("Статус изменен автоматически в " + new Date());
                  csm.changeStatus(ncs, 0, true);
                  sb.append("id " + cid + " Договор " + title + " был разблокирован автоматически \n" + "Дата создания " + date1);
               }
          }
          String messages= sb.toString();
          if (!messages.isEmpty() || !messages.equals(""))
             {
                cids.deleteCharAt( cids.lastIndexOf( "," ) );
                new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, dateTask, email, serviceSet, cids.toString(), comment ) );

             }
   }

}

Код:
EXCEPTIONS:
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent cannot be cast to ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:202)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:270)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
    at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
    at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:906)
    at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:875)
    at bitel.billing.server.contract.bean.ContractStatusManager.changeStatus(ContractStatusManager.java:555)
    at ru.skyb.scripts.global.ActivateSevenDay.execute(ActivateSevenDay.java:60)
    at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.java:38)
    at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScriptParams(GlobalScriptServiceImpl.java:83)
    at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeJava(GlobalScriptTimer.java:106)
    at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:59)
    at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent cannot be cast to ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:203)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:257)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent cannot be cast to ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
    at ru.skyb.scripts.behavior.ChangeStatus.onEvent(ChangeStatus.java:21)
    at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:199)
    ... 7 more

Автор:  stark [ 02 июн 2015, 13:52 ]
Заголовок сообщения:  Re: что ему не нравится? не могу понять

skyb писал(а):
[/code]
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent cannot be cast to ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
at ru.skyb.scripts.behavior.ChangeStatus.onEvent(ChangeStatus.java:21)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:199)
... 7 more [/code]


А при чем тут этот класс ?

Автор:  Amir [ 02 июн 2015, 14:08 ]
Заголовок сообщения:  Re: что ему не нравится? не могу понять

Этот скрипт вызывает смену статуса, а на смену статуса висит ru.skyb.scripts.behavior.ChangeStatus.onEvent, в котором происходит ошибка - ContractStatusChangedEvent и ContractStatusChangingEvent.

Автор:  skyb [ 02 июн 2015, 14:11 ]
Заголовок сообщения:  Re: что ему не нравится? не могу понять

Тьху, запутался, спасибо

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/