mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 00:48:49 +00:00
trabajando en resumen
This commit is contained in:
@ -13,7 +13,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class skApiClient {
|
||||
@ -30,7 +29,6 @@ public class skApiClient {
|
||||
}
|
||||
|
||||
public String getPrice(Map<String, Object> requestBody) {
|
||||
|
||||
return performWithRetry(() -> {
|
||||
String url = this.skApiUrl + "api/calcular";
|
||||
|
||||
@ -46,35 +44,43 @@ public class skApiClient {
|
||||
entity,
|
||||
String.class);
|
||||
|
||||
return response.getBody();
|
||||
try {
|
||||
Map<String, Object> responseBody = new ObjectMapper().readValue(response.getBody(), Map.class);
|
||||
|
||||
if (responseBody.get("error") == null) {
|
||||
return new ObjectMapper().writeValueAsString(
|
||||
Map.of("data", responseBody.get("data")));
|
||||
} else {
|
||||
return "{\"error\": 1}";
|
||||
}
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
return "{\"error\": 1}";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Integer getMaxSolapas(Map<String, Object> requestBody) {
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.setBearerAuth(authService.getToken());
|
||||
|
||||
Map<String, Object> request = new HashMap<>(requestBody);
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
|
||||
try {
|
||||
String jsonResponse = performWithRetry(() -> {
|
||||
|
||||
String url = this.skApiUrl + "api/calcular-solapas";
|
||||
|
||||
data.put("clienteId", request.get("clienteId"));
|
||||
data.put("tamanio", (Map<String, Object>) request.get("tamanio"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.setBearerAuth(authService.getToken()); // token actualizado
|
||||
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("clienteId", requestBody.get("clienteId"));
|
||||
data.put("tamanio", requestBody.get("tamanio"));
|
||||
data.put("tirada", requestBody.get("tirada"));
|
||||
data.put("paginas", request.get("paginas"));
|
||||
data.put("paginasColor", request.get("paginasColor"));
|
||||
data.put("paginas", requestBody.get("paginas"));
|
||||
data.put("paginasColor", requestBody.get("paginasColor"));
|
||||
data.put("papelInteriorDiferente", 0);
|
||||
data.put("paginasCuadernillo", request.get("paginasCuadernillo"));
|
||||
data.put("tipo", request.get("tipo"));
|
||||
data.put("isColor", request.get("isColor"));
|
||||
data.put("isHq", request.get("isHq"));
|
||||
data.put("interior", request.get("interior"));
|
||||
data.put("paginasCuadernillo", requestBody.get("paginasCuadernillo"));
|
||||
data.put("tipo", requestBody.get("tipo"));
|
||||
data.put("isColor", requestBody.get("isColor"));
|
||||
data.put("isHq", requestBody.get("isHq"));
|
||||
data.put("interior", requestBody.get("interior"));
|
||||
|
||||
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(data, headers);
|
||||
|
||||
@ -88,19 +94,19 @@ public class skApiClient {
|
||||
});
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
JsonNode root = mapper.readTree(jsonResponse);
|
||||
|
||||
if (root.get("data") == null || !root.get("data").isInt()) {
|
||||
throw new RuntimeException("Respuesta inesperada de calcular-solapas: " + jsonResponse);
|
||||
}
|
||||
int solapas = root.get("data").asInt();
|
||||
return solapas;
|
||||
|
||||
return root.get("data").asInt();
|
||||
|
||||
} catch (JsonProcessingException e) {
|
||||
// No se puede calcular el interior, por lo que las solapas seran el 80% del
|
||||
// ancho
|
||||
Map<String, Object> tamanio = (Map<String, Object>)data.get("tamanio");
|
||||
// Fallback al 80% del ancho
|
||||
Map<String, Object> tamanio = (Map<String, Object>) requestBody.get("tamanio");
|
||||
if (tamanio == null || tamanio.get("ancho") == null)
|
||||
throw new RuntimeException("Tamaño no válido en la solicitud: " + data);
|
||||
throw new RuntimeException("Tamaño no válido en la solicitud: " + requestBody);
|
||||
else {
|
||||
int ancho = (int) tamanio.get("ancho");
|
||||
return (int) Math.floor(ancho * 0.8); // 80% del ancho
|
||||
@ -108,6 +114,38 @@ public class skApiClient {
|
||||
}
|
||||
}
|
||||
|
||||
public Double getRetractilado(Map<String, Object> requestBody) {
|
||||
|
||||
String value = performWithRetry(() -> {
|
||||
String url = this.skApiUrl + "api/calcular-retractilado";
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.setBearerAuth(authService.getToken());
|
||||
|
||||
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestBody, headers);
|
||||
|
||||
ResponseEntity<String> response = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
entity,
|
||||
String.class);
|
||||
|
||||
try {
|
||||
Map<String, Object> responseBody = new ObjectMapper().readValue(response.getBody(), Map.class);
|
||||
return responseBody.get("data").toString();
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
return "0.0"; // Fallback en caso de error
|
||||
}
|
||||
});
|
||||
try {
|
||||
return Double.parseDouble(value);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new RuntimeException("Error al parsear el valor de retractilado: " + value, e);
|
||||
}
|
||||
}
|
||||
|
||||
/******************
|
||||
* PRIVATE METHODS
|
||||
******************/
|
||||
|
||||
Reference in New Issue
Block a user