trbajando en las funciones de leer los estados

This commit is contained in:
2025-12-27 10:50:09 +01:00
parent b94a099e01
commit 3a00702bb1
7 changed files with 213 additions and 3596 deletions

View File

@ -229,7 +229,7 @@ public class skApiClient {
Long id = ((Integer) responseBody.get("id")).longValue();
if (success != null && id != null && success) {
return Map.of("data", id);
} else {
// Tu lógica actual: si success es true u otra cosa → error 2
@ -307,7 +307,7 @@ public class skApiClient {
else {
int ancho = (int) tamanio.get("ancho");
return Map.of(
"maxSolapas", (int) (ancho * 0.8 ),
"maxSolapas", (int) (ancho * 0.8),
"lomo", 0.0);
}
}
@ -395,18 +395,46 @@ public class skApiClient {
}
/*
public Map<String, Object> checkPedidoEstado(Long presupuestoId){
public Map<String, Object> checkPedidoEstado(Long presupuestoId, Locale locale) {
try{
try {
}
catch(Exception e){
e.printStackTrace();
return Map.of("error", "Internal Server Error: 1"); // Fallback en caso de error
String jsonResponse = performWithRetry(() -> {
String url = this.skApiUrl + "api/estado-pedido/" + presupuestoId;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setBearerAuth(authService.getToken()); // token actualizado
HttpEntity<Void> entity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(
url,
HttpMethod.GET,
entity,
String.class);
return response.getBody();
});
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(jsonResponse);
if (root.get("data") == null || !root.get("data").isInt()) {
throw new RuntimeException(
"Sin respuesta desde el servidor del proveedor");
}
String estado = root.get("estado").asText();
return Map.of(
"estado", estado);
} catch (JsonProcessingException e) {
// Fallback al 80% del ancho
return Map.of(
"estado", null);
}
}
*/
/******************
* PRIVATE METHODS

View File

@ -16,9 +16,10 @@ public class PedidoLinea {
aprobado("pedido.estado.aprobado", 4),
maquetacion("pedido.estado.maquetacion", 5),
haciendo_ferro("pedido.estado.haciendo_ferro", 6),
ferro_cliente("pedido.estado.ferro_cliente", 7),
produccion("pedido.estado.produccion", 8),
cancelado("pedido.estado.cancelado", 9);
esperando_aceptacion_ferro("pedido.estado.esperando_aceptacion_ferro", 7),
ferro_cliente("pedido.estado.ferro_cliente", 8),
produccion("pedido.estado.produccion", 9),
cancelado("pedido.estado.cancelado", 10);
private final String messageKey;
private final int priority;

View File

@ -154,7 +154,6 @@ public class PedidoService {
return pedidoRepository.findById(pedidoId).orElse(null);
}
/** Lista de los items del pedido preparados para la vista */
@Transactional
public List<Map<String, Object>> getLineas(Long pedidoId, Locale locale) {
@ -216,7 +215,7 @@ public class PedidoService {
if (referenciasProveedor.isEmpty()) {
return false;
}
// Save pedido in SK
ArrayList<Long> presupuestoSkIds = new ArrayList<>();
for (Map<String, Object> presData : referenciasProveedor) {
@ -237,12 +236,39 @@ public class PedidoService {
return true;
}
public Boolean actualizarEstado(Long pedidoId) {
Pedido pedido = pedidoRepository.findById(pedidoId).orElse(null);
if (pedido == null) {
return false;
}
pedidoRepository.save(pedido);
return true;
}
public Boolean markPedidoAsMaquetacionDone(Long pedidoId) {
Pedido pedido = pedidoRepository.findById(pedidoId).orElse(null);
if (pedido == null) {
return false;
}
List<PedidoLinea> lineas = pedidoLineaRepository.findByPedidoId(pedidoId);
for (PedidoLinea linea : lineas) {
if (linea.getEstado() == Estado.maquetacion) {
linea.setEstado(Estado.haciendo_ferro);
pedidoLineaRepository.save(linea);
}
}
return true;
}
/***************************
* MÉTODOS PRIVADOS
***************************/
@Transactional
private Map<String, Object> savePresupuestoSK(Long pedidoLineaId, Presupuesto presupuesto, Integer counter, Integer total) {
private Map<String, Object> savePresupuestoSK(Long pedidoLineaId, Presupuesto presupuesto, Integer counter,
Integer total) {
Map<String, Object> data_to_send = presupuestoService.toSkApiRequest(presupuesto, true);
data_to_send.put("createPedido", 0);
@ -476,6 +502,7 @@ public class PedidoService {
}
}
private PedidoDireccion saveDireccion(
String email,
Boolean palets,