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);
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user