- aggiunto servizio per recuperare ul non pubblicate per la sincronizzazione
This commit is contained in:
2025-11-13 12:39:47 +01:00
parent 0b0b5bbf33
commit 50dcb999f1
3 changed files with 74 additions and 9 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}