Finish v1.34.04(388)

This commit is contained in:
Giuseppe Scorrano 2023-07-11 09:29:51 +02:00
commit a8aaf69c57
18 changed files with 338 additions and 155 deletions

10
.idea/deploymentTargetDropDown.xml generated Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
<State />
</entry>
</value>
</component>
</project>

10
.idea/migrations.xml generated Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

View File

@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 387 def appVersionCode = 388
def appVersionName = '1.34.03' def appVersionName = '1.34.04'
signingConfigs { signingConfigs {
release { release {

View File

@ -1,15 +0,0 @@
package it.integry.integrywmsnative.core.model;
public class MtbAartWithFornitore extends MtbAart {
private String codArtFor;
public String getCodArtFor() {
return codArtFor;
}
public MtbAartWithFornitore setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
return this;
}
}

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.rest.consumers; package it.integry.integrywmsnative.core.rest.consumers;
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@ -19,6 +18,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO; import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
import it.integry.integrywmsnative.core.utility.UtilityQuery; import it.integry.integrywmsnative.core.utility.UtilityQuery;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
@ -59,26 +59,28 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public static void getByCodMartsStatic(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) { public static void getByCodMartsStatic(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
String joinedCods = Stream.of(codMartToFind) var codMarts = Stream.of(codMartToFind)
.withoutNulls() .withoutNulls()
.distinct() .distinct().toList();
.collect(Collectors.joining(","));
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumer.getByCodMart(joinedCods).enqueue(new Callback<>() { articoloRESTConsumer
@Override .getByCodMart(new RetrieveArticoloByCodMartRequestDTO()
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { .setCodMarts(codMarts))
analyzeAnswer(response, "getByCodMart", (m) -> { .enqueue(new Callback<>() {
onComplete.run(response.body().getEntityList()); @Override
}, onFailed); public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
} analyzeAnswer(response, "getByCodMart", (m) -> {
onComplete.run(response.body().getEntityList());
}, onFailed);
}
@Override @Override
public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) {
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
} }
@ -103,22 +105,25 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) { public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) {
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumer.getByCodMart(codMartToFind).enqueue(new Callback<>() { articoloRESTConsumer.getByCodMart(
@Override new RetrieveArticoloByCodMartRequestDTO()
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { .setCodMarts(Collections.singletonList(codMartToFind)))
analyzeAnswer(response, "getByCodMart", (m) -> { .enqueue(new Callback<>() {
if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) { @Override
onComplete.run(response.body().getEntityList().get(0)); public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
} else onComplete.run(null); analyzeAnswer(response, "getByCodMart", (m) -> {
if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) {
onComplete.run(response.body().getEntityList().get(0));
} else onComplete.run(null);
}, onFailed); }, onFailed);
} }
@Override @Override
public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) {
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
} }

View File

@ -5,7 +5,9 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO; import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.Query; import retrofit2.http.Query;
@ -16,8 +18,8 @@ public interface ArticoloRESTConsumerService {
@POST("SM2getArticoloByBarcode") @POST("SM2getArticoloByBarcode")
Call<ServiceRESTResponse<MtbAart>> getByBarcodeProd(@Query("barcode") String barcodeProd); Call<ServiceRESTResponse<MtbAart>> getByBarcodeProd(@Query("barcode") String barcodeProd);
@GET("SM2getArticoloByCodMart") @POST("wms/articolo/retrieveByCodMart")
Call<ServiceRESTResponse<MtbAart>> getByCodMart(@Query("codMart") String barcodeProd); Call<ServiceRESTResponse<MtbAart>> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
@GET("getProductLotStatus") @GET("getProductLotStatus")
Call<ServiceRESTResponse<List<StatoArticoloDTO>>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag); Call<ServiceRESTResponse<List<StatoArticoloDTO>>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag);

View File

@ -58,7 +58,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void saveCollo(MtbColt mtbColtToSave, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public void saveCollo(MtbColt mtbColtToSave, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone(); MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone();
mtbColtToSave.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); mtbColtToSaveClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
mtbColtToSaveClone.setOnlyPkMaster(false);
mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>()); mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>());

View File

@ -70,7 +70,7 @@ public class InventarioRESTConsumer extends _BaseRESTConsumer {
var request = new InsertInventarioRequestDTO() var request = new InsertInventarioRequestDTO()
.setMtbInvent(inventarioToInsert); .setMtbInvent(inventarioToInsert);
var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 120); var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 300);
inventarioRESTConsumerService inventarioRESTConsumerService
.insert(inventarioToInsert.getIdInventario(), request) .insert(inventarioToInsert.getIdInventario(), request)
.enqueue(new Callback<>() { .enqueue(new Callback<>() {

View File

@ -0,0 +1,17 @@
package it.integry.integrywmsnative.core.rest.model.articolo;
import java.util.List;
public class RetrieveArticoloByCodMartRequestDTO {
private List<String> codMarts;
public List<String> getCodMarts() {
return codMarts;
}
public RetrieveArticoloByCodMartRequestDTO setCodMarts(List<String> codMarts) {
this.codMarts = codMarts;
return this;
}
}

View File

@ -178,7 +178,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
v -> initBottomSheetDialogFilter(filterChipDTO)); v -> initBottomSheetDialogFilter(filterChipDTO));
switch (filterChipDTO.getID()) { switch (filterChipDTO.getID()) {
case AccettazionePickingBindings.COD_ART_FILTER_ID: case AccettazionePickingBindings.COD_ART_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentCodArtPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { mAppliedFilterViewModel.getCurrentCodArtPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override @Override
public void run() { public void run() {
@ -199,8 +199,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
} }
}); });
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentCodArtPredicate().set(null)); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentCodArtPredicate().set(null));
break; }
case AccettazionePickingBindings.DESCR_FILTER_ID: case AccettazionePickingBindings.DESCR_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override @Override
public void run() { public void run() {
@ -221,8 +221,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
} }
}); });
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null)); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null));
break; }
case AccettazionePickingBindings.POS_FILTER_ID: case AccettazionePickingBindings.POS_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override @Override
public void run() { public void run() {
@ -243,7 +243,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
} }
}); });
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentPosPredicate().set(null)); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentPosPredicate().set(null));
break; }
} }
this.mBindings.filterChipsGroup.addView(filterChipView); this.mBindings.filterChipsGroup.addView(filterChipView);
@ -262,43 +262,39 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.getFilterLayoutView(); .getFilterLayoutView();
switch (filterChipDTO.getID()) { switch (filterChipDTO.getID()) {
case AccettazionePickingBindings.COD_ART_FILTER_ID: case AccettazionePickingBindings.COD_ART_FILTER_ID ->
((FilterCodArtLayoutView) filterLayoutView) ((FilterCodArtLayoutView) filterLayoutView)
.setAll(mAppliedFilterViewModel.getAllCodArts()) .setAll(mAppliedFilterViewModel.getAllCodArts())
.setAvailable(mAppliedFilterViewModel.getAvailableCodArts()) .setAvailable(mAppliedFilterViewModel.getAvailableCodArts())
.setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter) .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter)
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
.filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ?
x -> false : x -> false :
mAppliedFilterViewModel.getCurrentCodArtPredicate().get()) mAppliedFilterViewModel.getCurrentCodArtPredicate().get())
.map(x -> x.getSitArtOrdDTO().getCodMart()) .map(x -> x.getSitArtOrdDTO().getCodMart())
.toList()); .toList());
break; case AccettazionePickingBindings.DESCR_FILTER_ID ->
case AccettazionePickingBindings.DESCR_FILTER_ID: ((FilterDescrLayoutView) filterLayoutView)
((FilterDescrLayoutView) filterLayoutView) .setAll(mAppliedFilterViewModel.getAllDescrs())
.setAll(mAppliedFilterViewModel.getAllDescrs()) .setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
.setAvailable(mAppliedFilterViewModel.getAvailableDescrs()) .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter)
.setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter) .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ?
.filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? x -> false :
x -> false : mAppliedFilterViewModel.getCurrentDescrPredicate().get())
mAppliedFilterViewModel.getCurrentDescrPredicate().get()) .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt())
.map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()) .toList());
.toList()); case AccettazionePickingBindings.POS_FILTER_ID ->
break; ((FilterPosizioneLayoutView) filterLayoutView)
case AccettazionePickingBindings.POS_FILTER_ID: .setAll(mAppliedFilterViewModel.getAllPos())
((FilterPosizioneLayoutView) filterLayoutView) .setAvailable(mAppliedFilterViewModel.getAvailablePos())
.setAll(mAppliedFilterViewModel.getAllPos()) .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter)
.setAvailable(mAppliedFilterViewModel.getAvailablePos()) .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
.setOnFilterApplied(mAppliedFilterViewModel::setPosFilter) .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ?
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) x -> false :
.filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? mAppliedFilterViewModel.getCurrentPosPredicate().get())
x -> false : .map(x -> x.getMtbAart().getPosizione())
mAppliedFilterViewModel.getCurrentPosPredicate().get()) .toList());
.map(x -> x.getMtbAart().getPosizione())
.toList());
break;
} }
if (!filterLayoutView.isAdded()) if (!filterLayoutView.isAdded())
@ -373,9 +369,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
} }
private void refreshList() { private void refreshList() {
//this.onLoadingStarted();
//new Thread(() -> {
runOnUiThread(() -> { runOnUiThread(() -> {
List<PickingObjectDTO> tmpList; List<PickingObjectDTO> tmpList;
@ -393,7 +386,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
this.mAccettazioneMutableData.addAll(list); this.mAccettazioneMutableData.addAll(list);
this.noItemsToPick.set(!isThereAnyItemToPick(tmpList)); this.noItemsToPick.set(!isThereAnyItemToPick(tmpList));
//this.onLoadingEnded();
}); });
} }
@ -402,21 +394,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO)) .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO))
.toList(); .toList();
List<AccettazioneListModel> sortedList = null; return switch (mCurrentOrderBy) {
case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList);
switch (mCurrentOrderBy) { case DESCR_ART -> convertDataModelToListModel__DescrArt(tmpList);
case COD_ART_FOR: case RAG_SOC_COM -> convertDataModelToListModel__RagSocCom(tmpList);
sortedList = convertDataModelToListModel__CodArtForn(tmpList); };
break;
case DESCR_ART:
sortedList = convertDataModelToListModel__DescrArt(tmpList);
break;
case RAG_SOC_COM:
sortedList = convertDataModelToListModel__RagSocCom(tmpList);
break;
}
return sortedList;
} }
private List<AccettazioneListModel> convertDataModelToListModel__CodArtForn(List<PickingObjectDTO> dataList) { private List<AccettazioneListModel> convertDataModelToListModel__CodArtForn(List<PickingObjectDTO> dataList) {

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLo
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneStatoEnum;
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException; import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
public class ProdRientroMerceViewModel { public class ProdRientroMerceViewModel {
@ -32,7 +35,14 @@ public class ProdRientroMerceViewModel {
String codAnag = SettingsManager.iDB().getFilterFornitoreProd(); String codAnag = SettingsManager.iDB().getFilterFornitoreProd();
this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> { this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> {
this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList); List<OrdineLavorazioneDTO> filteredList = null;
if(ordiniLavorazioneList != null)
filteredList = Stream.of(ordiniLavorazioneList)
.filter(x -> x.getStatoEnum() != OrdineLavorazioneStatoEnum.PROGRAMMATO)
.toList();
this.mOrdiniLavorazioneAperti.postValue(filteredList);
this.sendOnOrdersLoadingEnded(); this.sendOnOrdersLoadingEnded();
}, ex -> this.sendError(new OrdersLoadException(ex))); }, ex -> this.sendError(new OrdersLoadException(ex)));
} }

