Subversion Repositories Sigmater

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
159 Andrea 1
package it.liguriadigitale.sxcrj.console.business.dbi.impl.level1;
2
 
3
import java.io.IOException;
4
import java.io.InputStream;
5
 
6
import javax.sql.rowset.serial.SerialException;
7
 
8
import org.apache.commons.io.IOUtils;
9
import org.apache.commons.logging.Log;
10
import org.apache.commons.logging.LogFactory;
11
 
12
import it.liguriadigitale.framework.business.BusinessHelper;
13
import it.liguriadigitale.framework.business.exceptions.BusinessException;
14
import it.liguriadigitale.sxcrj.console.integration.dao.dbi.common.TipoServizio;
15
import it.liguriadigitale.sxcrj.console.integration.dao.dbi.table.S3Ti03ServizirichiestiDAO;
16
import it.liguriadigitale.sxcrj.console.integration.dao.dbi.table.S3Ti27FileinterscambioFtpDAO;
17
import it.liguriadigitale.sxcrj.console.pojo.dbi.S3Ti03Servizirichiesti;
18
import it.liguriadigitale.sxcrj.console.pojo.dbi.S3Ti27FileinterscambioFtp;
19
import it.liguriadigitale.sxcrj.console.pojo.dbi.scarico.RichiestaScarico;
20
 
21
public class RecuperoFornituraFTP {
22
 
23
	protected Log		log								= LogFactory.getLog(this.getClass());
24
 
25
	public byte[] getFornituraFtp(RichiestaScarico richiesta) throws BusinessException{
26
 
27
		S3Ti03Servizirichiesti ti03servizioRichiesti = new S3Ti03Servizirichiesti();
28
		ti03servizioRichiesti.setTi03Progiscrizione(richiesta.getTi04Progiscrizione());
29
		S3Ti03ServizirichiestiDAO daoRichiesta = new S3Ti03ServizirichiestiDAO(ti03servizioRichiesti);
30
		BusinessHelper helper = new BusinessHelper(daoRichiesta);
31
		ti03servizioRichiesti = (S3Ti03Servizirichiesti) helper.cercaOggetto();
32
		if(ti03servizioRichiesti.getTi03Dataunatantum() != null){
33
			return scaricaDatiUnaTantum(richiesta);		
34
		} else {
35
			return scaricaDatiIncrementali(richiesta);		
36
		}
37
 
38
	}
39
 
40
	private byte[] scaricaDatiIncrementali(RichiestaScarico richiesta) throws BusinessException {
41
		S3Ti27FileinterscambioFtp fileinterscambioFtp = new S3Ti27FileinterscambioFtp();
42
		fileinterscambioFtp.setTi27Progiscrizione(richiesta.getTi04Progiscrizione());
43
		fileinterscambioFtp.setTi27PeriodoDa(richiesta.getTi04PeriodoDa());
44
		S3Ti27FileinterscambioFtpDAO dao = new S3Ti27FileinterscambioFtpDAO(fileinterscambioFtp);
45
		BusinessHelper helper = new BusinessHelper(dao);
46
		helper.setDao(dao);
47
		fileinterscambioFtp = (S3Ti27FileinterscambioFtp) helper.cercaOggettoByKey();
48
		if(fileinterscambioFtp != null && fileinterscambioFtp.getTi27FileDecryptato() != null){
49
			try(InputStream in = fileinterscambioFtp.getTi27FileDecryptato().getBinaryStream()){
50
				return IOUtils.toByteArray(in);
51
			} catch (SerialException | IOException e) {
52
				log.error("Errore estrazione dei files " + e.getMessage(),e);
53
				throw new BusinessException(e);
54
			}
55
		} else {
56
			throw new BusinessException("FILE INTERSCAMBIO NON TROVATO " + richiesta.getTi04Progiscrizione() + " per il periodo " + richiesta.getPeriodoDaXML());
57
		}
58
	}
59
 
60
 
61
	private byte[] scaricaDatiUnaTantum(RichiestaScarico richiesta) throws BusinessException {
62
		S3Ti27FileinterscambioFtp fileinterscambioFtp = new S3Ti27FileinterscambioFtp();
63
		fileinterscambioFtp.setTi27Progiscrizione(richiesta.getTi04Progiscrizione());
64
		S3Ti27FileinterscambioFtpDAO dao = new S3Ti27FileinterscambioFtpDAO(fileinterscambioFtp);
65
		BusinessHelper helper = new BusinessHelper(dao);
66
		helper.setDao(dao);
67
		fileinterscambioFtp = (S3Ti27FileinterscambioFtp) helper.cercaOggetto();
68
		if(fileinterscambioFtp != null && fileinterscambioFtp.getTi27FileDecryptato() != null){
69
			try(InputStream in = fileinterscambioFtp.getTi27FileDecryptato().getBinaryStream()){
70
				return IOUtils.toByteArray(in);
71
			} catch (SerialException | IOException e) {
72
				log.error("Errore estrazione dei files " + e.getMessage(),e);
73
				throw new BusinessException(e);
74
			}
75
		} else {
76
			throw new BusinessException("FILE INTERSCAMBIO NON TROVATO " + richiesta.getTi04Progiscrizione());
77
		}
78
	}
79
}