无关风月
2024-11-02 cf5b8614d10dab3df6280e3b4e676d59b35ce0cf
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -289,6 +289,7 @@
         for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : dataList) {
            if(!sdf.format(uploadRealTimeMonitoringData.getCreate_time()).equals(t)){
               dataLists.add(uploadRealTimeMonitoringData);
               t = sdf.format(uploadRealTimeMonitoringData.getCreate_time());
            }
         }
         
@@ -1298,9 +1299,9 @@
            payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
         }
         if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){
            payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount());
            payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount());
            payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount());
            payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
            payOrderDto.setOrderAmount(payOrderDto.getOrderAmount());
            payOrderDto.setPaymentAmount(payOrderDto.getOrderAmount());
         }
      }
      pageInfo.setRecords(list);
@@ -1412,7 +1413,7 @@
         chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
         BigDecimal bigDecimal = new BigDecimal("0.006");
         if (chargingOrderListVO.getOrderAmount()!=null){
            chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
            chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal));
         }
         chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
         chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
@@ -1440,9 +1441,20 @@
         // 获取开始SOC 结束soc
         if (chargingOrderListVO.getCode()!=null){
            List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
         if (data6!=null && !data6.isEmpty()){
               chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString());
               chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString());
            int min = 100;
            int max = 0;
            for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
               if (uploadRealTimeMonitoringData.getSoc()>max){
                  max = uploadRealTimeMonitoringData.getSoc();
               }
               if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){
                  min = uploadRealTimeMonitoringData.getSoc();
               }
            }
               chargingOrderListVO.setEndSoc(max+"");
               chargingOrderListVO.setStartSoc(min+"");
            }
         }
@@ -1805,7 +1817,7 @@
      
      //获取订单的计费策略
      List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
      accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1).setEndTime("23:59");
      //开始处理计费明细数据和优惠数据
      chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
      SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -2082,7 +2094,7 @@
      if(null != integralRule){
         TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
         Integer num1 = JSON.parseObject(integralRule.getChargeCredit()).getInteger("num1");
         Integer integral = payAmount.multiply(new BigDecimal(num1)).intValue();
         Integer integral = chargingOrder.getServiceCharge().intValue() * num1;
         if(null != appUser.getVipId()){
            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
            Integer doubleIntegration = vip.getDoubleIntegration();
@@ -2575,6 +2587,7 @@
         }
      }
      // 三方交易手续费 三方收费*0.6%
      commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
      // 订单手续费 订单支付金额 - 退款金额*0.6%
@@ -2594,6 +2607,8 @@
      tSettlementConfirm.setType(dto.getType());
      if (dto.getState() == 2){
         tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
               .subtract(dto.getMaintain()).multiply(dto.getServicePartner()));
         tSettlementConfirm.setSupplyElectronic(dto.getSupplyElectronic());
         tSettlementConfirm.setVenue(dto.getVenue());
         tSettlementConfirm.setMetering(dto.getMetering());
@@ -2608,26 +2623,26 @@
         tSettlementConfirm.setTotalService(dto.getTotalService());
         tSettlementConfirm.setRemark(dto.getRemark());
         tSettlementConfirm.setServicePartner(dto.getServicePartner());
         tSettlementConfirm.setServiceMoney(dto.getServiceMoney());
         BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner().multiply(new BigDecimal("0.01")));
         BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner());
         BigDecimal subtract9 = new BigDecimal("1").subtract(dto.getServicePartner());
         // 总电损费用
         BigDecimal divide = tSettlementConfirm.getProportionMoney().divide(subtract, 2, RoundingMode.HALF_DOWN);
         // 平台承担电损
         BigDecimal subtract1 = divide.subtract(tSettlementConfirm.getProportionMoney());
         BigDecimal multiply = dto.getServiceMoney().multiply(subtract);
         BigDecimal subtract2 = multiply.subtract(subtract1);
         tSettlementConfirm.setNewMoney(subtract2);
         tSettlementConfirm.setNewMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
               .subtract(dto.getMaintain()).multiply(subtract9).subtract(subtract1));
         tSettlementConfirm.setTotalService(dto.getTotalService());
         tSettlementConfirm.setServiceRemark(dto.getServiceRemark());
         tSettlementConfirm.setDistribution(dto.getDistribution());
         tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge()));
         tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getSupplyElectronic()));
         BigDecimal divide1 = tSettlementConfirm.getProportionMoney().divide(tSettlementConfirm.getProportionPartner(), 2, RoundingMode.HALF_DOWN);
         tSettlementConfirm.setProfitMoney(tSettlementConfirm.getServiceCharge().multiply(tSettlementConfirm.getServicePartner())
               .subtract(divide1));
         tSettlementConfirm.setNewSettlement(subtract2.subtract(tSettlementConfirm.getCost()));
         tSettlementConfirm.setProfitMoney(tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost()));
         tSettlementConfirm.setNewSettlement(tSettlementConfirm.getProfitMoney().add(tSettlementConfirm.getCost()));
         tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
               .subtract(dto.getMaintain()).multiply(dto.getServicePartner()));
         tSettlementConfirmMapper.insert(tSettlementConfirm);
      }
      return tSettlementConfirm;