Fix filtro data cons non usato in MRP

This commit is contained in:
2025-03-31 16:32:55 +02:00
parent 089b14693a
commit e377e0a97e

View File

@@ -67,37 +67,37 @@ public class MrpDailyMaterialReqService {
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getColliV: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
List<MrpDailyMaterialReqDetDTO> mrpDailyMaterialReqDetDTO = getGiacenza(depositi, articoli, tableNameColli);
List<MrpDailyMaterialReqDetDTO> mrpDailyMaterialReqDetDTO = getGiacenza(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons(), tableNameColli);
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getGiacenza: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getOrdiniVendita(depositi, articoli, tableNameColli));
mrpDailyMaterialReqDetDTO.addAll(getOrdiniVendita(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons(), tableNameColli));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getOrdiniV: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getOrdini("A", depositi, articoli, tableNameColli, includiArrivi));
mrpDailyMaterialReqDetDTO.addAll(getOrdini("A", depositi, articoli, mrpDailyMaterialInputDTO.getDataCons(), tableNameColli, includiArrivi));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getOrdiniA: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getOrdini("L", depositi, articoli, tableNameColli, includiArrivi));
mrpDailyMaterialReqDetDTO.addAll(getOrdini("L", depositi, articoli, mrpDailyMaterialInputDTO.getDataCons(), tableNameColli, includiArrivi));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getOrdiniL: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getOrdiniProd(depositi, articoli, includiArrivi));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getOrdiniProd: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getFabbProxOrdv(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getFabbProxOrdv(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getFabbProxOrdv: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getFabbProxContratti(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getFabbProxContratti(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getFabbProxContratti: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getFabbProxBudget(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getFabbProxBudget(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getFabbProxBudget: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getContrattiV(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getContrattiV(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getContrattiV: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getContrattiA(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getContrattiA(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getContrattiA: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
mrpDailyMaterialReqDetDTO.addAll(getBudgetV(depositi, articoli));
mrpDailyMaterialReqDetDTO.addAll(getBudgetV(depositi, articoli, mrpDailyMaterialInputDTO.getDataCons()));
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - getBudgetV: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
Map<String, List<MRPDailyConsumiDTO>> consumi = mrpConsumiHandlerService.getConsumi();
@@ -581,7 +581,7 @@ public class MrpDailyMaterialReqService {
return tableName;
}
private List<MrpDailyMaterialReqDetDTO> getGiacenza(String depositi, String articoli, String tableColli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getGiacenza(String depositi, String articoli, Date dataMrp, String tableColli) throws Exception {
String sql =
"SELECT 'GIACENZA ' + mtb_depo.descrizione AS causale,\n" +
"mtb_part.cod_mart,\n" +
@@ -595,10 +595,10 @@ public class MrpDailyMaterialReqService {
"mtb_part.cod_mart in ('%s')\n" +
"GROUP BY mtb_part.cod_mdep, mtb_depo.descrizione, mtb_part.cod_mart, mtb_part.qta_esistente ";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getFabbProxOrdv(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getFabbProxOrdv(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
"SELECT 'Fabbisogni da ordini di vendita non pianificati in produzione' AS causale,\n" +
" mtb_part.cod_mart,\n" +
@@ -612,10 +612,10 @@ public class MrpDailyMaterialReqService {
" AND mtb_part.cod_mdep in ('%s')" +
" AND mtb_part.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getFabbProxContratti(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getFabbProxContratti(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
"SELECT 'Fabbisogni da contratti di vendita' as causale,\n" +
" mtb_part.cod_mart,\n" +
@@ -629,10 +629,10 @@ public class MrpDailyMaterialReqService {
" AND mtb_part.cod_mdep in ('%s')" +
" AND mtb_part.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getFabbProxBudget(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getFabbProxBudget(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
"SELECT 'Fabbisogni da budget di vendita' as causale,\n" +
" mtb_part.cod_mart,\n" +
@@ -646,10 +646,10 @@ public class MrpDailyMaterialReqService {
" AND mtb_part.cod_mdep in ('%s')" +
" AND mtb_part.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getOrdiniVendita(String depositi, String articoli, String tableColli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getOrdiniVendita(String depositi, String articoli, Date dataMrp, String tableColli) throws Exception {
String columnQtaOrd =
" -1 * CASE\n" +
" WHEN ((dtb_ordr.qta_ord - dtb_ordr.qta_Evasa) * dtb_ordr.rap_conv) < ISNULL(colli.qta_col, 0) THEN 0\n" +
@@ -733,11 +733,11 @@ public class MrpDailyMaterialReqService {
" AND dtb_ordr.cod_mart IN ('%s')\n" +
" AND (-1 * [columnQtaOrd] ) > 0 \n";
sql = sql.replace("[columnQtaOrd]", columnQtaOrd);
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getOrdini(String gestione, String depositi, String articoli, String tableColli, boolean includiArrivi) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getOrdini(String gestione, String depositi, String articoli, Date dataMrp, String tableColli, boolean includiArrivi) throws Exception {
String sqlOrdini;
if (gestione.equalsIgnoreCase("V")) {
sqlOrdini =
@@ -930,7 +930,7 @@ public class MrpDailyMaterialReqService {
" AND ordini.cod_mart IN ('%s')")
.replace("[includiArrivi]", includiArrivi ? "1" : "0");
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getOrdiniProd(String depositi, String articoli, boolean includiArrivi) throws Exception {
@@ -1028,7 +1028,7 @@ public class MrpDailyMaterialReqService {
return mrpDailyMaterialReqDTOS;
}
private List<MrpDailyMaterialReqDetDTO> getContrattiV(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getContrattiV(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
"SELECT 'Saldo Contratto di vendita ' + vvw_contratti_vendita.cod_anag + ' - ' +\n" +
" vvw_contratti_vendita.rag_soc + ' n.' +\n" +
@@ -1045,10 +1045,10 @@ public class MrpDailyMaterialReqService {
" AND vvw_contratti_vendita.cod_mdep in ('%s')" +
" AND vvw_contratti_vendita.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getContrattiA(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getContrattiA(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
"SELECT 'Saldo Contratto di acquisto ' + avw_contratti_acquisto.cod_anag + ' - ' +\n" +
" avw_contratti_acquisto.rag_soc + ' n.' +\n" +
@@ -1066,10 +1066,10 @@ public class MrpDailyMaterialReqService {
" AND avw_contratti_acquisto.cod_mdep in ('%s')" +
" AND avw_contratti_acquisto.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
private List<MrpDailyMaterialReqDetDTO> getBudgetV(String depositi, String articoli) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getBudgetV(String depositi, String articoli, Date dataMrp) throws Exception {
String sql =
" SELECT 'Saldo Budget di vendita n.' + CAST(ovw_budget_ordv.num_ord AS VARCHAR) as causale,\n" +
" ovw_budget_ordv.cod_mart,\n" +
@@ -1082,7 +1082,7 @@ public class MrpDailyMaterialReqService {
" WHERE ovw_budget_ordv.cod_mdep in ('%s')" +
" AND ovw_budget_ordv.cod_mart in ('%s')";
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
return getMrpDailyMaterialReqDetDetDTO(sql, depositi, articoli, dataMrp);
}
@@ -1129,9 +1129,12 @@ public class MrpDailyMaterialReqService {
return promoArt;
}
private List<MrpDailyMaterialReqDetDTO> getMrpDailyMaterialReqDetDetDTO(String depositi, String articoli, String sql) throws Exception {
private List<MrpDailyMaterialReqDetDTO> getMrpDailyMaterialReqDetDetDTO(String sql, String depositi, String articoli, Date dataMrp) throws Exception {
sql = String.format(sql, depositi, articoli);
sql = String.format("SELECT * FROM (%s) t WHERE ([dataMrp] IS NULL OR data_mrp <= [dataMrp])", sql)
.replace("[dataMrp]", UtilityDB.valueToString(dataMrp));
List<MrpDailyMaterialReqDetDTO> mrpDailyMaterialReqDTOS = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MrpDailyMaterialReqDetDTO.class);
if (mrpDailyMaterialReqDTOS == null) {