aggiunta linea dell'ordine di lavoro

This commit is contained in:
2024-05-21 11:39:48 +02:00
parent ef3e7d0fa6
commit c7f17f771b

View File

@@ -6,6 +6,7 @@ import com.annimon.stream.Stream;
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.production.dto.MRP.*;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.entity.CtbScad;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityBigDecimal;
import it.integry.ems_model.utility.UtilityDB;
@@ -571,7 +572,7 @@ public class MrpDailyMaterialReqService {
String sql =
"SELECT 'Fabbisogni da ordini di vendita non pianificati in produzione' AS causale,\n" +
" mtb_part.cod_mart,\n" +
" Cast(getDate() as date) AS data_mrp,\n" +
" Cast(getDate() as date) AS data_mrp,\n" +
" -(mtb_part.qta_imp_prox) AS qta,\n" +
" 'NP' AS gestione,\n" +
" mtb_part.cod_mdep,\n" +
@@ -589,7 +590,7 @@ public class MrpDailyMaterialReqService {
String sql =
"SELECT 'Fabbisogni da contratti di vendita' as causale,\n" +
" mtb_part.cod_mart,\n" +
" Cast(getDate() as date) AS data_mrp,\n" +
" Cast(getDate() as date) AS data_mrp,\n" +
" -(mtb_part.qta_imp_prox_contr) AS qta,\n" +
" 'CV' AS gestione,\n" +
" mtb_part.cod_mdep,\n" +
@@ -936,10 +937,10 @@ public class MrpDailyMaterialReqService {
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
" AND dtb_ordt.flag_sospeso = 'N'\n" +
" AND dtb_ordt.flag_Evaso_prod = 'I'\n" +
" AND dtb_ordt.qta_prod > dtb_ordt.qta_evasa_prod " +
" AND dtb_ordt.cod_mdep in ('%s')" +
" AND dtb_ordt.cod_prod in ('%s')" +
"UNION ALL " +
" AND dtb_ordt.qta_prod > dtb_ordt.qta_evasa_prod \n " +
" AND dtb_ordt.cod_mdep in ('%s')\n " +
" AND dtb_ordt.cod_prod in ('%s')\n " +
"UNION ALL \n" +
"SELECT 'ORD.LAVORAZ. ' + CONVERT(VARCHAR(8), dtb_ordt.num_ord) + ' DEL ' +\n" +
" CONVERT(VARCHAR(10), dtb_ordt.data_ord, 105) + ' ' + dtb_ordt.cod_prod AS causale,\n" +
" olvw_distinta_sfuso.cod_mart as cod_mart,\n" +
@@ -961,10 +962,43 @@ public class MrpDailyMaterialReqService {
"WHERE dtb_ordt.gestione = 'L' and\n" +
"dtb_ordt.flag_evaso_prod = 'I' and\n" +
"dtb_ordt.flag_evaso_forzato = 'N' and\n" +
"dtb_ordt.cod_mdep in ('%s') and\n " +
"dtb_ordt.cod_prod in ('%s') and\n " +
"dtb_ordt.flag_annulla = 'N'\n")
.replace("[includiArrivi]", includiArrivi ? "1" : "0");
return getMrpDailyMaterialReqDetDetDTO(depositi, articoli, sql);
sql =
"WITH ord AS (" + sql + ")\n" +
"SELECT ord.causale + ISNULL(' [' + step.cod_jfas + ']', '') as causale,\n" +
" ord.cod_mart,\n" +
" ord.data_mrp,\n" +
" ord.qta,\n" +
" ord.partita_mag,\n" +
" ord.gestione,\n" +
" ord.data_ord,\n" +
" ord.num_ord,\n" +
" ord.cod_mdep,\n" +
" ord.tipo_pedana\n" +
"FROM ord\n" +
" LEFT OUTER JOIN (SELECT gestione,\n" +
" data_ord,\n" +
" num_ord,\n" +
" cod_jfas,\n" +
" ROW_NUMBER() OVER (PARTITION BY gestione, data_ord, num_ord ORDER BY id_step DESC) AS row_id\n" +
" FROM dtb_ord_steps\n" +
" WHERE data_ord IS NOT NULL) step\n" +
" ON ord.gestione = step.gestione AND ord.data_ord = step.data_ord AND\n" +
" ord.num_ord = step.num_ord AND step.row_id = 1\n";
sql = String.format(sql, depositi, articoli, depositi, articoli);
List<MrpDailyMaterialReqDetDTO> mrpDailyMaterialReqDTOS = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MrpDailyMaterialReqDetDTO.class);
if (mrpDailyMaterialReqDTOS == null) {
mrpDailyMaterialReqDTOS = new ArrayList<>();
}
return mrpDailyMaterialReqDTOS;
}
private List<MrpDailyMaterialReqDetDTO> getContrattiV(String depositi, String articoli) throws Exception {
@@ -973,7 +1007,7 @@ public class MrpDailyMaterialReqService {
" vvw_contratti_vendita.rag_soc + ' n.' +\n" +
" CAST(vvw_contratti_vendita.id_contratto AS VARCHAR) as causale,\n" +
" vvw_contratti_vendita.cod_mart,\n" +
" CONVERT(DATE, GETDATE()) AS data_mrp,\n" +
" Cast(GETDATE() as date ) AS data_mrp,\n" +
" -(vvw_contratti_vendita.qta_residua) AS qta,\n" +
" 'CV' AS gestione,\n" +
" vvw_contratti_vendita.cod_mdep as cod_mdep,\n" +