Gestione modifica data inizio prod su generaordlav
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:
@@ -30,6 +30,7 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
@@ -358,6 +359,7 @@ public class GeneraOrdLav {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
riproporzionaQtaOrd(conn, gestione, dataOrd, numOrd, rigaOrd, qtaProd, rapConv, ordT);
|
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 {
|
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;
|
String sql;
|
||||||
sql =
|
sql =
|
||||||
|
|||||||
Reference in New Issue
Block a user