xuhy
2024-10-18 b5a8762bf2c31c6465c721fa669fd807ffdbb5c2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -318,6 +318,8 @@
   @Override
   public List<MyChargingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) {
      Long appUserId = tokenService.getLoginUserApplet().getUserId();
      query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
      List<TChargingOrder> orderList = this.baseMapper.getNoInvoicedOrder(appUserId, query.getMonth(), query.getPageCurr(), query.getPageSize());
      List<MyChargingOrderList> list = new ArrayList<>();
      for (TChargingOrder tChargingOrder : orderList) {
@@ -931,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()){
@@ -1776,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:
                     //充电度数
@@ -1801,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")){