From 60e4429c3f1162e71de3f176f0a17ea2942a0b61 Mon Sep 17 00:00:00 2001 From: Valerio Castellana Date: Wed, 10 Dec 2025 12:01:44 +0100 Subject: [PATCH] [ANOMALIE UL] - aggiunta eliminazione livello anomalia --- .../retail/controller/AnomalieController.java | 32 +++++++++++++------ .../ems/retail/service/AnomalieUlService.java | 27 +++++++++++++--- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/ems-engine/src/main/java/it/integry/ems/retail/controller/AnomalieController.java b/ems-engine/src/main/java/it/integry/ems/retail/controller/AnomalieController.java index 6578b9741e..0f4d9c5ee0 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/controller/AnomalieController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/controller/AnomalieController.java @@ -26,14 +26,6 @@ public class AnomalieController { this.anomalieProdService = anomalieProdService; } - @GetMapping(value = "/lista") - public ServiceRestResponse listaAnomalie(HttpServletRequest request, - @RequestParam(CommonConstants.PROFILE_DB) String profileDB, - @RequestBody PageableRequestDTO requestData) throws Exception { - return ServiceRestResponse.createPositiveResponse(anomalieProdService.getAnomalieProd(requestData, multiDBTransactionManager.getPrimaryConnection())); - - } - @GetMapping(value = "/livelli/lista") public ServiceRestResponse listaLivelliAnomalie(HttpServletRequest request, @RequestParam(CommonConstants.PROFILE_DB) String profileDB) throws Exception { @@ -53,6 +45,27 @@ public class AnomalieController { } } + @PostMapping(value = "/livelli/{id}/elimina") + public ServiceRestResponse deleteLivelloAnomalia(HttpServletRequest request, + @RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @PathVariable Long id) throws Exception { + try { + anomalieProdService.deleteLivelloAnomalia(multiDBTransactionManager, id); + return ServiceRestResponse.createPositiveResponse(); + } catch (Exception e) { + multiDBTransactionManager.rollbackAll(); + throw e; + } + } + + @GetMapping(value = "/lista") + public ServiceRestResponse listaAnomalie(HttpServletRequest request, + @RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @RequestBody PageableRequestDTO requestData) throws Exception { + return ServiceRestResponse.createPositiveResponse(anomalieProdService.getAnomalieProd(requestData, multiDBTransactionManager.getPrimaryConnection())); + + } + @GetMapping(value = "/{id}/ul") public ServiceRestResponse getUlAnomalia(HttpServletRequest request, @@ -66,7 +79,8 @@ public class AnomalieController { @RequestParam(CommonConstants.PROFILE_DB) String profileDB, @PathVariable Long id) throws Exception { try { - return ServiceRestResponse.createPositiveResponse(anomalieProdService.deleteAnomalia(multiDBTransactionManager, id)); + anomalieProdService.deleteAnomalia(multiDBTransactionManager, id); + return ServiceRestResponse.createPositiveResponse(); } catch (Exception e) { multiDBTransactionManager.rollbackAll(); throw e; diff --git a/ems-engine/src/main/java/it/integry/ems/retail/service/AnomalieUlService.java b/ems-engine/src/main/java/it/integry/ems/retail/service/AnomalieUlService.java index 25ff10f7c2..7fdbbaa18c 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/service/AnomalieUlService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/service/AnomalieUlService.java @@ -151,7 +151,7 @@ public class AnomalieUlService { return anomalia; } - public Object deleteAnomalia(MultiDBTransactionManager multiDBTransactionManager, Long id) throws Exception { + public void deleteAnomalia(MultiDBTransactionManager multiDBTransactionManager, Long id) throws Exception { List entities = new ArrayList<>(); MtbAnomalieUl anomalia = new MtbAnomalieUl(); anomalia.setId(id) @@ -160,13 +160,30 @@ public class AnomalieUlService { List ulAnomalia = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), "SELECT gestione,data_collo,ser_collo,num_collo, id_anomalia from mtb_colt where id_anomalia = " + id, MtbColt.class); - - ulAnomalia.forEach(x -> AnomalieUlUtility.detachAnomaliaFromUl(x)); - entities.addAll(ulAnomalia); + if (!UtilityList.isNullOrEmpty(ulAnomalia)) { + ulAnomalia.forEach(x -> AnomalieUlUtility.detachAnomaliaFromUl(x)); + entities.addAll(ulAnomalia); + } entities.add(anomalia); entityProcessor.processEntityList(entities, multiDBTransactionManager, true); UtilityEntity.throwEntitiesException(entities); - return entities; + } + + public void deleteLivelloAnomalia(MultiDBTransactionManager multiDBTransactionManager, Long id) throws Exception { + + + Integer count = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),"SELECT count(*) from "+MtbAnomalieUl.ENTITY+" \n\r" + + "where id_livello_anomalia = " + UtilityDB.valueToString(id) + ""); + + if (count > 0) + throw new Exception("Impossibile eliminare il livello di anomalia se esistono anomalie associate"); + + + + MtbLivelliAnomalie anomalia = new MtbLivelliAnomalie(); + anomalia.setId(id) + .setOperation(OperationType.DELETE); + entityProcessor.processEntity(anomalia, true, multiDBTransactionManager); } public List listaLivelliAnomalie(Connection connection) throws Exception {