无关风月
2025-02-07 76a35c5b5e797cdbe67f7baf8ea5acf3c4286383
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
5个文件已修改
67 ■■■■ 已修改文件
ruoyi-service/ruoyi-integration/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/pom.xml
@@ -152,12 +152,12 @@
        <dependency>
            <groupId>com.huaweicloud.sdk</groupId>
            <artifactId>huaweicloud-sdk-core</artifactId>
            <version>[3.0.40-rc, 3.2.0)</version>
            <version>[3.0.40-rc,3.2.0)</version>
        </dependency>
        <dependency>
            <groupId>com.huaweicloud.sdk</groupId>
            <artifactId>huaweicloud-sdk-iotda</artifactId>
            <version>[3.0.40-rc, 3.2.0)</version>
            <version>[3.0.40-rc,3.2.0)</version>
        </dependency>
        <dependency>
            <groupId>com.huaweicloud.sdk</groupId>
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -417,7 +417,7 @@
    @ApiOperation(value = "测试",tags = {"硬件接口"})
    @GetMapping(value = "/test")
    public R test() {
    public R test(String code) {
        String orderNum = "2024092646526785213546";
        String deviceId = "3401231001200202";
        Long orderId = 2024065544L;
@@ -425,7 +425,7 @@
        PlatformStartCharging platformStartCharging = new PlatformStartCharging();
        platformStartCharging.setTransaction_serial_number(orderNum);
        platformStartCharging.setCharging_pile_code(deviceId);
        platformStartCharging.setCharging_gun_code("02");
        platformStartCharging.setCharging_gun_code(code);
        platformStartCharging.setCard_number(orderId.toString());
        platformStartCharging.setAccount_balance(money);
        String message = iotMessageProduce.sendMessage(platformStartCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_START_CHARGING.getKey(), messageUtil.platformStartCharging(platformStartCharging));
@@ -435,10 +435,10 @@
    @ApiOperation(value = "测试",tags = {"硬件接口"})
    @GetMapping(value = "/stop")
    public R test1() {
    public R test1(String code) {
        PlatformStopCharging platformStopCharging = new PlatformStopCharging();
        platformStopCharging.setCharging_pile_code("3401231001200202");
        platformStopCharging.setCharging_gun_code("02");
        platformStopCharging.setCharging_gun_code(code);
        String message = iotMessageProduce.sendMessage(platformStopCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_STOP_CHARGING.getKey(),messageUtil.platformStopCharging(platformStopCharging));
        return R.ok(message);
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1,4 +1,5 @@
package com.ruoyi.order.controller;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import java.math.BigDecimal;
@@ -1919,10 +1920,11 @@
        }
       List<Map<String,Object>>   capMap  =   chargingOrderService.getchargingCapacity(siteIds,statisticsQueryDto);
        List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData();
        BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(chargingPiles.size())).multiply(new BigDecimal(24));
        BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add);
    
        //每日利用率=当日充电度数/(总桩数量*桩总功率*24小时)
        BigDecimal multiply1 = new BigDecimal(chargingPiles.size()).multiply(totalRatedPower).multiply(new BigDecimal(24));
        System.err.println(JSON.toJSONString(capMap) + "---" + chargingPiles.size() + "---" + totalRatedPower + "---" + multiply1);
        capMap.forEach(map -> {
            BigDecimal chargingCapacity = (BigDecimal) map.get("chargingCapacity");
            BigDecimal result = chargingCapacity.divide(multiply1, 4, RoundingMode.HALF_UP);
@@ -2007,49 +2009,6 @@
    private static List<TChargingOrder> getSampleData() {
        // 这里可以替换为实际查询逻辑
        List<TChargingOrder> list = new ArrayList<>();
        // 示例数据
        for (int i = 0; i < 24; i++) {
            TChargingOrder order = new TChargingOrder();
            order.setStartTime(LocalDateTime.now().minusHours(23 - i));
            order.setOrderAmount(BigDecimal.valueOf(i + 1));
            list.add(order);
        }
        return list;
    }
    private static List<Map<String, BigDecimal>> processData(List<TChargingOrder> list) {
        Map<LocalDateTime, BigDecimal> hourlySum = new HashMap<>();
        // 按每个小时分组并求和
        for (TChargingOrder order : list) {
            LocalDateTime hour = order.getStartTime().truncatedTo(ChronoUnit.HOURS);
            BigDecimal amount = order.getOrderAmount();
            hourlySum.merge(hour, amount, BigDecimal::add);
        }
        // 创建结果列表
        List<Map<String, BigDecimal>> resultList = new ArrayList<>();
        for (int i = 1; i <= 23; i++) {
            LocalDateTime keyHour = LocalDateTime.now().withHour(i);
            BigDecimal sum = BigDecimal.ZERO;
            // 计算键之后的一小时的数据之和
            for (int j = i + 1; j <= 23; j++) {
                LocalDateTime nextHour = LocalDateTime.now().withHour(j);
                sum = sum.add(hourlySum.getOrDefault(nextHour, BigDecimal.ZERO));
            }
            Map<String, BigDecimal> entry = new HashMap<>();
            entry.put(String.valueOf(i), sum);
            resultList.add(entry);
        }
        return resultList;
    }
    /**
     * 硬件充电结束后的处理逻辑
@@ -2061,6 +2020,8 @@
        chargingOrderService.endCharge(code, 2);
    }
    /**
     * 硬件异常结束充电后的处理逻辑
     * @param code
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1100,7 +1100,7 @@
                if(1 == doubleIntegration){
                    num1 *= 2;
                }
            }
            
            GetInviteUser query = new GetInviteUser();
@@ -2176,7 +2176,7 @@
        discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
        payAmount = payAmount.subtract(discountAmount);
        periodServicePrice_total = periodServicePrice_total.subtract(discountAmount);
        TChargingOrder order = new TChargingOrder();
        order.setId(chargingOrder.getId());
        order.setAppUserId(chargingOrder.getAppUserId());
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -1489,8 +1489,6 @@
        </if>
        GROUP BY
            time
        ORDER BY
            time
    </select>
    <select id="countAllUserData" resultType="java.util.Map">
        SELECT