View File

@ -183,7 +183,13 @@ public class RettificaGiacenzeViewModel {
mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> { mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> {
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
List<MtbAart> mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x).toList(); List<MtbAart> mtbAarts = null;
if (listaArts != null)
mtbAarts = Stream.of(listaArts)
.map(x -> (MtbAart) x.getMtbAart())
.toList();
dispatchArts(mtbAarts); dispatchArts(mtbAarts);
}, this::sendError); }, this::sendError);
} }

View File

@ -0,0 +1,15 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
public class SearchArticoloByBarcodeOrCodMartRequestDTO {
private String codMartOrBarcode;
public String getCodMartOrBarcode() {
return codMartOrBarcode;
}
public SearchArticoloByBarcodeOrCodMartRequestDTO setCodMartOrBarcode(String codMartOrBarcode) {
this.codMartOrBarcode = codMartOrBarcode;
return this;
}
}

View File

@ -0,0 +1,60 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart;
public class SearchArticoloByBarcodeOrCodMartResponseDTO {
private MtbAart mtbAart;
private BigDecimal qtaEsistente;
private BigDecimal qtaImpegnata;
private BigDecimal numCnfEsistente;
private BigDecimal numCnfImpegnata;
public MtbAart getMtbAart() {
return mtbAart;
}
public SearchArticoloByBarcodeOrCodMartResponseDTO setMtbAart(MtbAart mtbAart) {
this.mtbAart = mtbAart;
return this;
}
public BigDecimal getQtaEsistente() {
return qtaEsistente;
}
public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaEsistente(BigDecimal qtaEsistente) {
this.qtaEsistente = qtaEsistente;
return this;
}
public BigDecimal getQtaImpegnata() {
return qtaImpegnata;
}
public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaImpegnata(BigDecimal qtaImpegnata) {
this.qtaImpegnata = qtaImpegnata;
return this;
}
public BigDecimal getNumCnfEsistente() {
return numCnfEsistente;
}
public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfEsistente(BigDecimal numCnfEsistente) {
this.numCnfEsistente = numCnfEsistente;
return this;
}
public BigDecimal getNumCnfImpegnata() {
return numCnfImpegnata;
}
public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfImpegnata(BigDecimal numCnfImpegnata) {
this.numCnfImpegnata = numCnfImpegnata;
return this;
}
}

