Finish Hotfix-96
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-01-20 18:48:14 +01:00

View File

@@ -57,127 +57,138 @@ public class SicilianiDMSExportService {
multiDBTransactionManager.addConnection(profileDBAlyante);
Connection conAlyante = multiDBTransactionManager.getDatabaseDataSource(profileDBAlyante).getConnection();
// ACQUISIZIONE ELENCO RIGHE ORDINE SU CUI E' STATA CAMBIATA LA DATA CONSEGNA
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";
try {
sql = UtilityDB.addwhereCond(sql, whereCond, false);
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
// ACQUISIZIONE ELENCO RIGHE ORDINE SU CUI E' STATA CAMBIATA LA DATA CONSEGNA
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.close();
conTraxal.commit();
" 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";
if (i + 1 <= numRows) {
res.next();
keyOrdOld = keyOrd;
keyOrd = res.getString(1);
res.previous();
}
sql = UtilityDB.addwhereCond(sql, whereCond, false);
logger.error("[TAGLIA E CUCI - QUERY TRASMISSIONE]" + sql);
// 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 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;
}
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.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();
ps.close();
if (!con.isClosed()) {
con.commit();
con.close();
}
if (!conTraxal.isClosed()) {
conTraxal.commit();
conTraxal.close();
}
if (!conAlyante.isClosed()) {
conAlyante.commit();
conAlyante.close();
res.close();
ps.close();
if (!con.isClosed()) {
con.commit();
con.close();
}
if (!conTraxal.isClosed()) {
conTraxal.commit();
conTraxal.close();
}
if (!conAlyante.isClosed()) {
conAlyante.commit();
conAlyante.close();
}
} catch (Exception e) {
//conAlyante.rollback();
if (sql != null) {
logger.error("[TAGLIA E CUCI]" + sql);
}
throw new Exception(e.getMessage());
}
return response;
}