diff --git a/ems-engine/src/main/java/it/integry/ems/customizations/production/controller/ToscaProductionController.java b/ems-engine/src/main/java/it/integry/ems/customizations/production/controller/ToscaProductionController.java index 587613d781..bed31ce4e3 100644 --- a/ems-engine/src/main/java/it/integry/ems/customizations/production/controller/ToscaProductionController.java +++ b/ems-engine/src/main/java/it/integry/ems/customizations/production/controller/ToscaProductionController.java @@ -6,6 +6,7 @@ import it.integry.ems.customizations.production.service.ToscaProductionService; import it.integry.ems.response.EsitoType; import it.integry.ems.response.ServiceRestResponse; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; +import it.integry.ems_model.utility.UtilityLocalDate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +14,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; @RestController @Scope(value = "request") @@ -92,4 +97,26 @@ public class ToscaProductionController { } } + + @RequestMapping(value = "ripubblicaUl", method = RequestMethod.POST) + public @ResponseBody + ServiceRestResponse ripubblicaUl(HttpServletRequest request, + @RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @RequestParam String startDate) { + try { + toscaProductionService.ripubblicaUl(LocalDateTime.parse(startDate, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + return ServiceRestResponse.createPositiveResponse(); + + } catch (Exception e) { + try { + multiDBTransactionManager.rollbackAll(); + } catch (Exception ex) { + logger.error(request.getRequestURI(), e); + } + + logger.error(request.getRequestURI(), e); + return new ServiceRestResponse(EsitoType.KO, profileDB, e); + } + } + } diff --git a/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java b/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java index 5eda75ff83..2163a53551 100644 --- a/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java +++ b/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java @@ -5,10 +5,7 @@ import it.integry.ems.service.EntityProcessor; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems_model.entity.*; import it.integry.ems_model.types.OperationType; -import it.integry.ems_model.utility.Query; -import it.integry.ems_model.utility.UtilityDB; -import it.integry.ems_model.utility.UtilityHashMap; -import it.integry.ems_model.utility.UtilityLocalDate; +import it.integry.ems_model.utility.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; @@ -17,10 +14,13 @@ import java.math.BigDecimal; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; @Service @Scope("request") @@ -193,4 +193,29 @@ public class ToscaProductionService { } } + + public void ripubblicaUl(LocalDateTime start) throws Exception { + + + String sql = "SELECT * from mtb_colt where data_vers >= " + UtilityDB.valueToString(start); + + + List mtbColtList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColt.class); + if (UtilityList.isNullOrEmpty(mtbColtList)) return; + + for (MtbColt mtbColt : mtbColtList) { + mtbColt.setOperation(OperationType.INSERT_OR_UPDATE); + String rowsSql = "SELECT * from mtb_colr where " + mtbColt.getPkWhereCond(); + List rows = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), rowsSql, MtbColr.class); + if (!UtilityList.isNullOrEmpty(rows)) + mtbColt.setMtbColr(rows.stream().peek(x -> x.setOperation(OperationType.INSERT_OR_UPDATE)).collect(Collectors.toList())); + + String colsSql = "SELECT * from mtb_cols where " + mtbColt.getPkWhereCond(); + List cols = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), colsSql, MtbCols.class); + if (!UtilityList.isNullOrEmpty(cols)) + mtbColt.setMtbCols(cols.stream().peek(x -> x.setOperation(OperationType.INSERT_OR_UPDATE)).collect(Collectors.toList())); + + entityProcessor.processEntity(mtbColt, true, multiDBTransactionManager); + } + } } diff --git a/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java b/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java index 3f95502e67..7f2b47c353 100644 --- a/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java +++ b/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java @@ -344,15 +344,28 @@ public class ToscaSalesService { if (UtilityList.isNullOrEmpty(righeOrdiniDaPubblicare)) return; righeOrdiniDaPubblicare.stream().forEach(x -> x.setFlagEvasoForzato("N").setOperation(OperationType.INSERT_OR_UPDATE)); - List ordiniDaPubblicare = righeOrdiniDaPubblicare.stream().map(row-> new DtbOrdtKey(row.getGestione(),row.getDataOrd(),row.getNumOrd())).collect(Collectors.toList()); + List ordiniDaPubblicare = righeOrdiniDaPubblicare.stream().map(row -> new DtbOrdtKey(row.getGestione(), row.getDataOrd(), row.getNumOrd())).collect(Collectors.toList()); for (DtbOrdtKey key : ordiniDaPubblicare) { - DtbOrdt ordt = new DtbOrdt(key.getGestione(), UtilityLocalDate.localDateFromDate(key.getDataOrd()),key.getNumOrd()); + DtbOrdt ordt = new DtbOrdt(key.getGestione(), UtilityLocalDate.localDateFromDate(key.getDataOrd()), key.getNumOrd()); ordt.setOperation(OperationType.SELECT_OBJECT); - entityProcessor.processEntity(ordt,true,multiDBTransactionManager); + GtbAnag anag = new GtbAnag(); + anag.setCodAnag(ordt.getCodAnag()) + .setOperation(OperationType.SELECT_OBJECT); + entityProcessor.processEntity(anag, true, multiDBTransactionManager); + VtbClie clie = new VtbClie(); + clie.setCodAnag(ordt.getCodAnag()) + .setOperation(OperationType.SELECT_OBJECT); + entityProcessor.processEntity(clie, true, multiDBTransactionManager); + anag.setOperation(OperationType.INSERT_OR_UPDATE); + clie.setOperation(OperationType.INSERT_OR_UPDATE); + anag.setVtbClie(clie); + entityProcessor.processEntity(anag, true, multiDBTransactionManager); + + entityProcessor.processEntity(ordt, true, multiDBTransactionManager); ordt.setOperation(OperationType.INSERT_OR_UPDATE); - ordt.getDtbOrdr().addAll(righeOrdiniDaPubblicare.stream().filter(row->key.equals(new DtbOrdtKey(row.getGestione(),row.getDataOrd(),row.getNumOrd()))).collect(Collectors.toList())); - entityProcessor.processEntity(ordt,true,multiDBTransactionManager); + ordt.getDtbOrdr().addAll(righeOrdiniDaPubblicare.stream().filter(row -> key.equals(new DtbOrdtKey(row.getGestione(), row.getDataOrd(), row.getNumOrd()))).collect(Collectors.toList())); + entityProcessor.processEntity(ordt, true, multiDBTransactionManager); } } }