Finish Hotfix-96
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -57,127 +57,138 @@ public class SicilianiDMSExportService {
|
|||||||
multiDBTransactionManager.addConnection(profileDBAlyante);
|
multiDBTransactionManager.addConnection(profileDBAlyante);
|
||||||
Connection conAlyante = multiDBTransactionManager.getDatabaseDataSource(profileDBAlyante).getConnection();
|
Connection conAlyante = multiDBTransactionManager.getDatabaseDataSource(profileDBAlyante).getConnection();
|
||||||
|
|
||||||
// ACQUISIZIONE ELENCO RIGHE ORDINE SU CUI E' STATA CAMBIATA LA DATA CONSEGNA
|
try {
|
||||||
sql =
|
|
||||||
" SELECT dtb_ordr_local.key_ord, " +
|
|
||||||
" dtb_ordr_local.riga_ord, " +
|
|
||||||
" dtb_ordr_local.data_cons, " +
|
|
||||||
" (dvw_ordr.qta_ord_pz - dtb_ordr_local.qta_taglio) as qta_ass, " +
|
|
||||||
" dtb_ordr_local.flag_evaso_forzato, " +
|
|
||||||
" CASE WHEN dtb_ordr_local.qta_taglio = 0 THEN dvw_ordr.qta_ord_kg ELSE (dvw_ordr.qta_ord_pz - dtb_ordr_local.qta_taglio)* mtb_aart.peso_medio END as peso, " +
|
|
||||||
" dtb_ordr_local.key_ord_alyante, " +
|
|
||||||
" CASE WHEN dtb_date_scadenza.key_ord IS NULL THEN 'N' ELSE 'S' END as existOrd " +
|
|
||||||
" FROM dtb_ordr_local LEFT OUTER JOIN " + serverObject + ".dtb_date_scadenza ON dtb_ordr_local.key_ord_alyante = dtb_date_scadenza.key_ord COLLATE Latin1_General_100_CI_AS, " +
|
|
||||||
" dvw_ordr, " +
|
|
||||||
" dvw_ordt, " +
|
|
||||||
" mtb_aart " +
|
|
||||||
" WHERE dvw_ordt.key_ord = dvw_ordr.key_ord AND " +
|
|
||||||
" dvw_ordr.cod_mart = mtb_aart.cod_mart AND " +
|
|
||||||
" dtb_ordr_local.key_ord = dvw_ordr.key_ord AND " +
|
|
||||||
" dtb_ordr_local.riga_ord = dvw_ordr.riga_ord AND " +
|
|
||||||
" dtb_ordr_local.flag_elaborato = 'N' " +
|
|
||||||
"ORDER BY 1, 2";
|
|
||||||
|
|
||||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
// ACQUISIZIONE ELENCO RIGHE ORDINE SU CUI E' STATA CAMBIATA LA DATA CONSEGNA
|
||||||
PreparedStatement ps = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
||||||
ResultSet res = ps.executeQuery();
|
|
||||||
Integer numRows = UtilityDB.countRow(res);
|
|
||||||
Integer i = 0;
|
|
||||||
String keyOrdOld = "";
|
|
||||||
while (res.next()) {
|
|
||||||
// ACQUISIZIONE ESTREMI ORDINE MODIFICATO
|
|
||||||
String keyOrd = res.getString(1);
|
|
||||||
int rigaOrd = res.getInt(2);
|
|
||||||
Date dataCons = res.getDate(3);
|
|
||||||
double qtaAss = res.getDouble(4);
|
|
||||||
String flagEvasoForzato = res.getString(5);
|
|
||||||
double peso = res.getDouble(6);
|
|
||||||
String keyOrdAlyante = res.getString(7);
|
|
||||||
String existOrd = res.getString(8);
|
|
||||||
String flagEvaso = (flagEvasoForzato.compareTo("S") == 0) ? "F" : "N";
|
|
||||||
i++;
|
|
||||||
|
|
||||||
// VERIFICA DATI TIPO RIGA
|
|
||||||
if (flagEvaso.compareTo("F") == 0) {
|
|
||||||
// SE EVASO FORZATO NON VENGONO INVIATI DATI RELATIVI A QUANTITA E PESO ' MA SOLO FLAG_EVASO = "F" E DATA CONSEGNA
|
|
||||||
qtaAss = 0;
|
|
||||||
peso = 0;
|
|
||||||
}
|
|
||||||
String dataConsTRAXAL = UtilityDB.valueDateToString(dataCons, "yyyy-MM-dd");
|
|
||||||
|
|
||||||
// INSERIMENTO NUOVO ORDINE IN TABELLA TRAXAL
|
|
||||||
sql =
|
sql =
|
||||||
"INSERT INTO wrxtgo ( rxtgotim, " +
|
" SELECT dtb_ordr_local.key_ord, " +
|
||||||
" rxtgoope, " +
|
" dtb_ordr_local.riga_ord, " +
|
||||||
" rxtgoflg, " +
|
" dtb_ordr_local.data_cons, " +
|
||||||
" rxtgocod, " +
|
" (dvw_ordr.qta_ord_pz - dtb_ordr_local.qta_taglio) as qta_ass, " +
|
||||||
" rxtgorig, " +
|
" dtb_ordr_local.flag_evaso_forzato, " +
|
||||||
" rxtgopez, " +
|
" CASE WHEN dtb_ordr_local.qta_taglio = 0 THEN dvw_ordr.qta_ord_kg ELSE (dvw_ordr.qta_ord_pz - dtb_ordr_local.qta_taglio)* mtb_aart.peso_medio END as peso, " +
|
||||||
" rxtgopes, " +
|
" dtb_ordr_local.key_ord_alyante, " +
|
||||||
" rxtgoeva, " +
|
" CASE WHEN dtb_date_scadenza.key_ord IS NULL THEN 'N' ELSE 'S' END as existOrd " +
|
||||||
" rxtgodat )" +
|
" FROM dtb_ordr_local LEFT OUTER JOIN " + serverObject + ".dtb_date_scadenza ON dtb_ordr_local.key_ord_alyante = dtb_date_scadenza.key_ord COLLATE Latin1_General_100_CI_AS, " +
|
||||||
" VALUES ( " + UtilityDB.valueDateToString(new Date(), "yyyyMMddHHmmss") + ", " +
|
" dvw_ordr, " +
|
||||||
" 'I', " +
|
" dvw_ordt, " +
|
||||||
" 'N', " +
|
" mtb_aart " +
|
||||||
" " + UtilityDB.valueToString(keyOrd) + ", " +
|
" WHERE dvw_ordt.key_ord = dvw_ordr.key_ord AND " +
|
||||||
" " + UtilityDB.valueToString(rigaOrd) + ", " +
|
" dvw_ordr.cod_mart = mtb_aart.cod_mart AND " +
|
||||||
" " + UtilityDB.valueToString(qtaAss) + ", " +
|
" dtb_ordr_local.key_ord = dvw_ordr.key_ord AND " +
|
||||||
" " + UtilityDB.valueToString(peso) + ", " +
|
" dtb_ordr_local.riga_ord = dvw_ordr.riga_ord AND " +
|
||||||
" " + UtilityDB.valueToString(flagEvaso) + ", " +
|
" dtb_ordr_local.flag_elaborato = 'N' " +
|
||||||
" " + dataConsTRAXAL + ") ";
|
"ORDER BY 1, 2";
|
||||||
PreparedStatement infoUpd = conTraxal.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
||||||
infoUpd.executeUpdate();
|
|
||||||
infoUpd.close();
|
|
||||||
conTraxal.commit();
|
|
||||||
|
|
||||||
if (i + 1 <= numRows) {
|
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||||
res.next();
|
logger.error("[TAGLIA E CUCI - QUERY TRASMISSIONE]" + sql);
|
||||||
keyOrdOld = keyOrd;
|
|
||||||
keyOrd = res.getString(1);
|
|
||||||
res.previous();
|
|
||||||
}
|
|
||||||
|
|
||||||
// INSERIMENTO MODIFICA DELLA SOLA DATA CONSEGNA ORDINE IN TABELLA ALYANTE
|
PreparedStatement ps = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||||
if (keyOrdOld.compareTo(keyOrd) != 0) {
|
ResultSet res = ps.executeQuery();
|
||||||
if (existOrd.compareTo("N") == 0) {
|
Integer numRows = UtilityDB.countRow(res);
|
||||||
sql =
|
Integer i = 0;
|
||||||
"INSERT INTO dtb_date_scadenza (ditta " +
|
String keyOrdOld = "";
|
||||||
" ,key_ord " +
|
while (res.next()) {
|
||||||
" ,chiave_traxal " +
|
// ACQUISIZIONE ESTREMI ORDINE MODIFICATO
|
||||||
" ,data_consegna " +
|
String keyOrd = res.getString(1);
|
||||||
" ,flag_elaborato )" +
|
int rigaOrd = res.getInt(2);
|
||||||
" VALUES (" + UtilityDB.valueToString(codiceDitta) + ", " +
|
Date dataCons = res.getDate(3);
|
||||||
" " + UtilityDB.valueToString(keyOrdAlyante) + ", " +
|
double qtaAss = res.getDouble(4);
|
||||||
" " + UtilityDB.valueToString(keyOrd) + ", " +
|
String flagEvasoForzato = res.getString(5);
|
||||||
" " + UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) + ", " +
|
double peso = res.getDouble(6);
|
||||||
" 'N') ";
|
String keyOrdAlyante = res.getString(7);
|
||||||
} else {
|
String existOrd = res.getString(8);
|
||||||
sql =
|
String flagEvaso = (flagEvasoForzato.compareTo("S") == 0) ? "F" : "N";
|
||||||
"UPDATE dtb_date_scadenza " +
|
i++;
|
||||||
" SET data_consegna = " + UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) +
|
|
||||||
" WHERE ditta = " + UtilityDB.valueToString(codiceDitta) + " AND " +
|
// VERIFICA DATI TIPO RIGA
|
||||||
" key_ord = " + UtilityDB.valueToString(keyOrdAlyante) + " AND " +
|
if (flagEvaso.compareTo("F") == 0) {
|
||||||
" flag_elaborato = 'N' ";
|
// SE EVASO FORZATO NON VENGONO INVIATI DATI RELATIVI A QUANTITA E PESO ' MA SOLO FLAG_EVASO = "F" E DATA CONSEGNA
|
||||||
|
qtaAss = 0;
|
||||||
|
peso = 0;
|
||||||
}
|
}
|
||||||
infoUpd = conAlyante.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
String dataConsTRAXAL = UtilityDB.valueDateToString(dataCons, "yyyy-MM-dd");
|
||||||
|
|
||||||
|
// INSERIMENTO NUOVO ORDINE IN TABELLA TRAXAL
|
||||||
|
sql =
|
||||||
|
"INSERT INTO wrxtgo ( rxtgotim, " +
|
||||||
|
" rxtgoope, " +
|
||||||
|
" rxtgoflg, " +
|
||||||
|
" rxtgocod, " +
|
||||||
|
" rxtgorig, " +
|
||||||
|
" rxtgopez, " +
|
||||||
|
" rxtgopes, " +
|
||||||
|
" rxtgoeva, " +
|
||||||
|
" rxtgodat )" +
|
||||||
|
" VALUES ( " + UtilityDB.valueDateToString(new Date(), "yyyyMMddHHmmss") + ", " +
|
||||||
|
" 'I', " +
|
||||||
|
" 'N', " +
|
||||||
|
" " + UtilityDB.valueToString(keyOrd) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(rigaOrd) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(qtaAss) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(peso) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(flagEvaso) + ", " +
|
||||||
|
" " + dataConsTRAXAL + ") ";
|
||||||
|
PreparedStatement infoUpd = conTraxal.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||||
infoUpd.executeUpdate();
|
infoUpd.executeUpdate();
|
||||||
infoUpd.close();
|
infoUpd.close();
|
||||||
conAlyante.commit();
|
conTraxal.commit();
|
||||||
|
|
||||||
|
if (i + 1 <= numRows) {
|
||||||
|
res.next();
|
||||||
|
keyOrdOld = keyOrd;
|
||||||
|
keyOrd = res.getString(1);
|
||||||
|
res.previous();
|
||||||
|
}
|
||||||
|
|
||||||
|
// INSERIMENTO MODIFICA DELLA SOLA DATA CONSEGNA ORDINE IN TABELLA ALYANTE
|
||||||
|
if (keyOrdOld.compareTo(keyOrd) != 0) {
|
||||||
|
if (existOrd.compareTo("N") == 0) {
|
||||||
|
sql =
|
||||||
|
"INSERT INTO dtb_date_scadenza (ditta " +
|
||||||
|
" ,key_ord " +
|
||||||
|
" ,chiave_traxal " +
|
||||||
|
" ,data_consegna " +
|
||||||
|
" ,flag_elaborato )" +
|
||||||
|
" VALUES (" + UtilityDB.valueToString(codiceDitta) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(keyOrdAlyante) + ", " +
|
||||||
|
" " + UtilityDB.valueToString(keyOrd) + ", " +
|
||||||
|
" " + UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) + ", " +
|
||||||
|
" 'N') ";
|
||||||
|
} else {
|
||||||
|
sql =
|
||||||
|
"UPDATE dtb_date_scadenza " +
|
||||||
|
" SET data_consegna = " + UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) +
|
||||||
|
" WHERE ditta = " + UtilityDB.valueToString(codiceDitta) + " AND " +
|
||||||
|
" key_ord = " + UtilityDB.valueToString(keyOrdAlyante) + " AND " +
|
||||||
|
" flag_elaborato = 'N' ";
|
||||||
|
}
|
||||||
|
PreparedStatement infoUpdAlyante = conAlyante.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||||
|
infoUpdAlyante.executeUpdate();
|
||||||
|
infoUpdAlyante.close();
|
||||||
|
conAlyante.commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
res.close();
|
||||||
res.close();
|
ps.close();
|
||||||
ps.close();
|
if (!con.isClosed()) {
|
||||||
if (!con.isClosed()) {
|
con.commit();
|
||||||
con.commit();
|
con.close();
|
||||||
con.close();
|
}
|
||||||
}
|
if (!conTraxal.isClosed()) {
|
||||||
if (!conTraxal.isClosed()) {
|
conTraxal.commit();
|
||||||
conTraxal.commit();
|
conTraxal.close();
|
||||||
conTraxal.close();
|
}
|
||||||
}
|
if (!conAlyante.isClosed()) {
|
||||||
if (!conAlyante.isClosed()) {
|
conAlyante.commit();
|
||||||
conAlyante.commit();
|
conAlyante.close();
|
||||||
conAlyante.close();
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
//conAlyante.rollback();
|
||||||
|
if (sql != null) {
|
||||||
|
logger.error("[TAGLIA E CUCI]" + sql);
|
||||||
|
}
|
||||||
|
throw new Exception(e.getMessage());
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user