ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
@@ -43,6 +43,8 @@ private String reservationStartTime; @ApiModelProperty(value = "允许预约结束时间,格式HH:mm") private String reservationEndTime; @ApiModelProperty(value = "最早可提前预约分钟数") private Integer reservationAheadMinute; @ApiModelProperty(value = "是否支持VIN码识别") private Integer vinFlag; ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -204,6 +204,7 @@ siteInfoVO.setSupportOrder(site.getSupportOrder()); siteInfoVO.setReservationStartTime(site.getReservationStartTime()); siteInfoVO.setReservationEndTime(site.getReservationEndTime()); siteInfoVO.setReservationAheadMinute(site.getReservationAheadMinute()); siteInfoVO.setVinFlag(one.getVinFlag()); return R.ok(siteInfoVO); } @@ -282,6 +283,7 @@ siteInfoVO.setSupportOrder(site.getSupportOrder()); siteInfoVO.setReservationStartTime(site.getReservationStartTime()); siteInfoVO.setReservationEndTime(site.getReservationEndTime()); siteInfoVO.setReservationAheadMinute(site.getReservationAheadMinute()); siteInfoVO.setVinFlag(one.getVinFlag()); return R.ok(siteInfoVO); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1577,14 +1577,32 @@ || !StringUtils.hasLength(site.getReservationEndTime())) { return AjaxResult.error("电站尚未配置预约时段"); } LocalTime start = LocalTime.parse(site.getReservationStartTime(), DateTimeFormatter.ofPattern("HH:mm")); LocalTime end = LocalTime.parse(site.getReservationEndTime(), DateTimeFormatter.ofPattern("HH:mm")); LocalTime start = parseReservationClock(site.getReservationStartTime()); LocalTime end = parseReservationClock(site.getReservationEndTime()); if (start == null || end == null) { return AjaxResult.error("电站预约时段配置不正确"); } if (!isTimeInWindow(reservationTime.toLocalTime(), start, end)) { return AjaxResult.error("预约时间不在允许预约时段内"); } return null; } private LocalTime parseReservationClock(String value) { if (!StringUtils.hasLength(value)) { return null; } String[] parts = value.trim().split(":"); if (parts.length < 2) { return null; } try { return LocalTime.of(Integer.parseInt(parts[0]), Integer.parseInt(parts[1])); } catch (RuntimeException e) { return null; } } private boolean isTimeInWindow(LocalTime value, LocalTime start, LocalTime end) { if (start.equals(end)) { return true;