Piccolo refactoring ICONImportService
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -10,13 +10,13 @@ import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -31,6 +31,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@@ -196,7 +197,7 @@ public class ICONImportService {
|
||||
public List<MtbColt> returnMissionePicking(String type, String format, List<AnomalieDTO> anomalies) throws Exception {
|
||||
String serColloMagAuto = null, gestioneMagMaga = null, filtroOrdini = null, codAnag = null, codVdes = null, codVlis = null, codMdep = null;
|
||||
LocalDate dataColloMagAuto = null;
|
||||
Date dataOrd = null;
|
||||
LocalDate dataOrd = null;
|
||||
Integer numColloMagAuto = null, numOrd = null;
|
||||
List<ServiceRestResponse> respList = new ArrayList<ServiceRestResponse>();
|
||||
List<MtbColt> colTDistributed = new ArrayList<MtbColt>();
|
||||
@@ -224,16 +225,13 @@ public class ICONImportService {
|
||||
" from mtb_colt " +
|
||||
" where posizione = " + UtilityDB.valueToString(posizione) + " and " +
|
||||
" segno = 1 ";
|
||||
PreparedStatement psInfo = conn.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
ResultSet resInfo = psInfo.executeQuery();
|
||||
while (resInfo.next()) {
|
||||
dataColloMagAuto = UtilityLocalDate.localDateFromDate(resInfo.getDate(1));
|
||||
serColloMagAuto = resInfo.getString(2);
|
||||
numColloMagAuto = resInfo.getInt(3);
|
||||
gestioneMagMaga = resInfo.getString(4);
|
||||
}
|
||||
resInfo.close();
|
||||
psInfo.close();
|
||||
|
||||
final HashMap<String, Object> result = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
||||
dataColloMagAuto = UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(result, "data_collo"));
|
||||
serColloMagAuto = UtilityHashMap.getValueIfExists(result, "ser_collo");
|
||||
numColloMagAuto = UtilityHashMap.getValueIfExists(result, "num_collo");
|
||||
gestioneMagMaga = UtilityHashMap.getValueIfExists(result, "gestione");
|
||||
|
||||
|
||||
// Acquisizione liste importare da ICON con successo
|
||||
query = "SELECT tmkeymov, " +
|
||||
@@ -248,12 +246,13 @@ public class ICONImportService {
|
||||
" tmdirflu = " + UtilityDB.valueToString(dirFlu) + " and " +
|
||||
" left(tmparmte, 2) = 'P|' ";
|
||||
|
||||
PreparedStatement ps = conICON.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
ResultSet res = ps.executeQuery();
|
||||
while (res.next()) {
|
||||
Integer keyMov = res.getInt(1);
|
||||
String tmparmte = res.getString(2);
|
||||
String nomeLista = res.getString(4);
|
||||
final List<HashMap<String, Object>> iconImportedLists = UtilityDB.executeSimpleQuery(conICON, query);
|
||||
|
||||
for (HashMap<String, Object> iconImportedRow : iconImportedLists) {
|
||||
|
||||
Integer keyMov = UtilityHashMap.getValueIfExists(iconImportedRow, "tmkeymov");
|
||||
String tmparmte = UtilityHashMap.getValueIfExists(iconImportedRow, "tmparmte");
|
||||
String nomeLista = UtilityHashMap.getValueIfExists(iconImportedRow, "tmname");
|
||||
|
||||
// Acquisizione estremi ordini di vendita
|
||||
String[] keyApprov = tmparmte.split("\\|");
|
||||
@@ -266,13 +265,13 @@ public class ICONImportService {
|
||||
// Se il collo esiste e ci sono già delle righe all'interno allora vuol dire che la missione è stata chiusa parzialmente e ripresa successivamente
|
||||
// quindi è necessario creare un nuovo collo (testata uguale al precedente in modo da acquisre il filtro ordine)
|
||||
boolean existCollo = false, isPickingLibero = false;
|
||||
;
|
||||
|
||||
int isPartialPicking = 0;
|
||||
query = "select mtb_colt.filtro_ordini, " +
|
||||
" mtb_colt.cod_mdep, " +
|
||||
" mtb_colt.data_ord, " +
|
||||
" mtb_colt.num_ord, " +
|
||||
" sum(case when mtb_colr.cod_mart is null then 0 else 1 end ) as existRow " +
|
||||
query = "select mtb_colt.filtro_ordini AS filtro_ordini, " +
|
||||
" mtb_colt.cod_mdep AS cod_mdep, " +
|
||||
" mtb_colt.data_ord AS data_ord, " +
|
||||
" mtb_colt.num_ord AS num_ord, " +
|
||||
" sum(case when mtb_colr.cod_mart is null then 0 else 1 end ) AS existRow " +
|
||||
" from mtb_colt LEFT OUTER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione and " +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo and " +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo and " +
|
||||
@@ -285,28 +284,28 @@ public class ICONImportService {
|
||||
" mtb_colt.cod_mdep, " +
|
||||
" mtb_colt.data_ord, " +
|
||||
" mtb_colt.num_ord";
|
||||
psInfo = conn.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
resInfo = psInfo.executeQuery();
|
||||
while (resInfo.next()) {
|
||||
existCollo = true;
|
||||
filtroOrdini = resInfo.getString(1);
|
||||
codMdep = resInfo.getString(2);
|
||||
dataOrd = resInfo.getDate(3);
|
||||
numOrd = resInfo.getInt(4);
|
||||
isPartialPicking = resInfo.getInt(5);
|
||||
|
||||
final HashMap<String, Object> openedPickingResult = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
||||
existCollo = openedPickingResult != null;
|
||||
|
||||
if(existCollo) {
|
||||
filtroOrdini = UtilityHashMap.getValueIfExists(openedPickingResult, "filtro_ordini");
|
||||
codMdep = UtilityHashMap.getValueIfExists(openedPickingResult, "cod_mdep");
|
||||
dataOrd = UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(openedPickingResult, "data_ord"));
|
||||
numOrd = UtilityHashMap.getValueIfExists(openedPickingResult, "num_ord");
|
||||
isPartialPicking = UtilityHashMap.getValueIfExists(openedPickingResult, "existRow");
|
||||
|
||||
if (dataOrd == null) {
|
||||
isPickingLibero = true;
|
||||
}
|
||||
}
|
||||
resInfo.close();
|
||||
psInfo.close();
|
||||
|
||||
|
||||
// Se il collo di partenza non esiste allora viene saltata la missione ed inviato un messaggio di
|
||||
// alert impostando come importata la lista in modo da non creare intasamento nelle mail di notifica
|
||||
if (existCollo) {
|
||||
List<MtbColt> listImported = new ArrayList<MtbColt>();
|
||||
Integer index = 0;
|
||||
int index = 0;
|
||||
query = "SELECT rmcodart, " +
|
||||
" sum(rmqtamov) as qta_mov " +
|
||||
" FROM [dbo].[mvrig01l]" +
|
||||
@@ -335,7 +334,7 @@ public class ICONImportService {
|
||||
colT.setRifOrd("PICKING LIBERO");
|
||||
}
|
||||
colT.setSegno(-1);
|
||||
colT.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
colT.setDataOrd(dataOrd);
|
||||
colT.setNumOrd(numOrd);
|
||||
colT.setCodMdep(codMdep);
|
||||
colT.setAnnotazioni(nomeLista);
|
||||
@@ -365,7 +364,6 @@ public class ICONImportService {
|
||||
// Se non vi è il filtro ordini allora vuol dire che si tratta di un picking libero e quindi veiene solo registrato il collo di partenza
|
||||
if (filtroOrdini != null) {
|
||||
// Distribuzione collo vendita
|
||||
List<MtbColt> colTDistr = new ArrayList<>();
|
||||
DistribuzioneColliService distrCollo = new DistribuzioneColliService();
|
||||
FiltroDistribuzioneColloDTO filtro = new FiltroDistribuzioneColloDTO();
|
||||
filtro.setGestione(collo.getGestione());
|
||||
@@ -373,7 +371,7 @@ public class ICONImportService {
|
||||
filtro.setSerCollo(collo.getSerCollo());
|
||||
filtro.setNumCollo(collo.getNumCollo());
|
||||
filtro.setCriterioDistribuzione("U");
|
||||
colTDistr = distrCollo.distribuzioneRigheColloNew(filtro, true);
|
||||
List<MtbColt> colTDistr = distrCollo.distribuzioneRigheColloNew(filtro, true);
|
||||
colTDistributed.addAll(colTDistr);
|
||||
|
||||
entityProcessor.processEntityList(colTDistr, multiDBTransactionManager, true);
|
||||
@@ -391,25 +389,21 @@ public class ICONImportService {
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo and " +
|
||||
" mtb_colr.riga_ord is null ";
|
||||
|
||||
psInfo = multiDBTransactionManager.prepareStatement(query);
|
||||
resInfo = psInfo.executeQuery();
|
||||
MtbColt colloDistribuito = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
|
||||
ResultSetMapper mapper = new ResultSetMapper();
|
||||
List<MtbColt> colloDistribuito = mapper.mapResultSetToList(resInfo, MtbColt.class);
|
||||
|
||||
if (colloDistribuito != null && !colloDistribuito.isEmpty()) {
|
||||
if (colloDistribuito != null) {
|
||||
String errorText = "(PICKING) Referenze non distribuite su collo N. " + collo.getNumCollo() + " relativa alla lista " + nomeLista + ". Alcune referenze potrebbero essere cambiate nell'ordine dopo avere effettuata la lista di movimentazione articoli";
|
||||
anomalies.add(AnomalieDTO.error(errorText));
|
||||
|
||||
// Se ci sono righe che non sono state distribuite allora bisognerà assegnare il primo codice commessa utile presente negli ordini e il codice del cliente
|
||||
colloDistribuito.get(0).setOperation(OperationType.UPDATE);
|
||||
colloDistribuito.get(0).setGestione(gestione);
|
||||
colloDistribuito.get(0).setDataCollo(dataCollo);
|
||||
colloDistribuito.get(0).setSerCollo(serCollo);
|
||||
colloDistribuito.get(0).setNumCollo(collo.getNumCollo());
|
||||
colloDistribuito.get(0).setCodAnag(colTDistr.get(0).getCodAnag());
|
||||
colloDistribuito.get(0).setCodVdes(colTDistr.get(0).getCodVdes());
|
||||
colloDistribuito.get(0).setMtbColr(new ArrayList<MtbColr>());
|
||||
colloDistribuito.setOperation(OperationType.UPDATE);
|
||||
colloDistribuito.setGestione(gestione);
|
||||
colloDistribuito.setDataCollo(dataCollo);
|
||||
colloDistribuito.setSerCollo(serCollo);
|
||||
colloDistribuito.setNumCollo(collo.getNumCollo());
|
||||
colloDistribuito.setCodAnag(colTDistr.get(0).getCodAnag());
|
||||
colloDistribuito.setCodVdes(colTDistr.get(0).getCodVdes());
|
||||
colloDistribuito.setMtbColr(new ArrayList<>());
|
||||
|
||||
query =
|
||||
"SELECT riga FROM mtb_colr " +
|
||||
@@ -418,19 +412,18 @@ public class ICONImportService {
|
||||
" ser_collo = " + UtilityDB.valueToString(serCollo) + " and " +
|
||||
" num_collo = " + UtilityDB.valueToString(collo.getNumCollo());
|
||||
|
||||
psInfo = conn.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
resInfo = psInfo.executeQuery();
|
||||
while (resInfo.next()) {
|
||||
final HashMap<String, Object> resultMtbColr = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
||||
|
||||
if(resultMtbColr != null){
|
||||
MtbColr colR = new MtbColr();
|
||||
colR.setOperation(OperationType.UPDATE);
|
||||
colR.setRiga(resInfo.getInt(1));
|
||||
colR.setRiga(UtilityHashMap.getValueIfExists(resultMtbColr, "riga"));
|
||||
colR.setCodJcom(colTDistr.get(0).getMtbColr().get(0).getCodJcom());
|
||||
colloDistribuito.get(0).getMtbColr().add(colR);
|
||||
colloDistribuito.getMtbColr().add(colR);
|
||||
}
|
||||
psInfo.close();
|
||||
resInfo.close();
|
||||
|
||||
entityProcessor.processEntityList(colloDistribuito, multiDBTransactionManager, true);
|
||||
|
||||
entityProcessor.processEntity(colloDistribuito, multiDBTransactionManager, true);
|
||||
multiDBTransactionManager.commitAll();
|
||||
}
|
||||
}
|
||||
@@ -447,8 +440,6 @@ public class ICONImportService {
|
||||
conICON.commit();
|
||||
multiDBTransactionManager.commitAll();
|
||||
}
|
||||
res.close();
|
||||
ps.close();
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("(RETURN PICKING) " + e.getLocalizedMessage());
|
||||
|
||||
Reference in New Issue
Block a user