zhibing.pu
2024-08-28 f08a70b0a1e2cd49075c5d5d3f63d07d0b56cef9
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -21,7 +21,9 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
@@ -98,6 +100,8 @@
   @Resource
   private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
   
   @Resource
   private ChargingHandshakeClient chargingHandshakeClient;
   
   
   
@@ -201,7 +205,7 @@
            map.put("time", time.get(i));
            //soc
            map.put("soc", soc.get(i));
            //电压
            //功率
            map.put("power", po.get(i));
            power.add(map);
         }
@@ -429,7 +433,6 @@
      if(null == one){
         return null;
      }
      // todo 需要完善充电实时数据
      ChargingDetails chargingDetails = new ChargingDetails();
      chargingDetails.setId(one.getId().toString());
      TChargingGun chargingGun = chargingGunClient.getChargingGunById(id).getData();
@@ -438,6 +441,27 @@
      chargingDetails.setName(site.getName() + "-" + chargingPile.getName());
      chargingDetails.setCode(one.getCode());
      chargingDetails.setStatus(one.getStatus());
      UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(one.getCode()).getData();
      if(null != data){
         chargingDetails.setChargeCurrent(data.getOutput_current());
         chargingDetails.setChargeVoltage(data.getOutput_voltage());
         BigDecimal power = data.getOutput_current().multiply(data.getOutput_voltage()).divide(new BigDecimal(1000));
         chargingDetails.setChargePower(power);
         chargingDetails.setCompletionRatio(data.getSoc());
         chargingDetails.setRemainingChargeTime(data.getTime_remaining());
         chargingDetails.setChargedDegrees(data.getCharging_degree());
         chargingDetails.setChargedTime(data.getCumulative_charging_time());
         chargingDetails.setChargingCost(data.getPaid_amount());
      }
      ChargingHandshake chargingHandshake = chargingHandshakeClient.getDataByOrderCode(one.getCode()).getData();
      if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){
         BigDecimal bms_battery_capacity = chargingHandshake.getBms_battery_capacity();
         TAppUserCar appUserCar = appUserCarClient.getCarByIds(Arrays.asList(one.getAppUserCarId())).getData().get(0);
         //   续航 = 电池容量 / 续航里程 * soc
         BigDecimal divide = bms_battery_capacity.divide(new BigDecimal(appUserCar.getEndurance()));
         BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(divide);
         chargingDetails.setEndurance(multiply);
      }
      return chargingDetails;
   }