From fa7499bf6dd4f47ff66196551c771cccfa83e76b Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Thu, 19 Jun 2025 17:40:16 +0800 Subject: [PATCH] update --- .../impl/ChangZhouPlatformServiceImpl.java | 46 +++++++++++++++---- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java index 0be14c2ab..9af2b0aa0 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java @@ -51,6 +51,10 @@ import java.math.BigDecimal; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.spec.InvalidKeySpecException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.*; @Service @@ -792,10 +796,14 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService { SupChargeDetails detail; for (BillingPriceVO billingPriceVO : billingList) { detail = new SupChargeDetails(); + + String startTime = convertTime(billingPriceVO.getStartTime()); + String endTime = convertTime(billingPriceVO.getEndTime()); + if (StringUtils.equals(billingPriceVO.getTimeType(), BillingTimeTypeEnum.SHARP.getValue())) { // 尖时段 - detail.setDetailStartTime(billingPriceVO.getStartTime()); - detail.setDetailEndTime(billingPriceVO.getEndTime()); + detail.setDetailStartTime(startTime); + detail.setDetailEndTime(endTime); detail.setElecPrice(new BigDecimal(billingPriceVO.getElectricityPrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setSevicePrice(new BigDecimal(billingPriceVO.getServicePrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setDetailPower(orderDetail.getSharpUsedElectricity()); @@ -803,8 +811,8 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService { detail.setDetailSeviceMoney(orderDetail.getSharpServicePrice()); } else if (StringUtils.equals(billingPriceVO.getTimeType(), BillingTimeTypeEnum.PEAK.getValue())) { // 峰时段 - detail.setDetailStartTime(billingPriceVO.getStartTime()); - detail.setDetailEndTime(billingPriceVO.getEndTime()); + detail.setDetailStartTime(startTime); + detail.setDetailEndTime(endTime); detail.setElecPrice(new BigDecimal(billingPriceVO.getElectricityPrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setSevicePrice(new BigDecimal(billingPriceVO.getServicePrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setDetailPower(orderDetail.getPeakUsedElectricity()); @@ -812,8 +820,8 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService { detail.setDetailSeviceMoney(orderDetail.getPeakServicePrice()); } else if (StringUtils.equals(billingPriceVO.getTimeType(), BillingTimeTypeEnum.FLAT.getValue())) { // 平时段 - detail.setDetailStartTime(billingPriceVO.getStartTime()); - detail.setDetailEndTime(billingPriceVO.getEndTime()); + detail.setDetailStartTime(startTime); + detail.setDetailEndTime(endTime); detail.setElecPrice(new BigDecimal(billingPriceVO.getElectricityPrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setSevicePrice(new BigDecimal(billingPriceVO.getServicePrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setDetailPower(orderDetail.getFlatUsedElectricity()); @@ -821,8 +829,8 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService { detail.setDetailSeviceMoney(orderDetail.getFlatServicePrice()); } else if (StringUtils.equals(billingPriceVO.getTimeType(), BillingTimeTypeEnum.VALLEY.getValue())) { // 谷时段 - detail.setDetailStartTime(billingPriceVO.getStartTime()); - detail.setDetailEndTime(billingPriceVO.getEndTime()); + detail.setDetailStartTime(startTime); + detail.setDetailEndTime(endTime); detail.setElecPrice(new BigDecimal(billingPriceVO.getElectricityPrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setSevicePrice(new BigDecimal(billingPriceVO.getServicePrice()).setScale(4, BigDecimal.ROUND_HALF_UP)); detail.setDetailPower(orderDetail.getValleyUsedElectricity()); @@ -835,6 +843,28 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService { } + public static String convertTime(String timeStr) { + try { + // 1. 解析输入的 HH:mm 为 LocalTime + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime localTime = LocalTime.parse(timeStr, timeFormatter); + + // 2. 获取当前日期(年、月、日) + LocalDate currentDate = LocalDate.now(); + + // 3. 合并日期和时间为 LocalDateTime + LocalDateTime dateTime = LocalDateTime.of(currentDate, localTime); + + // 4. 格式化为目标格式 yyyy-MM-dd HH:mm:ss + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return dateTime.format(outputFormatter); + + } catch (Exception e) { + throw new IllegalArgumentException("时间格式错误,应为 HH:mm", e); + } + } + + /** * 获取配置密钥信息