Pu Zhibing
2025-03-14 b880058e6ded5169ed38bb214d2da3b841d51bdd
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -400,15 +400,37 @@
    @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();
        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 = tChargingOrderAccountingStrategy.getCreateTime();
            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);
    }
    
@@ -468,6 +490,10 @@
        return refundList1;
    }
    public static List<TChargingOrderRefund> testing4(long total, long current, long size, List<TChargingOrderRefund> str){
        List<TChargingOrderRefund> result = new ArrayList<>();
        //获取初始化分页结构
@@ -516,8 +542,8 @@
        TCharingOrderVO res = chargingOrderService.chargingOrder(dto);
        return AjaxResult.success(res);
    }
    @RequiresPermissions(value = {"/chargingPileOrder/monitoring_record"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/chargingOrderInfo")
@@ -544,7 +570,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 = tChargingOrderAccountingStrategy.getCreateTime();
            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){
@@ -558,10 +590,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 = {"小程序-扫一扫"})
@@ -570,6 +622,9 @@
        orderEvaluateService.addOrderEvaluate(dto);
        return AjaxResult.success();
    }
    /**
     * 查询用户最近一次充电记录使用的车辆
     *
@@ -589,6 +644,9 @@
            return R.ok(-1L);
        }
    }
    /**
     * 查询会员在本月有多少次享受了充电折扣
@@ -760,6 +818,18 @@
                                         @RequestParam("transaction_id") String transaction_id,
                                         @RequestParam("attach") String attach) {
        chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
    }
    /**
     *
     * @param code
     */
    @ResponseBody
    @PostMapping(value = "/refund")
    public R refund(@RequestParam(value = "code") String code){
        chargingOrderService.refund(code);
        return R.ok();
    }
    
    
@@ -982,6 +1052,10 @@
    }
    
    
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/total")
@@ -1001,7 +1075,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>();
        }
@@ -1010,9 +1084,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);
    }
@@ -1079,7 +1165,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());
@@ -1197,14 +1287,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);
        if (statisticsQueryDto.getDayType()==1){
            List<Map<String,Object>> maps1 = chargingOrderService.getDateData(chargingOrderIds);
            List<Map<String,Object>> maps1 = chargingOrderService.getDateData(start,end);
            List<Map<String, Object>> charMap = new ArrayList<>();
            // 生成从 "00:00" 到 "23:00" 的时间数据
@@ -1231,7 +1321,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();
@@ -1261,7 +1351,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();
@@ -1291,7 +1381,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();
@@ -1322,7 +1412,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();
@@ -2201,4 +2291,6 @@
        return chargingOrderService.getNotPaymentChargingOrder();
    }
    
}