From 67b0c9e1e81f4eef2438e31b4009a4da5d14b66c Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 18 三月 2025 20:37:01 +0800 Subject: [PATCH] 修改报表bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 132 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 108 insertions(+), 24 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 6fa5826..325b337 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -210,16 +210,19 @@ if (siteIds.isEmpty()){ siteIds.add(-1); } - + List<TChargingOrder> list = chargingOrderService.list(); + List<TParkingRecord> parkingRecord = parkingLotClient.getSiteIdAll().getData(); for (PayOrderDto record : data.getRecords()) { if (record.getType() == 1){ - TChargingOrder byId = chargingOrderService.getById(record.getId()); - record.setSiteId(byId.getSiteId()); + TChargingOrder chargingOrder = list.stream().filter(e -> e.getId().equals(Long.valueOf(record.getId()))).findFirst().orElse(null); + if (chargingOrder!=null){ + record.setSiteId(chargingOrder.getSiteId()); + } } if (record.getType()==4){ - Integer siteId=parkingLotClient.getSiteIdByOrderId(Long.valueOf(record.getId())).getData(); - if (siteId!=null){ - record.setSiteId(siteId); + TParkingRecord tParkingRecord = parkingRecord.stream().filter(e -> e.getId().equals(Long.valueOf(record.getId()))).findFirst().orElse(null); + if (tParkingRecord!=null){ + record.setSiteId(tParkingRecord.getSiteId()); } } if (roleType==1||(record.getType()!=1&&record.getType()!=4)){ @@ -397,15 +400,38 @@ @GetMapping(value = "/pay/order/charging/details") @ApiOperation(value = "充电明细", tags = {"管理后台-支付订单-订单信息"}) public R<List<TChargingOrderAccountingStrategy>> chargingDetail(Long orderId) { - List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list(); + TChargingOrder chargingOrder = chargingOrderService.getById(orderId); + List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId) + .orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) { - String format = tChargingOrderAccountingStrategy.getCreateTime().format(formatter); + LocalDateTime createTime = chargingOrder.getStartTime(); + String format = createTime.format(formatter); + String startTime = tChargingOrderAccountingStrategy.getStartTime(); + if("00:00".equals(startTime)){ + createTime = createTime.plusDays(1); + format = createTime.format(formatter); + } tChargingOrderAccountingStrategy.setStartTime(format+" "+tChargingOrderAccountingStrategy.getStartTime()); tChargingOrderAccountingStrategy.setEndTime(format+" "+tChargingOrderAccountingStrategy.getEndTime()); } - - + //从新排序 + list.sort(new Comparator<TChargingOrderAccountingStrategy>() { + @Override + public int compare(TChargingOrderAccountingStrategy o1, TChargingOrderAccountingStrategy o2) { + String startTime = o1.getStartTime(); + String startTime1 = o2.getStartTime(); + LocalDateTime localDateTime = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + LocalDateTime localDateTime1 = LocalDateTime.parse(startTime1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + if(localDateTime.isBefore(localDateTime1)){ + return -1; + } + if(localDateTime.isAfter(localDateTime1)){ + return 1; + } + return 0; + } + }); return R.ok(list); } @@ -465,6 +491,10 @@ return refundList1; } + + + + public static List<TChargingOrderRefund> testing4(long total, long current, long size, List<TChargingOrderRefund> str){ List<TChargingOrderRefund> result = new ArrayList<>(); //获取初始化分页结构 @@ -513,8 +543,8 @@ TCharingOrderVO res = chargingOrderService.chargingOrder(dto); return AjaxResult.success(res); } - - + + @RequiresPermissions(value = {"/chargingPileOrder/monitoring_record"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/chargingOrderInfo") @@ -541,7 +571,13 @@ List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) { - String format = tChargingOrderAccountingStrategy.getCreateTime().format(formatter); + LocalDateTime createTime = byId.getStartTime(); + String format = createTime.format(formatter); + String startTime = tChargingOrderAccountingStrategy.getStartTime(); + if("00:00".equals(startTime)){ + createTime = createTime.plusDays(1); + format = createTime.format(formatter); + } tChargingOrderAccountingStrategy.setStartTime(format+" "+tChargingOrderAccountingStrategy.getStartTime()); tChargingOrderAccountingStrategy.setEndTime(format+" "+tChargingOrderAccountingStrategy.getEndTime()); if (byId.getVipDiscountAmount()!=null && byId.getServiceCharge().compareTo(BigDecimal.ZERO) != 0){ @@ -555,10 +591,30 @@ tChargingOrderAccountingStrategy.setCouponDiscount(multiply); } } + //从新排序 + list.sort(new Comparator<TChargingOrderAccountingStrategy>() { + @Override + public int compare(TChargingOrderAccountingStrategy o1, TChargingOrderAccountingStrategy o2) { + String startTime = o1.getStartTime(); + String startTime1 = o2.getStartTime(); + LocalDateTime localDateTime = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + LocalDateTime localDateTime1 = LocalDateTime.parse(startTime1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + if(localDateTime.isBefore(localDateTime1)){ + return -1; + } + if(localDateTime.isAfter(localDateTime1)){ + return 1; + } + return 0; + } + }); chargingOrderInfoVO.setList(list); return AjaxResult.success(chargingOrderInfoVO); } + + + @ResponseBody @PostMapping(value = "/addEvaluate") @ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"}) @@ -567,6 +623,9 @@ orderEvaluateService.addOrderEvaluate(dto); return AjaxResult.success(); } + + + /** * 查询用户最近一次充电记录使用的车辆 * @@ -586,6 +645,9 @@ return R.ok(-1L); } } + + + /** * 查询会员在本月有多少次享受了充电折扣 @@ -991,6 +1053,10 @@ } + + + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/total") @@ -1010,7 +1076,7 @@ siteIds.add(-1); } Map<String,Object> map = chargingOrderService.countAll(sixBefore,siteIds); - BigDecimal data = parkingLotClient.getRecordAmount(sixBefore).getData(); + BigDecimal data = parkingLotClient.getRecordAmount(sixBefore.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).getData(); if (map ==null){ map = new HashMap<String,Object>(); } @@ -1019,9 +1085,21 @@ map.put("shopAmount",data1); BigDecimal data2 = vipOrderService.getSumAmout(sixBefore); map.put("vipAmount",data2); + List<TChargingOrder> list = chargingOrderService.lambdaQuery().between(TChargingOrder::getCreateTime, sixBefore, LocalDate.now()).list(); + BigDecimal serviceCharge = new BigDecimal("0"); + BigDecimal commissionAmount = new BigDecimal("0"); + for (TChargingOrder chargingOrder : list) { + if (chargingOrder.getOrderSource().equals(2)){ + serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); + commissionAmount = commissionAmount.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); + }else if (chargingOrder.getServiceCharge()!=null){ + serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()); + } - + } + map.put("service_charge",serviceCharge); + map.put("commission_amount",commissionAmount); return R.ok(map); } @@ -1088,7 +1166,11 @@ if (chargingOrderVO != null) { BeanUtils.copyProperties(chargingOrderVO, dataDto); } + BeanUtils.copyProperties(uploadRealTimeMonitoringData, dataDto); + if (chargingOrderVO != null && chargingOrderVO.getOrderSource()==2){ + dataDto.setPeriod_service_price(uploadRealTimeMonitoringData.getPeriod_service_price().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_DOWN))); + } dataDto.setStartTime(uploadRealTimeMonitoringData.getStartTime()); dataDto.setEndTime(uploadRealTimeMonitoringData.getEndTime() == null ? null : uploadRealTimeMonitoringData.getEndTime()); dataDto.setStatus(uploadRealTimeMonitoringData.getStatus()); @@ -1206,14 +1288,14 @@ } } - List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getCreateTime, start).le(TChargingOrder::getCreateTime, end).in(TChargingOrder::getSiteId, siteIds).list(); - List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); - chargingOrderIds.add(-1L); +// List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getCreateTime, start).le(TChargingOrder::getCreateTime, end).in(TChargingOrder::getSiteId, siteIds).list(); +// List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); +// chargingOrderIds.add(-1L); //上方饼图 - List<Map<String,Object>> maps = chargingOrderService.getSumByType(chargingOrderIds); + List<Map<String,Object>> maps = chargingOrderService.getSumByType(start,end, siteIds); if (statisticsQueryDto.getDayType()==1){ - List<Map<String,Object>> maps1 = chargingOrderService.getDateData(chargingOrderIds); + List<Map<String,Object>> maps1 = chargingOrderService.getDateData(start,end, siteIds); List<Map<String, Object>> charMap = new ArrayList<>(); // 生成从 "00:00" 到 "23:00" 的时间数据 @@ -1240,7 +1322,7 @@ - List<Map<String,Object>> maps1 = chargingOrderService.getWeekData(chargingOrderIds); + List<Map<String,Object>> maps1 = chargingOrderService.getWeekData(start,end); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1270,7 +1352,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==3){ - List<Map<String,Object>> maps1 = chargingOrderService.getMonthData(chargingOrderIds); + List<Map<String,Object>> maps1 = chargingOrderService.getMonthData(start,end); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1300,7 +1382,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==4){ - List<Map<String,Object>> maps1 = chargingOrderService.getYearData(chargingOrderIds); + List<Map<String,Object>> maps1 = chargingOrderService.getYearData(start,end); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1331,7 +1413,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==5){ - List<Map<String,Object>> maps1 = chargingOrderService.getByDate(chargingOrderIds); + List<Map<String,Object>> maps1 = chargingOrderService.getByDate(start,end); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -2210,4 +2292,6 @@ return chargingOrderService.getNotPaymentChargingOrder(); } + + } -- Gitblit v1.7.1