271 lines
12 KiB
Java
271 lines
12 KiB
Java
package it.valueteam.gnp.manager;
|
|
|
|
import it.valueteam.gnp.dao.db.hb.*;
|
|
import it.valueteam.gnp.dao.xml.dbcfxgo.dbcfxtodbcfxgo.NOT_NNG_TYPE;
|
|
import it.valueteam.gnp.systemcontroller.dbcfxgo.DbcfxgoController;
|
|
import it.valueteam.gnp.utility.DateUtils;
|
|
import it.valueteam.gnp.utility.StateManager;
|
|
import org.hibernate.Criteria;
|
|
import org.hibernate.criterion.Criterion;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.hibernate.criterion.SimpleExpression;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
public class RequestManagerNngRec {
|
|
|
|
final static String PROCESSO_RECIPIENT_NNG = "NNG_REC";
|
|
final static String PROCESSO_RESTITUZIONE_OLO = "RESTITUZIONE_OLO";
|
|
|
|
// quando è 1 è recipient
|
|
public static void createFenpRichiesteOut(GnpDbcfxgoInNng103 dbcfxgoInRec, GnpRichiesteNngRec richiesta) throws Exception {
|
|
|
|
GnpNngFenpRichOut fenpRichiesteOut = new GnpNngFenpRichOut();
|
|
GnpFenpRichiesteOutDAO fenpOutDAO = new GnpFenpRichiesteOutDAO();
|
|
GnpNngFenpRichOutDAO outRichDAO = new GnpNngFenpRichOutDAO();
|
|
|
|
fenpRichiesteOut.setDaProcessare(1L);
|
|
fenpRichiesteOut.setDataCreazione(new Date());
|
|
|
|
if (dbcfxgoInRec.getTipoComunicazione() == 3 || dbcfxgoInRec.getTipoComunicazione() == 5 ||
|
|
dbcfxgoInRec.getTipoComunicazione() == 12) {
|
|
fenpRichiesteOut.setTipoNotifica("NNGBROAD");
|
|
} else if (dbcfxgoInRec.getTipoComunicazione() == 7 || dbcfxgoInRec.getTipoComunicazione() == 8){
|
|
fenpRichiesteOut.setTipoNotifica("NNGDOUBLE");
|
|
} else {
|
|
fenpRichiesteOut.setTipoNotifica("NPNNG");
|
|
}
|
|
|
|
String tipoComunicazione = String.valueOf(dbcfxgoInRec.getTipoComunicazione());
|
|
|
|
fenpRichiesteOut.setCodOpRecipient(richiesta.getOpRecipient());
|
|
fenpRichiesteOut.setTipoComunicazione(tipoComunicazione);
|
|
fenpRichiesteOut.setDataOrdine(richiesta.getDataOperazione());
|
|
fenpRichiesteOut.setNng(richiesta.getNng());
|
|
fenpRichiesteOut.setDac(richiesta.getDac());
|
|
fenpRichiesteOut.setCodOp(dbcfxgoInRec.getCodOperatore());
|
|
fenpRichiesteOut.setCodOpDonating(richiesta.getCow());
|
|
fenpRichiesteOut.setCodiceProgetto(richiesta.getCodiceProgetto());
|
|
fenpRichiesteOut.setIdRichiesta(richiesta.getIdRichiesta());
|
|
|
|
if (tipoComunicazione.equals("4") || tipoComunicazione.equals("5")
|
|
|| tipoComunicazione.equals("6")) {
|
|
fenpRichiesteOut.setDataEspletamento(dbcfxgoInRec.getDataEspletamento());
|
|
}
|
|
|
|
if (tipoComunicazione.equals("5") || tipoComunicazione.equals("6")) {
|
|
fenpRichiesteOut.setStatoOrdine(String.valueOf(dbcfxgoInRec.getStato()));
|
|
}
|
|
|
|
if (tipoComunicazione.equals("1")){
|
|
fenpRichiesteOut.setTipoServizio(richiesta.getTipoServizio());
|
|
fenpRichiesteOut.setCodFiscale(richiesta.getCodiceFiscale());
|
|
fenpRichiesteOut.setPartitaIva(richiesta.getPartitaIva());
|
|
fenpRichiesteOut.setCodOpRecipient("TLC"); //schiantato TLC per recipient
|
|
}
|
|
|
|
if (tipoComunicazione.equals("7")) {
|
|
fenpRichiesteOut.setDac(richiesta.getDac());
|
|
fenpRichiesteOut.setRdac(dbcfxgoInRec.getRdac());
|
|
}
|
|
|
|
if (tipoComunicazione.equals("9") || tipoComunicazione.equals("12") ) {
|
|
fenpRichiesteOut.setCodOpReturning(richiesta.getOpRecipient());
|
|
}
|
|
|
|
if (tipoComunicazione.equals("12") ) {
|
|
fenpRichiesteOut.setCodOp(dbcfxgoInRec.getCodOperatore());
|
|
fenpRichiesteOut.setStatoOrdine("3");
|
|
}
|
|
|
|
if (tipoComunicazione.equals("1") || tipoComunicazione.equals("9")) {
|
|
fenpRichiesteOut.setCodiceOrdine(fenpOutDAO.getNewCodiceOrdine());
|
|
|
|
} else if (tipoComunicazione.equals("7") || tipoComunicazione.equals("8")) {
|
|
List<Criterion> criterion = new ArrayList<Criterion>();
|
|
criterion.add(Restrictions.eq(GnpNngFenpRichOutDAO.HB_TIPO_COMUNICAZIONE, "1"));
|
|
criterion.add(Restrictions.eq(GnpNngFenpRichOutDAO.HB_ID_RICHIESTA, richiesta.getIdRichiesta()));
|
|
|
|
if (outRichDAO.findByCriteria(criterion) != null && outRichDAO.findByCriteria(criterion).size() > 0) {
|
|
GnpNngFenpRichOut tc1 = (GnpNngFenpRichOut) outRichDAO.findByCriteria(criterion).get(0);
|
|
fenpRichiesteOut.setCodOpDonating(tc1.getCodOpDonating());
|
|
fenpRichiesteOut.setCodiceProgetto(tc1.getCodiceProgetto());
|
|
fenpRichiesteOut.setCodiceOrdine(tc1.getCodiceOrdine());
|
|
}
|
|
} else {
|
|
fenpRichiesteOut.setCodiceOrdine(dbcfxgoInRec.getCodiceOrdine());
|
|
}
|
|
|
|
if (fenpRichiesteOut.getTipoNotifica().equals("NNGDOUBLE")){
|
|
// SALVA 2 COPIE PER DOPPIO INVIO
|
|
GnpNngFenpRichOut copiaRichiesta = new GnpNngFenpRichOut();
|
|
copiaRichiesta.setIdRichiesta(richiesta.getIdRichiesta());
|
|
copiaRichiesta.setDataOrdine(fenpRichiesteOut.getDataOrdine());
|
|
copiaRichiesta.setCodiceOrdine(fenpRichiesteOut.getCodiceOrdine());
|
|
copiaRichiesta.setCodiceProgetto(fenpRichiesteOut.getCodiceProgetto());
|
|
copiaRichiesta.setCodOpDonating(fenpRichiesteOut.getCodOpDonating());
|
|
copiaRichiesta.setCodOp(fenpRichiesteOut.getCodOp());
|
|
copiaRichiesta.setTipoComunicazione(fenpRichiesteOut.getTipoComunicazione());
|
|
copiaRichiesta.setDataCreazione(fenpRichiesteOut.getDataCreazione());
|
|
copiaRichiesta.setDaProcessare(1L);
|
|
copiaRichiesta.setNng(fenpRichiesteOut.getNng());
|
|
copiaRichiesta.setCodOpRecipient(fenpRichiesteOut.getCodOpRecipient());
|
|
copiaRichiesta.setDac(richiesta.getDac());
|
|
copiaRichiesta.setRdac(dbcfxgoInRec.getRdac());
|
|
fenpRichiesteOut.setTipoNotifica("NPNNG");
|
|
outRichDAO.save(fenpRichiesteOut);
|
|
copiaRichiesta.setTipoNotifica("NNGBROAD");
|
|
outRichDAO.save(copiaRichiesta);
|
|
} else {
|
|
outRichDAO.save(fenpRichiesteOut); //SAVE
|
|
}
|
|
|
|
}
|
|
|
|
// avanzamento da DBCFXGOController
|
|
public static void avanzamentoNngRec(GnpDbcfxgoInNng103 dbcfxgoInRec, String mail) throws Exception {
|
|
GnpRichiesteNngRecDAO nngRecDAO = new GnpRichiesteNngRecDAO();
|
|
GnpDbcfxgoInNng103DAO nngDao = new GnpDbcfxgoInNng103DAO();
|
|
if (dbcfxgoInRec.getTipoComunicazione() == 1){
|
|
//creo nuova NNG REC
|
|
GnpRichiesteNngRec nuovaRec = avanzaStatoInInserita(dbcfxgoInRec, PROCESSO_RECIPIENT_NNG);
|
|
nuovaRec.setEmail(mail);
|
|
nngRecDAO.save(nuovaRec);
|
|
dbcfxgoInRec.setIdRichiesta(nuovaRec.getIdRichiesta());
|
|
createFenpRichiesteOut(dbcfxgoInRec, nuovaRec);
|
|
|
|
} else if (dbcfxgoInRec.getTipoComunicazione() == 9) {
|
|
GnpRichiesteNngRec nuovaRestituzione = avanzaStatoInInserita(dbcfxgoInRec, PROCESSO_RESTITUZIONE_OLO);
|
|
nuovaRestituzione.setEmail(mail);
|
|
nngRecDAO.save(nuovaRestituzione);
|
|
dbcfxgoInRec.setIdRichiesta(nuovaRestituzione.getIdRichiesta());
|
|
createFenpRichiesteOut(dbcfxgoInRec, nuovaRestituzione);
|
|
} else {
|
|
ArrayList<SimpleExpression> criterion = new ArrayList<SimpleExpression>();
|
|
criterion.add(Restrictions.eq(GnpRichiesteNngRecDAO.HIB_ID_ESIGENZA, dbcfxgoInRec.getIdEsigenza()));
|
|
GnpRichiesteNngRec richiesta = (GnpRichiesteNngRec) nngRecDAO.findByCriteria(criterion).get(0);
|
|
if (richiesta != null) {
|
|
dbcfxgoInRec.setIdRichiesta(richiesta.getIdRichiesta());
|
|
if ((5 == dbcfxgoInRec.getTipoComunicazione()) || (6 == dbcfxgoInRec.getTipoComunicazione())) {
|
|
dbcfxgoInRec.setDataEspletamento(dbcfxgoInRec.getDataEspletamento());
|
|
}
|
|
if (6 == dbcfxgoInRec.getTipoComunicazione()) {
|
|
avanzaStatoInEspletata(richiesta);
|
|
}
|
|
if (dbcfxgoInRec.getTipoComunicazione()==8) {
|
|
avanzaStatoInAnnullata(richiesta);
|
|
}
|
|
if (dbcfxgoInRec.getTipoComunicazione()==7) {
|
|
if (dbcfxgoInRec.getRdac().before(richiesta.getDac()) ||
|
|
dbcfxgoInRec.getRdac().equals(richiesta.getDac())) {
|
|
//ignorata
|
|
} else {
|
|
createFenpRichiesteOut(dbcfxgoInRec, richiesta);
|
|
richiesta.setDac(dbcfxgoInRec.getRdac());
|
|
}
|
|
} else {
|
|
createFenpRichiesteOut(dbcfxgoInRec, richiesta);
|
|
}
|
|
nngRecDAO.merge(richiesta);
|
|
} else {
|
|
// se per sbaglio è entrata una Donating, andiamo a cercarla là
|
|
RequestManagerNngDon.avanzamentoNngDon(dbcfxgoInRec);
|
|
}
|
|
}
|
|
dbcfxgoInRec.setDaScodare(0L); // aggiorna la scodata
|
|
nngDao.merge(dbcfxgoInRec);
|
|
}
|
|
|
|
public static GnpRichiesteNngRec avanzaStatoInInserita(GnpDbcfxgoInNng103 dbcfxgoInRec, String processo) throws Exception{
|
|
|
|
GnpRichiesteNngRec richiesta = new GnpRichiesteNngRec();
|
|
|
|
int statoPartenza = StateManager.RICHIESTA_NON_PRESENTE;
|
|
|
|
richiesta.setProcesso(processo);
|
|
richiesta.setIdEsigenza(dbcfxgoInRec.getIdEsigenza());
|
|
richiesta.setStato(Long.valueOf(1));
|
|
richiesta.setDaInviare(Long.valueOf(1));
|
|
richiesta.setNng(dbcfxgoInRec.getNng());
|
|
richiesta.setDataOperazione(dbcfxgoInRec.getDataOrdine());
|
|
richiesta.setCodiceProgetto(dbcfxgoInRec.getCodiceProgetto());
|
|
if (dbcfxgoInRec.getTipoServizio() != null) {
|
|
richiesta.setTipoServizio(String.valueOf(dbcfxgoInRec.getTipoServizio()));
|
|
}
|
|
|
|
if (processo.equals(PROCESSO_RECIPIENT_NNG)) {
|
|
richiesta.setOpRecipient(dbcfxgoInRec.getCor());
|
|
richiesta.setPartitaIva(dbcfxgoInRec.getPartitaIva());
|
|
richiesta.setCodiceFiscale(dbcfxgoInRec.getCodFiscale());
|
|
richiesta.setCow(dbcfxgoInRec.getCow());
|
|
richiesta.setDac(dbcfxgoInRec.getDac());
|
|
} else {
|
|
richiesta.setOpRecipient(dbcfxgoInRec.getCor());
|
|
richiesta.setCow(dbcfxgoInRec.getCow());
|
|
}
|
|
|
|
return richiesta;
|
|
}
|
|
|
|
public static void avanzamentoNngRec(GnpRichiesteNngRec richiesta, GnpNngFenpRichIn fenpRichIn) throws Exception {
|
|
|
|
GnpRichiesteNngRecDAO richDAO = new GnpRichiesteNngRecDAO();
|
|
String tipoComunicazione = fenpRichIn.getTipoComunicazione();
|
|
if (richiesta != null) {
|
|
if ("2".equals(tipoComunicazione)) {
|
|
if ("1".equals(fenpRichIn.getStatoOrdine())){
|
|
richiesta.setCodRifiuto(fenpRichIn.getCodMotivoRifiuto());
|
|
richiesta.setDescRifiuto(fenpRichIn.getDescMotivoRifiuto());
|
|
avanzaStatoInRifiutata(richiesta);
|
|
} else {
|
|
avanzaStatoInAccettata(richiesta);
|
|
}
|
|
|
|
} else if ("10".equals(tipoComunicazione)) {
|
|
richiesta.setCodRifiuto(fenpRichIn.getCodMotivoRifiuto());
|
|
richiesta.setDescRifiuto(fenpRichIn.getDescMotivoRifiuto());
|
|
avanzaStatoInRifiutata(richiesta);
|
|
} else if ("11".equals(tipoComunicazione)) {
|
|
richiesta.setCow(fenpRichIn.getCodOpDonating());
|
|
avanzaStatoInAccettata(richiesta);
|
|
}
|
|
richDAO.merge(richiesta);
|
|
// invio GO
|
|
DbcfxgoController.getInstance().inviaNotificaDbcfxGo(richiesta, fenpRichIn);
|
|
}
|
|
|
|
}
|
|
|
|
//triggerato da OLO CONTROLLER
|
|
public static void avanzaStatoInInviataFenp(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(2));
|
|
}
|
|
|
|
public static void avanzaStatoInAccettata(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(3));
|
|
}
|
|
|
|
public static void avanzaStatoInRifiutata(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(4));
|
|
|
|
}
|
|
|
|
private static void avanzaStatoInAnnullata(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(7));
|
|
}
|
|
|
|
//triggerato da DbcfxGoController
|
|
public static void avanzaStatoInInviataGo(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(5));
|
|
new GnpRichiesteNngRecDAO().merge(richiesta);
|
|
}
|
|
|
|
public static void avanzaStatoInEspletata(GnpRichiesteNngRec richiesta) {
|
|
richiesta.setStato(Long.valueOf(6));
|
|
}
|
|
|
|
|
|
}
|