Aggiunto AvailableClassMercDTO in OrdiniDiLavorazione
This commit is contained in:
@@ -3,10 +3,12 @@ package it.integry.ems.production.dto;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import it.integry.ems.adapter.JsonDateAdapterSerializer;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoDTO;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class OrdineLavorazioneDTO {
|
||||
|
||||
@@ -358,6 +360,8 @@ public class OrdineLavorazioneDTO {
|
||||
@JsonSerialize
|
||||
private Integer idLotto;
|
||||
|
||||
private List<AvailableClassMercDTO> availableClassMerc;
|
||||
|
||||
public Date getDataOrdProd() {
|
||||
return dataOrdProd;
|
||||
}
|
||||
@@ -934,4 +938,37 @@ public class OrdineLavorazioneDTO {
|
||||
this.maxFase = maxFase;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<AvailableClassMercDTO> getAvailableClassMerc() {
|
||||
return availableClassMerc;
|
||||
}
|
||||
|
||||
public OrdineLavorazioneDTO setAvailableClassMerc(List<AvailableClassMercDTO> availableClassMerc) {
|
||||
this.availableClassMerc = availableClassMerc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public static class AvailableClassMercDTO {
|
||||
|
||||
private String codMgrp;
|
||||
private List<String> codMsgr;
|
||||
|
||||
public String getCodMgrp() {
|
||||
return codMgrp;
|
||||
}
|
||||
|
||||
public AvailableClassMercDTO setCodMgrp(String codMgrp) {
|
||||
this.codMgrp = codMgrp;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<String> getCodMsgr() {
|
||||
return codMsgr;
|
||||
}
|
||||
|
||||
public AvailableClassMercDTO setCodMsgr(List<String> codMsgr) {
|
||||
this.codMsgr = codMsgr;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import it.integry.annotations.PostContextConstruct;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.production.dto.OrdineLavorazioneDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoGroupMercDTO;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
@@ -13,6 +15,7 @@ import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityQuery;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -476,10 +479,10 @@ public class ProductionOrderDataHandlerService {
|
||||
" ORDER BY dtb_ordr.data_ord, dtb_ordr.num_ord, dtb_ordr.pos_riga, dtb_ordt.num_ord";
|
||||
}
|
||||
|
||||
List<OrdineLavorazioneDTO> ordiniInevasiList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, OrdineLavorazioneDTO.class);
|
||||
List<OrdineLavorazioneDTO> ordiniLavorazioneList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, OrdineLavorazioneDTO.class);
|
||||
|
||||
if (ordiniInevasiList != null && ordiniInevasiList.size() > 0) {
|
||||
for (OrdineLavorazioneDTO ordineDTO : ordiniInevasiList) {
|
||||
if (ordiniLavorazioneList != null && !ordiniLavorazioneList.isEmpty()) {
|
||||
for (OrdineLavorazioneDTO ordineDTO : ordiniLavorazioneList) {
|
||||
|
||||
if (ordineDTO.getStato().equalsIgnoreCase("IN CORSO")) {
|
||||
|
||||
@@ -511,7 +514,61 @@ public class ProductionOrderDataHandlerService {
|
||||
}
|
||||
}
|
||||
|
||||
return ordiniInevasiList;
|
||||
if (ordiniLavorazioneList == null || ordiniLavorazioneList.isEmpty())
|
||||
return null;
|
||||
|
||||
List<HashMap<String, Object>> orderKeys = Stream.of(ordiniLavorazioneList)
|
||||
.map(x -> {
|
||||
HashMap<String, Object> orderKey = new HashMap<>();
|
||||
|
||||
orderKey.put("dtb_ordr.gestione", x.getGestione());
|
||||
orderKey.put("dtb_ordr.num_ord", x.getNumOrd());
|
||||
orderKey.put("dtb_ordr.data_ord", x.getDataOrd());
|
||||
|
||||
return orderKey;
|
||||
}).toList();
|
||||
|
||||
String sql = "SELECT DISTINCT data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" gestione,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr\n" +
|
||||
"FROM dtb_ordr\n" +
|
||||
" INNER JOIN mtb_aart on dtb_ordr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
"WHERE dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordr.flag_evaso_forzato = 'N'" +
|
||||
" AND (" + UtilityQuery.concatFieldListInWhereCond(orderKeys) + ")";
|
||||
|
||||
List<OrdineInevasoGroupMercDTO> grpMerc =
|
||||
UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, OrdineInevasoGroupMercDTO.class);
|
||||
|
||||
if (grpMerc == null || grpMerc.isEmpty())
|
||||
return ordiniLavorazioneList;
|
||||
|
||||
Stream.of(ordiniLavorazioneList)
|
||||
.forEach(order -> {
|
||||
final Map<String, List<OrdineInevasoGroupMercDTO>> groups = grpMerc.stream()
|
||||
.filter(x -> Objects.equals(x.getNumOrd(), order.getNumOrd()) &&
|
||||
x.getDataOrd().equals(order.getDataOrd()) &&
|
||||
x.getGestione().equalsIgnoreCase(order.getGestione()))
|
||||
.collect(Collectors.groupingBy(OrdineInevasoGroupMercDTO::getCodMgrp));
|
||||
|
||||
if (!groups.isEmpty()) {
|
||||
order.setAvailableClassMerc(new ArrayList<>());
|
||||
|
||||
for (Map.Entry<String, List<OrdineInevasoGroupMercDTO>> entry : groups.entrySet()) {
|
||||
order.getAvailableClassMerc()
|
||||
.add(new OrdineLavorazioneDTO.AvailableClassMercDTO()
|
||||
.setCodMgrp(entry.getKey())
|
||||
.setCodMsgr(entry.getValue().stream()
|
||||
.map(OrdineInevasoGroupMercDTO::getCodMsgr)
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return ordiniLavorazioneList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user