[TOSCA]
- aggiunto servizio per recuperare ul non pubblicate per la sincronizzazione
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<MtbColt> 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<MtbColr> 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<MtbCols> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<DtbOrdtKey> ordiniDaPubblicare = righeOrdiniDaPubblicare.stream().map(row-> new DtbOrdtKey(row.getGestione(),row.getDataOrd(),row.getNumOrd())).collect(Collectors.toList());
|
||||
List<DtbOrdtKey> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user