无关风月
2024-10-23 c64fe22a8d581efc12b98e6022d905dfdd91811e
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1073,6 +1073,7 @@
         endTime2 = split[1];
      }
      PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
      PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999);
      if (StringUtils.hasLength(dto.getPhone())){
         List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1083,12 +1084,15 @@
         dto.setUserIds(data);
      }
      List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
      List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
       BigDecimal total = new BigDecimal("0");
       long time = 0L;
       BigDecimal income = new BigDecimal("0");
       BigDecimal electronicMoney = new BigDecimal("0");
       BigDecimal serviceMoney = new BigDecimal("0");
      for (ChargingOrderVO chargingOrderVO : list) {
         chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
         chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
         chargingOrderVO.setUid(chargingOrderVO.getId()+"");
         TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
         TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1100,10 +1104,6 @@
         }
         if (data2!=null && data3!=null){
            chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName());
         }
         if (chargingOrderVO.getChargingCapacity()!=null){
            total = total.add(chargingOrderVO.getElectricity());
         }
         // 充电订单 明细记录
         List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
@@ -1112,14 +1112,6 @@
         if (data5!=null){
            long l = data5.getCumulative_charging_time() * 60L;
            chargingOrderVO.setChargingSecond(l);
            time+=l;
         }
         electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
         serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
         income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence()));
         if (chargingOrderVO.getRefundAmount()!=null){
            income = income.subtract(chargingOrderVO.getRefundAmount());
         }
         // 充电时段数
         int size = chargingOrderId.size();
@@ -1139,6 +1131,27 @@
            }
         }
      }
      for (ChargingOrderVO chargingOrderVO : list1) {
         if (chargingOrderVO.getChargingCapacity()!=null){
            total = total.add(chargingOrderVO.getElectricity());
         }
         // 充电订单 明细记录
         List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
               .eq("charging_order_id", chargingOrderVO.getId()));
         UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
         if (data5!=null){
            long l = data5.getCumulative_charging_time() * 60L;
            chargingOrderVO.setChargingSecond(l);
            time+=l;
         }
         electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
         serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
         income = income.add(chargingOrderVO.getOrderAmount());
      }
      tCharingOrderVO.setTotal(total);
      tCharingOrderVO.setTime(time);
@@ -1242,7 +1255,7 @@
            dto.setUserIds(carIds);
         }
      }
      if (StringUtils.hasLength(dto.getPhone())){
      if (StringUtils.hasLength(dto.getLicensePlate())){
         List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
         if(data!=null){
            if (!data.isEmpty()){
@@ -1260,6 +1273,12 @@
      PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
      List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
      for (ChargingOrderListVO chargingOrderListVO : list) {
         chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
         chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getOrderAmount());
         BigDecimal bigDecimal = new BigDecimal("0.006");
         if (chargingOrderListVO.getServiceCharge()!=null){
            chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
         }
         chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount().subtract(chargingOrderListVO.getResidualAmount()));
         chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
         List<Integer> integers = new ArrayList<>();
@@ -1317,6 +1336,9 @@
         BigDecimal gu = new BigDecimal("0");
         BigDecimal total = new BigDecimal("0");
         for (TChargingOrderAccountingStrategy temp : list2) {
            if (temp.getChargingCapacity() == null){
               temp.setChargingCapacity(BigDecimal.ZERO);
            }
            switch (temp.getType()) {
               case 1:
                  jian = jian.add(temp.getChargingCapacity());
@@ -1377,9 +1399,9 @@
      BigDecimal ping = new BigDecimal("0");
      BigDecimal gu = new BigDecimal("0");
      for (ChargingOrderListVO chargingOrderListVO : list1) {
         if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getChargingCapacity());
         if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
         if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
         if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getOrderAmount());
         if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
         if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
         List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery()
@@ -1466,6 +1488,12 @@
      TChargingOrder chargingOrder= this.getById(uid);
      ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
      chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
      BigDecimal bigDecimal = new BigDecimal("0.006");
      if (chargingOrder.getServiceCharge()!=null){
         chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
      }
      chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
      chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
      if (chargingOrder.getElectrovalence()!=null && chargingOrder.getServiceCharge()!=null){
@@ -1505,6 +1533,13 @@
      if (chargingOrder.getCode()!=null){
         List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
         if (data6!=null){
            for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
               if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
                     uploadRealTimeMonitoringData.getOutput_voltage()!=null){
                  uploadRealTimeMonitoringData.setPower(uploadRealTimeMonitoringData.getOutput_voltage()
                        .multiply(uploadRealTimeMonitoringData.getOutput_current()));
               }
            }
            if (!data6.isEmpty()){
               // 第一条数据soc为开始 最后一条数据soc为结束soc
               chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
@@ -1615,11 +1650,6 @@
      if(status == 4 || status == 5){
         return;
      }
      //计算用户标签
      editUserTag(chargingOrder);
      //用户推荐奖励
      referralReward(chargingOrder);
      
      //如果使用优惠券需要判断优惠券是否满足使用条件
      //根据实际的充电金额计算退款金额   退回费用=(原金额/总金额)*(总金额-实际充电金额)
@@ -1846,7 +1876,11 @@
         appUserClient.updateAppUser(appUser);
         appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
      }
      //计算用户标签
      editUserTag(chargingOrder);
      //用户推荐奖励
      referralReward(chargingOrder);
      
      //开始构建退款费用
      if(refundAmount.compareTo(BigDecimal.ZERO) > 0){