From 663fea0582f3b745f8feb93f3d6cd9515c580ff9 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期六, 24 八月 2024 16:39:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java | 27 ++++++++++----------------- 1 files changed, 10 insertions(+), 17 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java index 979620c..7f1536b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper; import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.feignClient.VipClient; @@ -69,23 +70,18 @@ TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); TAccountingStrategyDetailVO accountingStrategyDetailVO; TAccountingStrategyDetailVO accountingStrategyDetailNext; + // 获取当前时间段的计费策略明细 + accountingStrategyDetailVO = list.stream().filter(detail -> DateUtils.string2LocalTime(detail.getStartTime() + " :00").compareTo(LocalTime.now()) <= 0 + && DateUtils.string2LocalTime(detail.getEndTime() + " :00").compareTo(LocalTime.now()) > 0) + .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细")); + // 获取后一次的计费策略明细 + accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0) + .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细")); if(Objects.nonNull(vip) && vip.getType() == 2){ - // 获取当前时间段的计费策略明细 - accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0) - .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细")); accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(vip.getDiscount())); - // 获取后一次的计费策略明细 - accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0) - .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细")); accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(vip.getDiscount())); }else { - // 获取当前时间段的计费策略明细 - accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0) - .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细")); accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(accountingStrategy.getDiscount())); - // 获取后一次的计费策略明细 - accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0) - .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细")); accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(accountingStrategy.getDiscount())); } list = new ArrayList<>(); @@ -127,19 +123,16 @@ @Override public Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails) { - String START_OF_DAY = "00:00:00"; - String END_OF_DAY = "24:00:00"; List<TAccountingStrategyDetail> sortedDetails = accountingStrategyDetails.stream() .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)) .collect(Collectors.toList()); - boolean isFirstElementValid = sortedDetails.isEmpty() || !START_OF_DAY.equals(sortedDetails.get(0).getStartTime()); - boolean isLastElementValid = sortedDetails.isEmpty() || !END_OF_DAY.equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime()); + boolean isFirstElementValid = sortedDetails.isEmpty() || !sortedDetails.get(0).getStartTime().equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime()); boolean isTimeContinuous = sortedDetails.stream() .skip(1) .allMatch(detail -> detail.getStartTime().equals(sortedDetails.get(sortedDetails.indexOf(detail) - 1).getEndTime())); - return isFirstElementValid || isLastElementValid || !isTimeContinuous; + return isFirstElementValid || !isTimeContinuous; } } -- Gitblit v1.7.1