From fa473e8728e430b69bc4fa4cd2b62eb1755771d5 Mon Sep 17 00:00:00 2001 From: sxxxxxb Date: Fri, 31 Jul 2026 16:30:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jwsi/jcms/vpp/chgr/ChgrResponseDto.java | 4 +-- .../net/jwsi/jcms/vpp/chgrHist/ChgrHist.java | 3 ++ .../jcms/vpp/chgrHist/ChgrHistController.java | 1 + .../jcms/vpp/chgrHist/ChgrHistRepository.java | 1 + .../vpp/chgrHist/ChgrHistResponseDto.java | 1 + .../jcms/vpp/chgrHist/ChgrHistService.java | 13 +++++--- .../jcms/vpp/ratePlan/RatePlanService.java | 32 ++++++++++++++++--- .../templates/system/chgrHist/list.html | 18 +++++++++-- 8 files changed, 60 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/jwsi/jcms/vpp/chgr/ChgrResponseDto.java b/src/main/java/net/jwsi/jcms/vpp/chgr/ChgrResponseDto.java index 812ac7f..0ade925 100644 --- a/src/main/java/net/jwsi/jcms/vpp/chgr/ChgrResponseDto.java +++ b/src/main/java/net/jwsi/jcms/vpp/chgr/ChgrResponseDto.java @@ -12,7 +12,7 @@ public class ChgrResponseDto { private String chgrId; private String chgrNm; private String speedTp; - private String chgrTp; + private String chgrType; private double gpsXpos; private double gpsYpos; private String locInfo; @@ -29,7 +29,7 @@ public class ChgrResponseDto { chgr.setStNm(this.stNm); chgr.setChgrNm(this.chgrNm); chgr.setSpeedTp(this.speedTp); - chgr.setChgrTp(this.chgrTp); + chgr.setChgrTp(this.chgrType); return chgr; } } diff --git a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHist.java b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHist.java index e157e98..ef9057b 100644 --- a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHist.java +++ b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHist.java @@ -22,6 +22,9 @@ public class ChgrHist extends BaseStEntity { @Column(name = "CHGR_ID", nullable = false) private String chgrId; // 충전기 id + @Column(name = "CH_ID") + private Integer chId; + @Column(name = "ST_ID", nullable = false) private String stId; // 충전소 id diff --git a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistController.java b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistController.java index 74f44a3..2fdfaf0 100644 --- a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistController.java +++ b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistController.java @@ -23,6 +23,7 @@ public class ChgrHistController extends BaseController { + boolean existsByChgrIdAndChIdAndRechgEDt(String chgrId, Integer chId,String rechgEDt); } diff --git a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistResponseDto.java b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistResponseDto.java index 346951a..3a7b8b4 100644 --- a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistResponseDto.java +++ b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistResponseDto.java @@ -52,6 +52,7 @@ public class ChgrHistResponseDto { chgrHist.setRechgAmt(this.rechgAmt); chgrHist.setPayFnsh(this.payFnsh); chgrHist.setRechGwh(this.rechgWh); + chgrHist.setChId(this.chId); return chgrHist; } } \ No newline at end of file diff --git a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistService.java b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistService.java index f39ade6..113de01 100644 --- a/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistService.java +++ b/src/main/java/net/jwsi/jcms/vpp/chgrHist/ChgrHistService.java @@ -30,7 +30,7 @@ public class ChgrHistService extends BaseService> response = apiClient.fetchChgrHist(startDt, "50"); @@ -50,15 +50,18 @@ public class ChgrHistService extends BaseService dtoList = response.getData(); - if (dtoList == null || dtoList.isEmpty()) { - log.info("가져온 요금제 데이터가 없습니다."); + if (dtoList == null) { + dtoList = new ArrayList<>(); + } + Set validApiIds = dtoList.stream() + .map(RatePlanResponseDto::getRatePlanId) + .collect(Collectors.toSet()); + + List localRatePlans = ratePlanRepository.findAll(); + + int deleteCount = 0; + for (RatePlan localPlan : localRatePlans) { + if (!validApiIds.contains(localPlan.getRatePlanId())) { + Integer idToDelete = localPlan.getRatePlanId(); + + ratePlanDetailTimeRepository.deleteByRatePlanId(idToDelete); + chargerRatePlanRepository.deleteByRatePlanId(idToDelete); + + ratePlanRepository.deleteById(idToDelete); + + deleteCount++; + log.info("운영 DB에서 삭제된 요금제를 로컬 DB에서 제거했습니다. - ID: {}", idToDelete); + } + } + + if (dtoList.isEmpty()) { + log.info("가져온 요금제 데이터가 없습니다. (로컬 동기화 및 삭제 완료. 삭제 건수: {})", deleteCount); return; } @@ -104,8 +128,8 @@ public class RatePlanService extends BaseService