fix
longz
2026-07-20 27beb03b89f9e47731bd50204b9356ba52abb914
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -2125,13 +2125,19 @@
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
                siteIds.add(datum.getId());
            if (data != null) {
                for (GetSiteListDTO datum : data) {
                    siteIds.add(datum.getId());
                }
            }
        } else {
            siteIds.add(statisticsQueryDto.getSiteId());
        }
        String format = statisticsQueryDto.getSelectDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        if (siteIds.isEmpty()) {
            siteIds.add(-1);
        }
        LocalDateTime selectDate = statisticsQueryDto.getSelectDate() == null ? LocalDateTime.now() : statisticsQueryDto.getSelectDate();
        String format = selectDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        Map<String, Object> stringObjectMap = chargingOrderService.getChargingOrderCount(siteIds, format);
        //当日的订单总数
        int size = 0;
@@ -2144,10 +2150,10 @@
        //计算list中charging_capacity的总和
        BigDecimal totalChargingCapacity = BigDecimal.ZERO;
        if(null != stringObjectMap){
            size = Integer.parseInt(stringObjectMap.get("num").toString());
            totalElectrovalence = new BigDecimal(stringObjectMap.get("electrovalence").toString());
            totalServiceCharge = new BigDecimal(stringObjectMap.get("servicecharge").toString());
            totalChargingCapacity = new BigDecimal(stringObjectMap.get("electricity").toString());
            size = getWorkChargeInt(stringObjectMap, "num");
            totalElectrovalence = getWorkChargeDecimal(stringObjectMap, "electrovalence");
            totalServiceCharge = getWorkChargeDecimal(stringObjectMap, "servicecharge");
            totalChargingCapacity = getWorkChargeDecimal(stringObjectMap, "electricity");
            totalPaymentAmount = totalElectrovalence.add(totalServiceCharge);
        }
        
@@ -2159,6 +2165,31 @@
        tCharingWorkVO.setTotalChargingCapacity(totalChargingCapacity);
        return R.ok(tCharingWorkVO);
    }
    private int getWorkChargeInt(Map<String, Object> map, String key) {
        Object value = map.get(key);
        if (value == null) {
            return 0;
        }
        if (value instanceof Number) {
            return ((Number) value).intValue();
        }
        return Integer.parseInt(value.toString());
    }
    private BigDecimal getWorkChargeDecimal(Map<String, Object> map, String key) {
        Object value = map.get(key);
        if (value == null) {
            return BigDecimal.ZERO;
        }
        if (value instanceof BigDecimal) {
            return (BigDecimal) value;
        }
        if (value instanceof Number) {
            return BigDecimal.valueOf(((Number) value).doubleValue());
        }
        return new BigDecimal(value.toString());
    }