Gestione criterio prod modificato

This commit is contained in:
2024-04-24 13:02:43 +02:00
parent 3f8bb86e15
commit 374fe08fe2

View File

@@ -4270,91 +4270,111 @@ public class DocumentProdService {
Integer numFabb = Integer.valueOf(jsonBody.get("numFab").asText());
Date dataFabb = UtilityString.parseDate(jsonBody.get("dataFab").asText());
String sql =
"select item, utilizzo, livello, ISNULL(id_padre, 1), id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
"num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
"flag_escludi_gruppo = 'S'" +
"order by item";
try {
String sql =
"select item, utilizzo, livello, ISNULL(id_padre, 1), id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
"num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
"flag_escludi_gruppo = 'S'" +
"order by item";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String item = rs.getString(1);
String utilizzo = rs.getString(2);
Integer livello = rs.getInt(3);
Integer idPadre = rs.getInt(4);
Integer idRiga = rs.getInt(5);
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String item = rs.getString(1);
String utilizzo = rs.getString(2);
Integer livello = rs.getInt(3);
Integer idPadre = rs.getInt(4);
Integer idRiga = rs.getInt(5);
//Aggiornamento utilizzo e id_padre su righe del livello sottostante alla riga che si sta escludendo
sql = " update atb_fabbr " +
" set utilizzo = " + UtilityDB.valueToString(utilizzo) + ", " +
" /*item = " + UtilityDB.valueToString(item) + ", */" +
" id_padre = " + UtilityDB.valueToString(idPadre) + " " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" item like " + UtilityDB.valueToString(item) + " + '%' and " +
" livello = " + UtilityDB.valueToString(livello) + " + 1";
//Aggiornamento utilizzo e id_padre su righe del livello sottostante alla riga che si sta escludendo
sql = " update atb_fabbr " +
" set utilizzo = " + UtilityDB.valueToString(utilizzo) + ", " +
" /*item = " + UtilityDB.valueToString(item) + ", */" +
" id_padre = " + UtilityDB.valueToString(idPadre) + " " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" item like " + UtilityDB.valueToString(item) + " + '%' and " +
" livello = " + UtilityDB.valueToString(livello) + " + 1";
Statement cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
Statement cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
// Sostituire item padre da tutti gli item figli
sql = " update atb_fabbr " +
" set /*item = replace(item, substring(" + UtilityDB.valueToString(item) + ", 8, LEN(" + UtilityDB.valueToString(item) + ") - 7), ''), */" +
" livello = livello -1, " +
" id_padre = case when livello -1 = 1 then null else id_padre end " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" item like " + UtilityDB.valueToString(item) + " + '%' and " +
" livello > " + UtilityDB.valueToString(livello);
// Sostituire item padre da tutti gli item figli
sql = " update atb_fabbr " +
" set /*item = replace(item, substring(" + UtilityDB.valueToString(item) + ", 8, LEN(" + UtilityDB.valueToString(item) + ") - 7), ''), */" +
" livello = livello -1, " +
" id_padre = case when livello -1 = 1 then null else id_padre end " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" item like " + UtilityDB.valueToString(item) + " + '%' and " +
" livello > " + UtilityDB.valueToString(livello);
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
// Cancellazione riga eslcusa
sql = "delete from atb_fabbr_approv " +
" from atb_fabbr_approv inner join (select data_fab, num_fab, id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga) + ")fabb on atb_fabbr_approv.data_fab = fabb.data_fab and " +
" atb_fabbr_approv.num_fab = fabb.num_fab and " +
" atb_fabbr_approv.id_riga = fabb.id_riga ";
// Cancellazione riga eslcusa
sql = "delete from atb_fabbr_approv_serv " +
" from atb_fabbr_approv_serv inner join (select data_fab, num_fab, id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga) + ")fabb on atb_fabbr_approv_serv.data_fab = fabb.data_fab and " +
" atb_fabbr_approv_serv.num_fab = fabb.num_fab and " +
" atb_fabbr_approv_serv.id_riga = fabb.id_riga ";
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
sql = "delete from atb_fabbr_approv_serv " +
" from atb_fabbr_approv_serv inner join (select data_fab, num_fab, id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga) + ")fabb on atb_fabbr_approv_serv.data_fab = fabb.data_fab and " +
" atb_fabbr_approv_serv.num_fab = fabb.num_fab and " +
" atb_fabbr_approv_serv.id_riga = fabb.id_riga ";
sql = "delete from atb_fabbr_approv " +
" from atb_fabbr_approv inner join (select data_fab, num_fab, id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga) + ")fabb on atb_fabbr_approv.data_fab = fabb.data_fab and " +
" atb_fabbr_approv.num_fab = fabb.num_fab and " +
" atb_fabbr_approv.id_riga = fabb.id_riga ";
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
sql = "delete from atb_fabbr " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga);
sql = "delete from atb_fabbr_disegni " +
" from atb_fabbr_disegni inner join (select data_fab, num_fab, id_riga " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga) + ")fabb on atb_fabbr_disegni.data_fab = fabb.data_fab and " +
" atb_fabbr_disegni.num_fab = fabb.num_fab and " +
" atb_fabbr_disegni.id_riga = fabb.id_riga ";
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
sql = "delete from atb_fabbr " +
" from atb_fabbr " +
" where data_fab = " + UtilityDB.valueDateToString(dataFabb, CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_fab = " + UtilityDB.valueToString(numFabb) + " and " +
" id_riga = " + UtilityDB.valueToString(idRiga);
cmd = conn.createStatement();
cmd.executeUpdate(sql);
cmd.close();
}
rs.close();ps.close();
conn.commit();
} catch (Exception e){
conn.rollback();
throw new Exception("Errore aggiornamento criterio produttivo " + e.getMessage());
}
rs.close();ps.close();
}
}