From b4b44f2021dbf083b7057fb7e192b72d08b4bf17 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 22 十月 2024 09:23:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 86 ++++++++++++++++++++++++++---------------- 1 files changed, 53 insertions(+), 33 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index a8351ab..e2e124d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -470,7 +470,7 @@ TAppUserVipDetail vipDetail = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData(); if(null != vipDetail){ Integer chargeNum = vipDetail.getChargeNum(); - if(0 > chargeNum){ + if(0 < chargeNum){ chargingOrder.setVipDiscount(discount); } } @@ -582,7 +582,7 @@ Integer start = Integer.valueOf(accountingStrategyDetailOrder.getStartTime().replaceAll(":", "")); Integer end = Integer.valueOf(accountingStrategyDetailOrder.getEndTime().replaceAll(":", "")); String[] split = accountingStrategyDetailOrder.getEndTime().split(":"); - if(sta || now >= start){ + if(sta || (now >= start && now < end)){ sta = true; Calendar end_calendar = Calendar.getInstance(); @@ -604,16 +604,16 @@ //每秒需要支付的服务费金额 BigDecimal s_server_amount = s_degrees.multiply(accountingStrategyDetailOrder.getServiceCharge()); //计算剩余金额能充多长时间的电 - long times = rechargeAmount1.divide(s_server_amount, 0, RoundingMode.DOWN).longValue(); + long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue(); if(times > m){ //充电时间跨度两个计费策略,需要继续对下一个策略进行计算 serviceCharge = s_server_amount.multiply(new BigDecimal(m)); - discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10)))); + discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount)))); rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m))); nowTimeMillis = null; }else{ serviceCharge = s_server_amount.multiply(new BigDecimal(times)); - discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10)))); + discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount)))); break; } } @@ -1258,6 +1258,7 @@ BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); for (ChargingOrderVO chargingOrderVO : list) { + chargingOrderVO.setUid(chargingOrderVO.getId()+""); TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData(); TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData(); if (chargingOrderVO.getSiteId()!=null){ @@ -1271,38 +1272,24 @@ } if (chargingOrderVO.getChargingCapacity()!=null){ - total = total.add(chargingOrderVO.getChargingCapacity()); + total = total.add(chargingOrderVO.getElectricity()); } // 充电订单 明细记录 List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() .eq("charging_order_id", chargingOrderVO.getId())); - // 单个订单累计电费 - BigDecimal electronicMoney1 = new BigDecimal("0"); - // 单个订单累计服务费 - BigDecimal serviceMoney1 = new BigDecimal("0"); UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); if (data5!=null){ - chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L); + long l = data5.getCumulative_charging_time() * 60L; + chargingOrderVO.setChargingSecond(l); + time+=l; } - // 总收入 - if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){ - income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount())); - }else{ - if (chargingOrderVO.getPaymentAmount()!=null){ - income = income.add(chargingOrderVO.getPaymentAmount()); - } + 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()); } - for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) { - // 累计电费 - electronicMoney1 = electronicMoney1.add(tChargingOrderAccountingStrategy.getElectrovalence() - .multiply(tChargingOrderAccountingStrategy.getChargingCapacity())); - electronicMoney = electronicMoney.add(electronicMoney1); - // 累计服务费 - serviceMoney1 = serviceMoney1.add(tChargingOrderAccountingStrategy.getServiceCharge()); - serviceMoney = serviceMoney.add(serviceMoney1); - } - chargingOrderVO.setServiceCharge(serviceMoney1); - chargingOrderVO.setElectrovalence(electronicMoney1); // 充电时段数 int size = chargingOrderId.size(); chargingOrderVO.setCount(size); @@ -1409,7 +1396,36 @@ startTime2 = split[1]; } ChargingOrderTimeVO chargingOrderTimeVO = new ChargingOrderTimeVO(); - + if (StringUtils.hasLength(dto.getPhone())){ + List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); + if(data!=null){ + if (!data.isEmpty()){ + dto.setUserIds(data); + } + }else{ + dto.setUserIds(new ArrayList<Long>()); + } + if (dto.getUserIds().isEmpty()){ + List<Long> carIds = dto.getUserIds(); + carIds.add(-1L); + dto.setUserIds(carIds); + } + } + if (StringUtils.hasLength(dto.getPhone())){ + List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData(); + if(data!=null){ + if (!data.isEmpty()){ + dto.setCarIds(data); + } + }else{ + dto.setCarIds(new ArrayList<Long>()); + } + if (dto.getCarIds().isEmpty()){ + List<Long> carIds = dto.getCarIds(); + carIds.add(-1L); + dto.setCarIds(carIds); + } + } 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) { @@ -1439,7 +1455,7 @@ // 获取开始SOC 结束soc if (chargingOrderListVO.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); - if (!data6.isEmpty()){ + if (data6!=null && !data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString()); chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); @@ -1804,7 +1820,7 @@ invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo); break; } - if(null == invoke || Integer.valueOf(invoke.toString()) == 0){ + if(null == invoke || Double.valueOf(invoke.toString()) == 0){ continue; } BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString()); @@ -1860,7 +1876,7 @@ BigDecimal discountAmount = BigDecimal.ZERO; if(null != chargingOrder.getVipDiscount()){ //服务费折扣 - discountAmount = periodServicePrice_total.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())); + discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount()))); TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); if(null != appUser.getVipId()){ @@ -2068,6 +2084,10 @@ public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) { return this.baseMapper.usersByQuery(statisticsQueryDto); } + @Override + public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.usersByQuery(statisticsQueryDto); + } @Override public List<Map<String, Object>> getUserTagCount() { -- Gitblit v1.7.1