Gestione modifica data inizio prod su generaordlav
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2024-10-10 13:09:32 +02:00
parent f1c55ab283
commit 412c40499d

View File

@@ -30,6 +30,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@@ -358,6 +359,7 @@ public class GeneraOrdLav {
} else {
riproporzionaQtaOrd(conn, gestione, dataOrd, numOrd, rigaOrd, qtaProd, rapConv, ordT);
aggornaDataInizProd(conn, gestione, dataOrd, numOrd, rigaOrd, ordT, row, assegnaAttivita);
}
}
}
@@ -1380,6 +1382,80 @@ public class GeneraOrdLav {
}
}
private static void aggornaDataInizProd(Connection conn, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd,DtbOrdt ordT, DtbOrdr row, boolean assegnaAttivita) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
String sql;
sql =
Query.format(
"SELECT data_iniz_prod, activity_id " +
" FROM dtb_ordt " +
" WHERE dtb_ordt.gestione_rif = %s AND " +
" dtb_ordt.data_ord_rif = %s AND " +
" dtb_ordt.num_ord_rif = %s AND " +
" dtb_ordt.riga_ord_rif = %s",
gestione,
dataOrd,
numOrd,
rigaOrd);
HashMap<String, Object> datiOrdL = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
LocalDate dataInizProdOld = null;
LocalDate dataInizNew = null;
String activityID = null;
if (datiOrdL != null && datiOrdL.size() > 0) {
dataInizProdOld = UtilityLocalDate.localDateFromDate((Date) datiOrdL.get("data_iniz_prod"));
dataInizNew = ordT.getDataInizProd();
activityID = (String) datiOrdL.get("activity_id");
}
Integer ggDiff = Math.toIntExact(UtilityLocalDate.daysAfterDate(dataInizProdOld, dataInizNew ));
if (ggDiff != 0){
sql = "SELECT * FROM dtb_ordr";
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
List<DtbOrdr> dtbOrdrL = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdr.class);
if (dtbOrdrL != null && !dtbOrdrL.isEmpty()){
dtbOrdrL.stream().forEach(x -> {
x.setDataCons(UtilityDate.dateAdd(x.getDataCons(), ggDiff));
x.setOperation(OperationType.UPDATE);
});
ordT.setDtbOrdr(dtbOrdrL);
}
sql = "SELECT * FROM dtb_ord_steps";
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
dtbOrdSteps.stream().forEach(x -> {
x.setDataIniz(UtilityDate.dateAdd(x.getDataIniz(), ggDiff));
x.setDataFine(UtilityDate.dateAdd(x.getDataFine(), ggDiff));
x.setOperation(OperationType.UPDATE);
});
ordT.setDtbOrdSteps(dtbOrdSteps);
// FABIO: DA CAPIRE COME VALORIZZATA LE ATTIVITA MODIFICATE
if (assegnaAttivita){
sql = "SELECT stb_activity.* " +
" FROM stb_activity " +
" where (activity_id = " + UtilityDB.valueToString(activityID) + " or " +
" parent_activity_id = " + UtilityDB.valueToString(activityID) + ")";
List<StbActivity> stbActivity = UtilityDB.executeSimpleQueryDTO(conn, sql, StbActivity.class);
stbActivity.stream().forEach(x -> {
x.setEstimatedDate(UtilityDate.dateAdd(x.getEstimatedDate(), ggDiff));
x.setEstimatedEnddate(UtilityDate.dateAdd(x.getEstimatedEnddate(), ggDiff));
x.setEstimatedTime(UtilityDate.dateAdd(x.getEstimatedTime(), ggDiff));
x.setEstimatedEndtime(UtilityDate.dateAdd(x.getEstimatedEndtime(), ggDiff));
x.setOperation(OperationType.INSERT_OR_UPDATE);
});
row.setStbActivityList(stbActivity);
}
}
}
private static void riproporzionaQtaOrd(Connection conn, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd, BigDecimal qtaProd, BigDecimal rapConv, DtbOrdt ordT) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
String sql;
sql =