This commit is contained in:
YAS\29473
2025-06-19 17:40:16 +08:00
parent 63df9f370b
commit fa7499bf6d

View File

@@ -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);
}
}
/**
* 获取配置密钥信息