From 8236caa8042288fcb9b584c21d6157f713183626 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 13 二月 2025 16:36:01 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 113 ++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 68 insertions(+), 45 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 d8f088a..122a6b8 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 @@ -67,6 +67,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -206,6 +207,9 @@ @Resource private OperatorClient operatorClient; + + @Resource + private TransactionRecordClient transactionRecordClient; @@ -611,6 +615,7 @@ if(null != data && data.getChargeNum() > 0){ //计算折扣 List<AccountingStrategyDetailOrder> list = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData(); + list.get(list.size() - 1).setEndTime("23:59"); //将数据叠加两份,处理跨天的情况 list.addAll(list); boolean sta = false; @@ -1251,7 +1256,7 @@ endTime2 = split[1]; } PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); - PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999); + PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,999999999); if (StringUtils.hasLength(dto.getPhone())){ List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); @@ -2976,6 +2981,8 @@ return pageInfo; } + @Autowired + private TChargingOrderService chargingOrderService; @Override public SettlementTotalVO settlementTotal(String time) { Long userId = tokenService.getLoginUser().getUserid(); @@ -2990,6 +2997,14 @@ if (siteIds.isEmpty()){ siteIds.add(-1); } + List<Site> siteList = siteClient.getSiteAll().getData(); + List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); + List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); + List<TAppUser> userList = appUserClient.getAllUser().getData(); + List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); + List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class) + .eq(TChargingOrder::getRechargePaymentStatus, 2)); + List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); SettlementTotalVO res = new SettlementTotalVO(); List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds); LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); @@ -3037,9 +3052,9 @@ for (TSettlementConfirm tSettlementConfirm : list1) { tSettlementConfirm.setXuhao(i); tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic()); - List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData(); - if (!data1.isEmpty()){ - tSettlementConfirm.setSiteName(data1.get(0).getName()); + Site site = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).findFirst().orElse(null); + if (site!=null){ + tSettlementConfirm.setSiteName(site.getName()); } if (tSettlementConfirm.getMeteringElectronic()!=null){ meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic()); @@ -3084,26 +3099,17 @@ eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime()); break; } - List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq); - Map<String,TChargingOrder> map = new HashMap<>(); - StringBuilder stringBuilder = new StringBuilder(); - for (TChargingOrder tChargingOrder : tChargingOrders) { - stringBuilder.append(tChargingOrder.getCode()).append(","); - - } + List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime() + .isBefore(tSettlementConfirm.getEndTime()) + && e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList()); // 充电总时长 - - Long temp = 1L; - if (StringUtils.hasLength(stringBuilder.toString())){ - String substring = stringBuilder.substring(0, stringBuilder.length() - 1); - for (String s : substring.split(",")) { - UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData(); - if (data6!=null){ - temp+=(data6.getCumulative_charging_time()*60); - - } - - } + Long temp = 0L; + for (TChargingOrder tChargingOrder : tChargingOrders) { + LocalDateTime startTime = tChargingOrder.getStartTime(); + LocalDateTime endTime = tChargingOrder.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + temp+=between; } List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData(); // 计算充电桩的功率平均值 @@ -3115,7 +3121,7 @@ tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge())); //利用率=充电量/(桩数量*功率*时间) - List<TChargingPile> data2 = chargingPileClient.getChargingPileBySiteId(tSettlementConfirm.getSiteId()).getData(); + List<TChargingPile> data2 = pileList.stream().filter(e -> e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList()); BigDecimal bigDecimal2 = new BigDecimal("0"); if (data2!=null && (!data2.isEmpty())){ @@ -3231,11 +3237,16 @@ if (siteIds.isEmpty()){ siteIds.add(-1); } + List<Site> siteList = siteClient.getSiteAll().getData(); + List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); + List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); + List<TAppUser> userList = appUserClient.getAllUser().getData(); + List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); + List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class) + .eq(TChargingOrder::getRechargePaymentStatus, 2)); SettlementTotalVO res = new SettlementTotalVO(); List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds); LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - // 减少一个月 - LocalDateTime minus = parse.minusMonths(1); List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time,siteIds); // 合计 List<TSettlementConfirm> total = new ArrayList<>(); @@ -3278,7 +3289,7 @@ for (TSettlementConfirm tSettlementConfirm : list1) { tSettlementConfirm.setXuhao(i); tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic()); - List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData(); + List<Site> data1 = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList()); if (!data1.isEmpty()){ tSettlementConfirm.setSiteName(data1.get(0).getName()); } @@ -3325,26 +3336,18 @@ eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime()); break; } - List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq); - Map<String,TChargingOrder> map = new HashMap<>(); - StringBuilder stringBuilder = new StringBuilder(); - for (TChargingOrder tChargingOrder : tChargingOrders) { - stringBuilder.append(tChargingOrder.getCode()).append(","); - } + List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime() + .isBefore(tSettlementConfirm.getEndTime()) + && e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList()); // 充电总时长 - - Long temp = 1L; - if (StringUtils.hasLength(stringBuilder.toString())){ - String substring = stringBuilder.substring(0, stringBuilder.length() - 1); - for (String s : substring.split(",")) { - UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData(); - if (data6!=null){ - temp+=(data6.getCumulative_charging_time()*60); - - } - - } + Long temp = 0L; + for (TChargingOrder tChargingOrder : tChargingOrders) { + LocalDateTime startTime = tChargingOrder.getStartTime(); + LocalDateTime endTime = tChargingOrder.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + temp+=between; } List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData(); // 计算充电桩的功率平均值 @@ -3753,4 +3756,24 @@ }); return R.ok(); } + + + /** + * 获取充电后没有扣除费用的数据 + * @return + */ + @Override + public R getNotPaymentChargingOrder() { + List<TChargingOrder> list = this.list(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getPaymentAmount, 0) + .ne(TChargingOrder::getElectricity, 0).in(TChargingOrder::getStatus, Arrays.asList(4, 5))); + List<Map<String, Object>> mapList = new ArrayList<>(); + for (TChargingOrder order : list) { + TransactionRecord transactionRecord = transactionRecordClient.findTransactionRecord(order.getCode()).getData(); + Map<String, Object> map = new HashMap<>(); + map.put("order", order); + map.put("transactionRecord", transactionRecord); + mapList.add(map); + } + return R.ok(mapList); + } } -- Gitblit v1.7.1