Код:
package ru.skyb.scripts.global;
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.*;
import java.util.Date;
import bitel.billing.server.util.MailMsg;
import ru.bitel.bgbilling.common.BGException;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.TimeUtils;
public class Dissolved
extends GlobalScriptBase
{
public String subject = "Уведомления ";
public String message = "какой то текст";
private MailMsg msg;
@Override
public void execute( Setup setup1, ConnectionSet connectionSet2 )
throws Exception
{
msg = new MailMsg( setup1 );
this.msg = msg;
StringBuilder mesg = new StringBuilder();
Connection con = connectionSet2.getConnection();
ContractParameterManager cpm = new ContractParameterManager( con );
Calendar nowDate = Calendar.getInstance();
ContractStatusManager csm = new ContractStatusManager(con);
ContractStatus ncs = new ContractStatus();
GregorianCalendar tomorrow = (GregorianCalendar) nowDate.clone();//клонируем дату для дальнейшей работы
tomorrow.add( Calendar.DAY_OF_MONTH, +1 );//прибавляем к сегодня, ещё 1 день
String query = " select id, title, date2, fc from contract where date2 is not null and gr&(1<<6)>0" ;
PreparedStatement contractPs = con.prepareStatement( query );
ResultSet contractRs = contractPs.executeQuery();
int i = 0;
while ( contractRs.next() )
{
int cid = contractRs.getInt( 1 );
String title = contractRs.getString( 2 );
Date date2 = contractRs.getDate( 3 );
int fc = contractRs.getInt( 4 );
Calendar closeDay = TimeUtils.convertDateToCalendar( date2 );
int compare = TimeUtils.compare(nowDate, closeDay , Calendar.DAY_OF_MONTH);
//Если дата закрытия равна сегодня, то делаем
if ( compare == 0 )
{
//Убираем группу у физиков и ставим свою группу для расторгнутых
if (fc == 0)
{
cpm.setGroup( cid, 5 );
cpm.unsetGroup( cid, 3 );
cpm.unsetGroup( cid, 6 );
SendMessages(message, msg);
//print("id физиков " + cid);
print ("Договор физик " + title + " Дата закрытия " + date2);
}
//Убираем группу у юриков и ставим свою группу для расторгнутых
if (fc == 1)
{
cpm.setGroup( cid, 2 );
cpm.unsetGroup( cid, 0 );
cpm.unsetGroup( cid, 6 );
SendMessages(message, msg);
//print("id юриков " + cid);
print ("Договор юрик " + title + " Дата закрытия " + date2);
}
ncs.setContractId(cid);
ncs.setDateFrom(TimeUtils.convertCalendarToDate(tomorrow));
ncs.setStatus(3);
csm.changeStatus(ncs, 0, true);
//print("id для сравнения правильности выполнения кода " + cid + " сегодня " + compare);
i++;
}
public void SendMessages (String message, MailMsg msg) throws BGException
{
String objects = "admin@admin.ru";
msg.sendMessage(objects, subject, message);
}
}
что то криво написано, писалось давно но работает =)
_________________
Код:
Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegramСтиль программирования - пьяный мастерстер
Разработка мобильных приложений