diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java
index 2010fbc6..c1cd60e6 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java
@@ -1404,6 +1404,10 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
 
     // 计算智能计量使用金额
     private BigDecimal calcSmartCountAmount(TransactionBillVO order, BigDecimal totalEle) {
+        // 若订单不存在,或者 订单开始电量为空,表示未开始使用,则直接返回0
+        if (order == null || order.getSuitStartEle() == null) {
+            return BigDecimal.ZERO;
+        }
         BigDecimal startEle = order.getSuitStartEle();
         BigDecimal usedEle = totalEle.subtract(startEle);   // 已使用的电量
         BigDecimal suitEle = new BigDecimal(order.getSuitTime());   // 套餐每周期的电量
@@ -1419,11 +1423,11 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
 
     // 计算智能时长的使用金额
     private BigDecimal calcSmartTimeAmount(TransactionBillVO order, LocalDateTime endTime) {
-        LocalDateTime startTime = order.getSuitStartTime();
-        if (startTime == null) {
-            startTime = LocalDateTime.now();
+        // 若订单不存在,或者 订单开始时间为空,表示未开始使用,则直接返回0
+        if (order == null || order.getSuitStartTime() == null) {
+            return BigDecimal.ZERO;
         }
-        Duration between = Duration.between(startTime, endTime);
+        Duration between = Duration.between(order.getSuitStartTime(), endTime);
 
         SuitTimeUnit unit = SuitTimeUnit.getByValue(order.getSuitTimeUnit());
         ServiceUtil.assertion(unit == null, "订单套餐单位无效");
@@ -1473,7 +1477,11 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
 
     // 计算分时段计时金额
     private BigDecimal calcTimingTimeAmount(TransactionBillVO order, LocalDateTime endTime) {
-        LocalDateTime startTime = order.getSuitStartTime() == null ? LocalDateTime.now() : order.getSuitStartTime();
+        // 订单不存在 或者 开始时间为空,则表示未开始使用,返回0
+        if (order == null || order.getSuitStartTime() == null) {
+            return BigDecimal.ZERO;
+        }
+        LocalDateTime startTime = order.getSuitStartTime();
         List<BigDecimal> suitGearAmount = order.getSuitGearAmount();
         List<Integer> suitGearTime = order.getSuitGearTime();