puzhibing
2024-10-18 e815e6571db2c81bf05be7d507cca50ab02a619d
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -933,7 +933,9 @@
         chargingDetails.setCompletionRatio(data.getSoc());
         chargingDetails.setRemainingChargeTime(data.getTime_remaining());
         chargingDetails.setChargedDegrees(data.getCharging_degree());
         chargingDetails.setChargedTime(data.getCumulative_charging_time());
         Integer h = Integer.valueOf(data.getCumulative_charging_time() / 60);
         Integer m = Integer.valueOf(data.getCumulative_charging_time() % 60);
         chargingDetails.setChargedTime(String.format("%02d", h) + ":" + String.format("%02d", m));
      }
      ChargingHandshake chargingHandshake = chargingHandshakeClient.getDataByOrderCode(one.getCode()).getData();
      if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){
@@ -1778,24 +1780,20 @@
      
      //获取订单的计费策略
      List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
      AccountingStrategyDetailOrder accountingStrategyDetailOrder = accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1);
      if(accountingStrategyDetailOrder.getEndTime().equals("00:00")){
         accountingStrategyDetailOrder.setEndTime("24:00");
      }
      chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
      for (int i = 0; i < 12; i++) {
         Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
         try {
            Object invoke1 = clazz.getMethod("getTime" + (i + 1)).invoke(vo);
            Object invoke1 = clazz.getMethod("getBilling_model_code" + (i + 1)).invoke(vo);
            if(null != invoke1){
               String[] split = invoke1.toString().split("-");
               AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get();
               Integer id = Integer.valueOf(invoke1.toString());
               AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getId().equals(id)).findFirst().get();
               //阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)
               Object invoke = null;
               switch (strategyDetail.getType()){
                  case 1:
                     //充电度数
                     invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo);
                     invoke = clazz.getMethod("getSpike_charge" + (i + 1)).invoke(vo);
                     break;
                  case 2:
                     //充电度数
@@ -1803,11 +1801,11 @@
                     break;
                  case 3:
                     //充电度数
                     invoke = clazz.getMethod("getFlat_peak_charge" + (i + 1)).invoke(vo);
                     invoke = clazz.getMethod("getFlat_charge" + (i + 1)).invoke(vo);
                     break;
                  case 4:
                     //充电度数
                     invoke = clazz.getMethod("getLow_peak_charge" + (i + 1)).invoke(vo);
                     invoke = clazz.getMethod("getValley_amount" + (i + 1)).invoke(vo);
                     break;
               }
               if(null == invoke || invoke.toString().equals("0")){