Есть скрипт
Код:
package ru.skyb.scripts.global.reestr;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.sql.Connection;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import ru.bitel.bgbilling.server.util.DefaultServerSetup;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.model.Page;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.mps.bean.MPSPayment;
import bitel.billing.server.mps.bean.MPSPaymentManager;
import bitel.billing.server.mps.bean.MPSPaymentManager.MPSPaymentList;
import bitel.billing.server.util.MailMsg;
public class tembrbank
extends GlobalScriptBase
{
@Override
public void execute( Setup setup1, ConnectionSet connectionSet2 )
throws Exception
{
Connection con = connectionSet2.getConnection();
//Calendar date = new GregorianCalendar(2010,3,1);
Calendar date = new GregorianCalendar();
date.setTime( new Date() );
date.add( Calendar.DATE, -1 );
Date from = date.getTime();
Date until = null;
int type = 3;
//номер системы
int service = 3;
long gr = 0L;
int mid = 5;
print("find payment for mid="+mid+"; service="+service+"; date="+date.getTime());
MPSPaymentManager manager = MPSPaymentManager.getInstance( service, setup1, mid );
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator( '.' );
DecimalFormat df = new DecimalFormat( "########0.00##", dfs );
Page page = new Page( 0, 0 );
MPSPaymentList paymentList = manager.getPaymentList( con, mid, service, from, until, type, gr, page );
String separator = ";";
final ByteArrayOutputStream bos = new ByteArrayOutputStream( 1000000 );
ZipOutputStream zos = new ZipOutputStream( bos );
zos.setLevel( -1 );
zos.putNextEntry( new ZipEntry( "payment_"+TimeUtils.format( date.getTime(), "dd_MM_yyyy" ) +".csv" ) );
//
PrintStream csvReport = new PrintStream( zos, false, "cp1251" );
int count = 0;
for( MPSPayment payment : paymentList.paymentList )
{
//номер в система провайдера
csvReport.append( String.valueOf( payment.getId()) );
csvReport.append( separator );
//номер в платежной системе
csvReport.append( payment.getTransId() );
csvReport.append( separator );
//лицевой счет
csvReport.append( payment.getContract() );
csvReport.append( separator );
//сумма
csvReport.append( df.format( payment.getSumm() ) );
csvReport.append( separator );
//дата
csvReport.append( TimeUtils.format( payment.getTime(), "dd.MM.yyyy HH:mm:ss" ) );
csvReport.append( separator );
//статус
String status = payment.getStatus() == 1 ? "0" : "1" ;
csvReport.append( status );
csvReport.append( separator );
//комментарий
csvReport.append( payment.getComment()==null?"":payment.getComment() );
csvReport.append( separator );
csvReport.append( '\n' );
count++;
}
csvReport.flush();
zos.closeEntry();
zos.flush();
zos.close();
print("find "+count+" payment");
final String fileName = "payment_"+TimeUtils.format( date.getTime(), "dd_MM_yyyy" ) +".zip";
//
MimeBodyPart attach = new MimeBodyPart();
DataSource ds = new DataSource()
{
public String getContentType()
{
return "application/zip";
}
public InputStream getInputStream() throws IOException
{
return new ByteArrayInputStream( bos.toByteArray() );
}
public String getName()
{
return fileName;
}
public OutputStream getOutputStream() throws IOException
{
return null;
}
};
//
attach.setDataHandler( new DataHandler( ds ) );
attach.setFileName( fileName );
//
String fullSubject ="prov "+TimeUtils.format( date.getTime(), "yyyyMMdd" );
//
StringBuilder messageBody = new StringBuilder();
messageBody.append( "Отчет по платежам c "+TimeUtils.format( date.getTime(), "dd.MM.yyyy" ) );
sendDetailMail( setup1, fullSubject, messageBody, attach );
}
protected void sendDetailMail( DefaultServerSetup setup, String subject,
StringBuilder messageBody, MimeBodyPart attach )
throws MessagingException
{
Multipart m = new MimeMultipart();
if( attach != null )
{
m.addBodyPart( attach );
}
//
String encoding = setup.getStringValue( "mail.encoding", "koi8-r" );
//
MimeBodyPart text = new MimeBodyPart();
text.setText( messageBody.toString(), encoding );
m.addBodyPart( text );
MailMsg msg = new MailMsg( setup );
msg.sendMessage( "mail@mail.ru", subject, m );
}
}
Проблема в том что даже до первого
Код:
print("find payment for mid="+mid+"; service="+service+"; date="+date.getTime());
не доходит, ошибок не выдает
_________________
Код:
Клиент: вер. 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Стиль программирования - пьяный мастерстер
Разработка мобильных приложений