View File

@ -0,0 +1,27 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
public class SearchArticoloByCodArtFornOrDescrizioneRequestDTO {
private String codAlis;
private String codArtFornOrDescrizione;
public String getCodAlis() {
return codAlis;
}
public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodAlis(String codAlis) {
this.codAlis = codAlis;
return this;
}
public String getCodArtFornOrDescrizione() {
return codArtFornOrDescrizione;
}
public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodArtFornOrDescrizione(String codArtFornOrDescrizione) {
this.codArtFornOrDescrizione = codArtFornOrDescrizione;
return this;
}
}

View File

@ -0,0 +1,28 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
import it.integry.integrywmsnative.core.model.MtbAart;
public class SearchArticoloByCodArtFornOrDescrizioneResponseDTO {
private MtbAart mtbAart;
private String codArtFor;
public MtbAart getMtbAart() {
return mtbAart;
}
public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setMtbAart(MtbAart mtbAart) {
this.mtbAart = mtbAart;
return this;
}
public String getCodArtFor() {
return codArtFor;
}
public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
return this;
}
}

View File

@ -1,25 +1,28 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; package it.integry.integrywmsnative.gest.rettifica_giacenze.rest;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
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.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbAartWithFornitore;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
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.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
@ -45,49 +48,56 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
} }
public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<ArrayList<MtbAartWithFornitore>> onComplete, RunnableArgs<Exception> onFailed) { public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<List<SearchArticoloByCodArtFornOrDescrizioneResponseDTO>> onComplete, RunnableArgs<Exception> onError) {
String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " + final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class);
" WHERE mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) + service.searchByCodArtFornOrDescrizione(new SearchArticoloByCodArtFornOrDescrizioneRequestDTO()
" AND mtb_lisa.cod_mart = mtb_aart.cod_mart " + .setCodAlis(codAlis)
" AND mtb_lisa.cod_mart = mtb_part.cod_mart " + .setCodArtFornOrDescrizione(codArtForOrDescr))
" AND mtb_part.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "' " + .enqueue(new Callback<>() {
" AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr + "%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " + @Override
" ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa"; public void onResponse(Call<ServiceRESTResponse<List<SearchArticoloByCodArtFornOrDescrizioneResponseDTO>>> call,
Response<ServiceRESTResponse<List<SearchArticoloByCodArtFornOrDescrizioneResponseDTO>>> response) {
analyzeAnswer(response, "searchByCodArtFornOrDescrizione", onComplete, onError);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<SearchArticoloByCodArtFornOrDescrizioneResponseDTO>>> call, Throwable t) {
onError.run(new Exception(t));
}
});
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {
}.getType();
mSystemRestConsumer.<ArrayList<MtbAartWithFornitore>>processSql(sql, typeOfObjectsList, value -> {
if (onComplete != null) onComplete.run(value);
}, onFailed);
} }
public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs<ArrayList<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) { public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onError) {
String sql = "SELECT DISTINCT mtb_aart.*," + final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class);
" qta_esistente, " + service.searchByCodMartOrBarcode(new SearchArticoloByBarcodeOrCodMartRequestDTO()
" qta_imp_cli + qta_imp_lav AS qta_impegnata, " + .setCodMartOrBarcode(codMartOrBarcodeOrDescr))
" num_esistente AS num_cnf_esistente, " + .enqueue(new Callback<>() {
" num_imp_cli + num_imp_lav AS num_cnf_impegnata " + @Override
" FROM mtb_aart " + public void onResponse(Call<ServiceRESTResponse<List<SearchArticoloByBarcodeOrCodMartResponseDTO>>> call,
" LEFT OUTER JOIN mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart " + Response<ServiceRESTResponse<List<SearchArticoloByBarcodeOrCodMartResponseDTO>>> response) {
" LEFT OUTER JOIN mtb_part mp on mtb_aart.cod_mart = mp.cod_mart " + analyzeAnswer(response, "searchByCodMartOrBarcode", data -> {
" AND mp.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "'" +
" WHERE CASE" +
" WHEN LEN(mvw_barcode.cod_barre) > 13 THEN mvw_barcode.cod_barre " +
" ELSE Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre " +
" END LIKE '%' + CASE " +
" WHEN LEN('" + codMartOrBarcodeOrDescr + "') > 13 THEN '" + codMartOrBarcodeOrDescr + "' " +
" ELSE Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" +
" END " +
"OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " +
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() { var listToReturn = Stream.of(data)
}.getType(); .map(x -> x.getMtbAart()
mSystemRestConsumer.<ArrayList<MtbAart>>processSql(sql, typeOfObjectsList, value -> { .setQtaEsistente(x.getQtaEsistente())
if (onComplete != null) onComplete.run(value); .setQtaImpegnata(x.getQtaImpegnata())
}, onFailed); .setNumCnfEsistente(x.getNumCnfEsistente())
.setNumCnfImpegnata(x.getNumCnfImpegnata()))
.toList();
onComplete.run(listToReturn);
}, onError);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<SearchArticoloByBarcodeOrCodMartResponseDTO>>> call, Throwable t) {
onError.run(new Exception(t));
}
});
} }

View File

@ -1,7 +1,13 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; package it.integry.integrywmsnative.gest.rettifica_giacenze.rest;
import java.util.List;
import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.POST; import retrofit2.http.POST;
@ -9,6 +15,14 @@ import retrofit2.http.POST;
public interface RettificaGiacenzeRESTConsumerService { public interface RettificaGiacenzeRESTConsumerService {
@POST("wms/articolo/searchByCodArtFornOrDescrizione")
Call<ServiceRESTResponse<List<SearchArticoloByCodArtFornOrDescrizioneResponseDTO>>> searchByCodArtFornOrDescrizione(
@Body SearchArticoloByCodArtFornOrDescrizioneRequestDTO searchArticoloByCodArtFornOrDescrizioneRequest);
@POST("wms/articolo/searchByCodMartOrBarcode")
Call<ServiceRESTResponse<List<SearchArticoloByBarcodeOrCodMartResponseDTO>>> searchByCodMartOrBarcode(
@Body SearchArticoloByBarcodeOrCodMartRequestDTO searchArticoloByBarcodeOrCodMartRequest);
@POST("saveDocFromPickingPvm") @POST("saveDocFromPickingPvm")
Call<ServiceRESTResponse<Void>> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); Call<ServiceRESTResponse<Void>> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO);