Rimossa processSql e implentata chiamata ai servizi per retriveFabbisogno
This commit is contained in:
parent
04838ce08f
commit
ba35a6b32d
@ -10,10 +10,17 @@ import java.util.List;
|
|||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumerService;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
||||||
@ -26,254 +33,20 @@ public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
String sql = "WITH input_values AS ( " +
|
ProdFabbisognoLineeProdRESTConsumerService prodFabbisognoLineeProdRESTConsumerService = RESTBuilder.getService(ProdFabbisognoLineeProdRESTConsumerService.class);
|
||||||
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
|
prodFabbisognoLineeProdRESTConsumerService.loadFabbisogno(UtilityDate.formatDate(startDate, "yyyy-MM-dd"), UtilityDate.formatDate(endDate, "yyyy-MM-dd"), codMdep)
|
||||||
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
|
.enqueue(new Callback<>() {
|
||||||
// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
|
@Override
|
||||||
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," +
|
public void onResponse(Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> call,
|
||||||
" withdraw_mtb_colr AS ( " +
|
Response<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> response) {
|
||||||
" SELECT cod_mart, " +
|
analyzeAnswer(response, "retrieveFabbisogno", onComplete, onFailed);
|
||||||
" SUM(ISNULL(qta_col, 0)) as qta_col, " +
|
}
|
||||||
" SUM(ISNULL(num_cnf, 0)) as num_cnf, " +
|
|
||||||
" mtb_colr.data_ord, " +
|
|
||||||
" mtb_colr.num_ord, " +
|
|
||||||
" mtb_colr.gestione " +
|
|
||||||
" FROM mtb_colr " +
|
|
||||||
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
|
|
||||||
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
|
|
||||||
" WHERE segno = -1 " +
|
|
||||||
" AND cod_dtip IS NULL " +
|
|
||||||
" GROUP BY cod_mart, " +
|
|
||||||
" mtb_colr.data_ord, " +
|
|
||||||
" mtb_colr.num_ord, " +
|
|
||||||
" mtb_colr.gestione " +
|
|
||||||
" ), " +
|
|
||||||
" custom_mtb_colr AS (SELECT cod_mart, " +
|
|
||||||
" SUM(qta_col) AS qta_col, " +
|
|
||||||
" SUM(num_cnf) AS num_cnf, " +
|
|
||||||
" posizione " +
|
|
||||||
" FROM mvw_sitart_udc_det_inventario " +
|
|
||||||
" GROUP BY cod_mart, posizione), " +
|
|
||||||
" grouped_ord AS ( " +
|
|
||||||
" SELECT dtb_ordr.cod_mart, " +
|
|
||||||
" dtb_ordt.cod_jfas, " +
|
|
||||||
" dtb_ordt.cod_mdep, " +
|
|
||||||
" dtb_ordt.gestione, " +
|
|
||||||
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
|
|
||||||
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
|
|
||||||
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
|
|
||||||
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
|
|
||||||
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " +
|
|
||||||
" FROM dtb_ordr " +
|
|
||||||
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
|
|
||||||
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
|
|
||||||
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
|
|
||||||
" LEFT OUTER JOIN withdraw_mtb_colr " +
|
|
||||||
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
|
|
||||||
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
|
|
||||||
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
|
|
||||||
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
|
|
||||||
" CROSS APPLY input_values " +
|
|
||||||
" WHERE dtb_ordt.gestione = 'L' " +
|
|
||||||
" AND flag_evaso = 'I' " +
|
|
||||||
" AND flag_evaso_prod = 'I' " +
|
|
||||||
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
|
|
||||||
" AND flag_annulla = 'N' " +
|
|
||||||
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
|
|
||||||
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
|
|
||||||
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " +
|
|
||||||
" ), " +
|
|
||||||
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
|
|
||||||
" mtb_aart.unt_mis, " +
|
|
||||||
" grouped_ord.cod_jfas, " +
|
|
||||||
" SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " +
|
|
||||||
" SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " +
|
|
||||||
" FROM grouped_ord " +
|
|
||||||
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
|
|
||||||
" CROSS APPLY input_values " +
|
|
||||||
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " +
|
|
||||||
" ), " +
|
|
||||||
" ord_without_positioned_mtb_colt AS ( " +
|
|
||||||
" SELECT tmp_ord.cod_mart, " +
|
|
||||||
" tmp_ord.cod_jfas, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" qta_ord AS qta_ord_calc, " +
|
|
||||||
" num_cnf_ord AS num_cnf_ord_calc, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
|
|
||||||
" qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " +
|
|
||||||
" num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " +
|
|
||||||
" FROM tmp_ord " +
|
|
||||||
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
|
|
||||||
" AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " +
|
|
||||||
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
|
|
||||||
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
|
|
||||||
" tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " +
|
|
||||||
" " +
|
|
||||||
" UNION ALL " +
|
|
||||||
" " +
|
|
||||||
" SELECT DISTINCT tmp_ord.cod_mart, " +
|
|
||||||
" null AS cod_jfas, " +
|
|
||||||
" jrl_fase_posizioni.posizione, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" 0 AS qta_ord_calc, " +
|
|
||||||
" 0 AS num_cnf_ord_calc, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
|
|
||||||
" 0 AS qta_fabbisogno, " +
|
|
||||||
" 0 AS num_cnf_fabbisogno " +
|
|
||||||
" FROM tmp_ord " +
|
|
||||||
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
|
|
||||||
" AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " +
|
|
||||||
" " +
|
|
||||||
" " +
|
|
||||||
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
|
|
||||||
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
|
|
||||||
" jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " +
|
|
||||||
" ) " +
|
|
||||||
"SELECT cod_mart, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" input_values.data_inizio, " +
|
|
||||||
" input_values.data_fine, " +
|
|
||||||
" SUM(qta_ord_calc) AS qta_ord, " +
|
|
||||||
" SUM(num_cnf_ord_calc) AS num_cnf_ord, " +
|
|
||||||
" SUM(qta_gia_posizionata) AS qta_col_versata, " +
|
|
||||||
" SUM(num_cnf_gia_posizionata) AS num_cnf_versata, " +
|
|
||||||
" SUM(qta_ord_calc - qta_gia_posizionata) AS qta_fabbisogno, " +
|
|
||||||
" SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) AS num_cnf_fabbisogno " +
|
|
||||||
"FROM ord_without_positioned_mtb_colt " +
|
|
||||||
"CROSS APPLY input_values " +
|
|
||||||
"GROUP BY cod_mart, unt_mis, input_values.data_inizio, input_values.data_fine " +
|
|
||||||
"HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 AND SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) > 0 " +
|
|
||||||
"ORDER BY cod_mart";
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> call, Throwable t) {
|
||||||
/*
|
onFailed.run(new Exception(t));
|
||||||
* Query splittata per cod_jfas (più pesante)
|
}
|
||||||
WITH input_values AS (SELECT '2021-02-15' AS data_inizio,
|
});
|
||||||
'2021-02-28' AS data_fine,
|
|
||||||
--'SC06' AS linea_prod,
|
|
||||||
'34' AS cod_mdep),
|
|
||||||
withdraw_mtb_colr AS (
|
|
||||||
SELECT cod_mart,
|
|
||||||
SUM(ISNULL(qta_col, 0)) as qta_col,
|
|
||||||
SUM(ISNULL(num_cnf, 0)) as num_cnf,
|
|
||||||
mtb_colr.data_ord,
|
|
||||||
mtb_colr.num_ord,
|
|
||||||
mtb_colr.gestione
|
|
||||||
FROM mtb_colr
|
|
||||||
INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and
|
|
||||||
mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo
|
|
||||||
WHERE segno = -1
|
|
||||||
and cod_dtip IS NULL
|
|
||||||
GROUP BY cod_mart,
|
|
||||||
mtb_colr.data_ord,
|
|
||||||
mtb_colr.num_ord,
|
|
||||||
mtb_colr.gestione
|
|
||||||
),
|
|
||||||
custom_mtb_colr AS (SELECT cod_mart,
|
|
||||||
SUM(qta_col) AS qta_col,
|
|
||||||
SUM(num_cnf) AS num_cnf,
|
|
||||||
posizione
|
|
||||||
FROM mvw_sitart_udc_det_inventario
|
|
||||||
GROUP BY cod_mart, posizione),
|
|
||||||
grouped_ord AS (
|
|
||||||
SELECT dtb_ordr.cod_mart,
|
|
||||||
dtb_ordt.cod_jfas,
|
|
||||||
dtb_ordt.cod_mdep,
|
|
||||||
dtb_ordt.gestione,
|
|
||||||
CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) -
|
|
||||||
SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord,
|
|
||||||
SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord,
|
|
||||||
SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata,
|
|
||||||
SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata
|
|
||||||
FROM dtb_ordr
|
|
||||||
INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND
|
|
||||||
dtb_ordr.data_ord = dtb_ordt.data_ord AND
|
|
||||||
dtb_ordr.num_ord = dtb_ordt.num_ord
|
|
||||||
LEFT OUTER JOIN withdraw_mtb_colr
|
|
||||||
ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND
|
|
||||||
withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND
|
|
||||||
withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND
|
|
||||||
withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart
|
|
||||||
CROSS APPLY input_values
|
|
||||||
WHERE dtb_ordt.gestione = 'L'
|
|
||||||
AND flag_evaso = 'I'
|
|
||||||
AND dtb_ordr.flag_evaso_forzato = 'N'
|
|
||||||
AND flag_annulla = 'N'
|
|
||||||
AND dtb_ordt.cod_mdep = input_values.cod_mdep
|
|
||||||
AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine
|
|
||||||
GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione
|
|
||||||
),
|
|
||||||
tmp_ord AS (SELECT grouped_ord.cod_mart,
|
|
||||||
mtb_aart.unt_mis,
|
|
||||||
grouped_ord.cod_jfas,
|
|
||||||
SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord,
|
|
||||||
SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord
|
|
||||||
FROM grouped_ord
|
|
||||||
INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart
|
|
||||||
CROSS APPLY input_values
|
|
||||||
GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas
|
|
||||||
),
|
|
||||||
ord_without_positioned_mtb_colt AS (
|
|
||||||
SELECT tmp_ord.cod_mart,
|
|
||||||
tmp_ord.cod_jfas,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione,
|
|
||||||
unt_mis,
|
|
||||||
qta_ord AS qta_ord_calc,
|
|
||||||
num_cnf_ord AS num_cnf_ord_calc,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
|
|
||||||
qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno,
|
|
||||||
num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno
|
|
||||||
FROM tmp_ord
|
|
||||||
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
|
|
||||||
AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione
|
|
||||||
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
|
|
||||||
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
|
|
||||||
tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT DISTINCT tmp_ord.cod_mart,
|
|
||||||
null AS cod_jfas,
|
|
||||||
jrl_fase_posizioni.posizione,
|
|
||||||
unt_mis,
|
|
||||||
0 AS qta_ord_calc,
|
|
||||||
0 AS num_cnf_ord_calc,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
|
|
||||||
0 AS qta_fabbisogno,
|
|
||||||
0 AS num_cnf_fabbisogno
|
|
||||||
FROM tmp_ord
|
|
||||||
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
|
|
||||||
AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione
|
|
||||||
|
|
||||||
|
|
||||||
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
|
|
||||||
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
|
|
||||||
jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione
|
|
||||||
)
|
|
||||||
SELECT cod_mart,
|
|
||||||
cod_jfas,
|
|
||||||
posizione,
|
|
||||||
unt_mis,
|
|
||||||
qta_ord_calc AS qta_ord,
|
|
||||||
num_cnf_ord_calc AS num_cnf_ord,
|
|
||||||
qta_gia_posizionata AS qta_col_versata,
|
|
||||||
num_cnf_gia_posizionata AS num_cnf_versata,
|
|
||||||
qta_ord_calc - qta_gia_posizionata AS qta_fabbisogno,
|
|
||||||
num_cnf_ord_calc - num_cnf_gia_posizionata AS num_cnf_fabbisogno
|
|
||||||
FROM ord_without_positioned_mtb_colt
|
|
||||||
|
|
||||||
ORDER BY cod_mart, posizione
|
|
||||||
* */
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
|
|
||||||
this.mSystemRESTConsumer.processSql(sql, typeOfObjectsList, onComplete, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
public interface ProdFabbisognoLineeProdRESTConsumerService
|
||||||
|
{
|
||||||
|
@GET("wms/approvvigionamento/retrieveFabbisogno")
|
||||||
|
Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> loadFabbisogno(@Query("startDate") String startDate,
|
||||||
|
@Query("endDate") String endDate,
|
||||||
|
@Query("codMdep") String codMdep);
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user