From 6cca8f6b62cff87bde6108f0fddc1822e865a8ef Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 22 七月 2025 18:10:26 +0800
Subject: [PATCH] 大屏替换路径

---
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicPowerGenerationVO.java       |   15 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java       |    7 
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/impl/TScreenContentServiceImpl.java |  169 +++++++++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/KsolarUtils.java                       |  235 +++++++++++++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicAndConsumptionVO.java        |   20 +
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenTopVO.java                         |   24 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java                  |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java                  |   20 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java                  |   52 +++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenStorageConfigVO.java               |   37 ++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java             |   27 +
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EmissionReductionVO.java                 |   27 +
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/TScreenContentController.java    |  157 +++++++++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/LargeScreenController.java       |   54 +-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java       |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                |    2 
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/TScreenContentService.java          |   35 ++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mapper/TScreenContentMapper.java            |   35 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java               |    3 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                        |   21 
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EnergyStorageDischargeVO.java            |   18 +
 ruoyi-service/ruoyi-jianguan/src/main/resources/mapper/jianguan/TScreenContentMapper.xml                  |   40 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java          |    5 
 23 files changed, 963 insertions(+), 44 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
index d08ab1f..42537a7 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -12,6 +12,8 @@
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -104,6 +106,31 @@
             public R<Region> getRegionBuyCode(String code) {
                 return R.fail("远程调用根据code查询名称失败:"+throwable.getMessage());
             }
+
+            @Override
+            public R<List<TSystemConfiguration>> getTSystemConfiguration() {
+                return R.fail("远程调用获取配置失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public R<BigDecimal> getCarDisCharge() {
+                return R.fail("远程调用获取配置失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public R<BigDecimal> getGreenElectricity(List<Integer> siteIds) {
+                return R.fail("远程调用获取配置失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public R carportData(String parkingPlace) {
+                return R.fail("远程调用获取配置失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public R<HashMap<String, Object>> getCarportData() {
+                return R.fail("远程调用获取配置失败:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
index a189721..aa6c019 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -11,6 +11,8 @@
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -74,4 +76,22 @@
     R<List<TEnterpriseUserApplication>> getTnterPrise();
     @GetMapping("/region/getRegionBuyCode/{code}")
     R<Region> getRegionBuyCode(@PathVariable("code") String code);
+
+    @GetMapping("/region/getTSystemConfiguration")
+    R<List<TSystemConfiguration>> getTSystemConfiguration();
+
+    @GetMapping(value = "/region/getCarDisCharge")
+    R<BigDecimal> getCarDisCharge();
+
+    @PostMapping(value = "/region/getGreenElectricity")
+    R<BigDecimal> getGreenElectricity(@RequestBody List<Integer> siteIds);
+
+    @PostMapping(value = "/region/carportData")
+    R carportData(String parkingPlace);
+
+    @GetMapping(value = "/region/getCarportData")
+    R<HashMap<String, Object>> getCarportData();
+
+
+
 }
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/LargeScreenController.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/LargeScreenController.java
index ec3353e..9e88b0e 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/LargeScreenController.java
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/LargeScreenController.java
@@ -37,33 +37,33 @@
     }
 
 
-    @SneakyThrows
-    @ApiOperation(tags = {"大屏-停车场充电功率曲线图"},value = "停车场充电功率曲线图")
-    @GetMapping("/getChargingPower")
-    public R<List<LargeChargingPowerVo>> getChargingPower(){
-        String sevenDayAgo = LocalDate.now().minusDays(7) + " 00:00:00";
-        String oneDayAgo = LocalDate.now().minusDays(1) + " 23:59:59";
-        Date oneDayAgoTime = format.parse(oneDayAgo);
-        Date sevenDayAgoTime = format.parse(sevenDayAgo);
-        ArrayList<LargeChargingPowerVo> largeChargingPowerVos = new ArrayList<>();
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        List<UploadRealTimeMonitoringData> rangeTimeData = uploadRealTimeMonitoringDataService.getRangeTimeData(sevenDayAgoTime,oneDayAgoTime );
-        for (int count = 7; count > 0; count--) {
-            LargeChargingPowerVo largeChargingPowerVo = new LargeChargingPowerVo();
-            String time = LocalDate.now().minusDays(count).toString();
-
-            List<UploadRealTimeMonitoringData> list = rangeTimeData.stream().filter(e -> simpleDateFormat.format(e.getCreate_time()).contains(time)).collect(Collectors.toList());
-            if(!list.isEmpty()){
-                System.out.println(list);
-                BigDecimal powerAverage = list.stream().map(UploadRealTimeMonitoringData::getPower).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(list.size()), 0, RoundingMode.HALF_UP);
-                largeChargingPowerVo.setPower(powerAverage);
-            }
-            largeChargingPowerVo.setTime(time);
-            largeChargingPowerVos.add(largeChargingPowerVo);
-        }
-
-        return R.ok(largeChargingPowerVos);
-    }
+//    @SneakyThrows
+//    @ApiOperation(tags = {"大屏-停车场充电功率曲线图"},value = "停车场充电功率曲线图")
+//    @GetMapping("/getChargingPower")
+//    public R<List<LargeChargingPowerVo>> getChargingPower(){
+//        String sevenDayAgo = LocalDate.now().minusDays(7) + " 00:00:00";
+//        String oneDayAgo = LocalDate.now().minusDays(1) + " 23:59:59";
+//        Date oneDayAgoTime = format.parse(oneDayAgo);
+//        Date sevenDayAgoTime = format.parse(sevenDayAgo);
+//        ArrayList<LargeChargingPowerVo> largeChargingPowerVos = new ArrayList<>();
+//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+//        List<UploadRealTimeMonitoringData> rangeTimeData = uploadRealTimeMonitoringDataService.getRangeTimeData(sevenDayAgoTime,oneDayAgoTime );
+//        for (int count = 7; count > 0; count--) {
+//            LargeChargingPowerVo largeChargingPowerVo = new LargeChargingPowerVo();
+//            String time = LocalDate.now().minusDays(count).toString();
+//
+//            List<UploadRealTimeMonitoringData> list = rangeTimeData.stream().filter(e -> simpleDateFormat.format(e.getCreate_time()).contains(time)).collect(Collectors.toList());
+//            if(!list.isEmpty()){
+//                System.out.println(list);
+//                BigDecimal powerAverage = list.stream().map(UploadRealTimeMonitoringData::getPower).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(list.size()), 0, RoundingMode.HALF_UP);
+//                largeChargingPowerVo.setPower(powerAverage);
+//            }
+//            largeChargingPowerVo.setTime(time);
+//            largeChargingPowerVos.add(largeChargingPowerVo);
+//        }
+//
+//        return R.ok(largeChargingPowerVos);
+//    }
 
 
 
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/TScreenContentController.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/TScreenContentController.java
new file mode 100644
index 0000000..ca8ac88
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/TScreenContentController.java
@@ -0,0 +1,157 @@
+package com.ruoyi.jianguan.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.jianguan.service.TScreenContentService;
+import com.ruoyi.jianguan.service.TSystemConfigurationService;
+import com.ruoyi.jianguan.util.KsolarUtils;
+import com.ruoyi.jianguan.vo.*;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.other.api.domain.TScreenContent;
+import com.ruoyi.other.api.domain.TSystemConfiguration;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author huliguo
+ * @since 2025/5/23
+ */
+@RestController
+@RequestMapping("/t_screen_content")
+public class TScreenContentController {
+
+    @Resource
+    private TScreenContentService screenContentService;
+
+
+    @Autowired
+    private OtherClient otherClient;
+
+
+    /**
+     * 顶部-累计电量
+     */
+    @ApiOperation(tags = {"顶部-累计电量"},value = "充电桩数据大屏")
+    @GetMapping(value = "/top")
+    public AjaxResult<ScreenTopVO> top(@RequestParam("siteIds") List<Integer> siteIds) {
+        return AjaxResult.success(screenContentService.top(siteIds));
+    }
+
+    /**
+     * 光伏发电和消纳  这里的绿电是调后台大屏内容管理的
+     */
+    @ApiOperation(tags = {"光伏发电和消纳"},value = "充电桩数据大屏")
+    @GetMapping(value = "/photovoltaicAndConsumption")
+    public AjaxResult<PhotovoltaicAndConsumptionVO> photovoltaicAndConsumption() {
+        //需调用接口 获取光伏发电量
+        PhotovoltaicAndConsumptionVO vo = new PhotovoltaicAndConsumptionVO();
+        vo.setTodayGenerateElectricity(new BigDecimal(KsolarUtils.getTodayEnergy(LocalDateTime.now().toString())));
+        vo.setGreenElectricityToday(vo.getTodayGenerateElectricity().multiply(new BigDecimal("0.94")).setScale(2, RoundingMode.HALF_UP));
+        return AjaxResult.success(vo);
+    }
+
+
+    /**
+     * 累计减排数据
+     */
+    @ApiOperation(tags = {"减排数据"},value = "充电桩数据大屏")
+    @GetMapping(value = "/emissionReduction")
+    public AjaxResult<EmissionReductionVO> emissionReduction (@RequestParam("siteIds") List<Integer> siteIds) {
+        return AjaxResult.success( screenContentService.emissionReduction(siteIds));
+    }
+    /**
+     * 光伏发电实时情况
+     */
+    @ApiOperation(tags = {"光伏发电实时情况"},value = "充电桩数据大屏")
+    @GetMapping(value = "/photovoltaicPowerGeneration")
+    public AjaxResult<PhotovoltaicPowerGenerationVO> photovoltaicPowerGeneration (@RequestParam("siteIds") List<Integer> siteIds) {
+        return AjaxResult.success( screenContentService.photovoltaicPowerGeneration(siteIds));
+    }
+
+    /**
+     * 储能放电情况
+     */
+    @ApiOperation(tags = {"储能放电情况"},value = "充电桩数据大屏")
+    @GetMapping(value = "/energyStorageDischarge")
+    public AjaxResult<EnergyStorageDischargeVO> energyStorageDischarge() {
+        String electricity = KsolarUtils.getElectricity();
+        R<List<TSystemConfiguration>> systemConfiguration = otherClient.getTSystemConfiguration();
+        List<TSystemConfiguration> list = systemConfiguration.getData();
+//        List<TSystemConfiguration> list = systemConfigurationService.list(new LambdaQueryWrapper<TSystemConfiguration>().in(TSystemConfiguration::getType, 4, 5));
+        // 昨日放能
+        TSystemConfiguration sysConfig = list.stream().filter(e -> e.getType() == 4).findFirst().orElse(null);
+        // 昨日储能
+        TSystemConfiguration sysConfig1 = list.stream().filter(e -> e.getType() == 5).findFirst().orElse(null);
+        // 总储能
+        String s = electricity.split("_")[0];
+        // 总放能
+        String s1 = electricity.split("_")[1];
+
+        EnergyStorageDischargeVO vo = new EnergyStorageDischargeVO();
+        BigDecimal subtract = new BigDecimal(s1).subtract(new BigDecimal(sysConfig.getContent()));
+                vo.setTodayDischarge(subtract);
+        BigDecimal subtract1 = new BigDecimal(s).subtract(new BigDecimal(sysConfig1.getContent()));
+        vo.setTodayStorage(subtract1);
+        return AjaxResult.success(vo);
+    }
+
+
+
+    /**
+     * 停车场共享情况及相关数据
+     */
+    @ApiOperation(tags = {"停车场共享情况及相关数据"},value = "充电桩数据大屏")
+    @GetMapping(value = "/screen")
+    public AjaxResult<TScreenContent> screen(@RequestParam("siteIds") List<Integer> siteIds) {
+        List<TScreenContent> list = screenContentService.list(new LambdaQueryWrapper<TScreenContent>().in(TScreenContent::getSiteId, siteIds));
+        TScreenContent tScreenContent = new TScreenContent();
+        if(list==null|| list.isEmpty()){
+            return AjaxResult.success(tScreenContent);
+        }
+        BeanUtils.copyProperties(list.get(0),tScreenContent);
+        list.remove(0);
+        list.forEach(x->{
+            tScreenContent.setCarDischarge(tScreenContent.getCarDischarge().add(x.getCarDischarge()));
+            tScreenContent.setGreenElectricity(tScreenContent.getGreenElectricity().add(x.getGreenElectricity()));
+            tScreenContent.setGreenElectricityToday(tScreenContent.getGreenElectricityToday().add(x.getGreenElectricityToday()));
+            tScreenContent.setValueOne(tScreenContent.getValueOne().add(x.getValueOne()));
+            tScreenContent.setValueTwo(tScreenContent.getValueTwo().add(x.getValueTwo()));
+            tScreenContent.setValueThree(tScreenContent.getValueThree().add(x.getValueThree()));
+            if(tScreenContent.getStatisticalDeadline().getTime()<(x.getStatisticalDeadline().getTime())) {
+                tScreenContent.setStatisticalDeadline(x.getStatisticalDeadline());
+            }
+        });
+        return AjaxResult.success(tScreenContent);
+    }
+
+    @ApiOperation(tags = {"车位数据传输"},value = "充电桩数据大屏")
+    @PostMapping(value = "/carportData")
+    public AjaxResult<?> carportData(Integer parkingPlace,Integer remainPlace) {
+        screenContentService.carportData(parkingPlace,remainPlace);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(tags = {"获取车位数据传输"},value = "充电桩数据大屏")
+    @GetMapping(value = "/getCarportData")
+    public AjaxResult<?> getCarportData() {
+        HashMap<String,Object> map = screenContentService.getCarportData();
+        return AjaxResult.success(map);
+    }
+
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mapper/TScreenContentMapper.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mapper/TScreenContentMapper.java
new file mode 100644
index 0000000..5e495d4
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mapper/TScreenContentMapper.java
@@ -0,0 +1,35 @@
+package com.ruoyi.jianguan.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.other.api.domain.TScreenContent;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author huliguo
+ * @since 2025/5/23
+ */
+@Mapper
+public interface TScreenContentMapper extends BaseMapper<TScreenContent> {
+
+    BigDecimal getCarDisCharge(@Param("siteIds") List<Integer> siteIds);
+
+    BigDecimal getGreenElectricity(@Param("siteIds") List<Integer> siteIds);
+
+    void carportData(@Param("parkingPlace") Integer parkingPlace, @Param("remainPlace") Integer remainPlace);
+
+
+    HashMap<String, Object> getCarportData();
+
+
+
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/TScreenContentService.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/TScreenContentService.java
new file mode 100644
index 0000000..6892bc3
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/TScreenContentService.java
@@ -0,0 +1,35 @@
+package com.ruoyi.jianguan.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jianguan.vo.EmissionReductionVO;
+import com.ruoyi.jianguan.vo.PhotovoltaicPowerGenerationVO;
+import com.ruoyi.jianguan.vo.ScreenTopVO;
+import com.ruoyi.other.api.domain.TScreenContent;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author huliguo
+ * @since 2025/5/23
+ */
+public interface TScreenContentService extends IService<TScreenContent> {
+
+    EmissionReductionVO emissionReduction(List<Integer> siteIds);
+
+    PhotovoltaicPowerGenerationVO photovoltaicPowerGeneration(List<Integer> siteIds);
+
+    ScreenTopVO top(List<Integer> siteIds);
+
+    void carportData(Integer parkingPlace, Integer remainPlace);
+
+
+    HashMap<String, Object> getCarportData();
+
+
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/impl/TScreenContentServiceImpl.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/impl/TScreenContentServiceImpl.java
new file mode 100644
index 0000000..bf71b6e
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/service/impl/TScreenContentServiceImpl.java
@@ -0,0 +1,169 @@
+package com.ruoyi.jianguan.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.jianguan.mapper.TScreenContentMapper;
+import com.ruoyi.jianguan.mapper.TSystemConfigurationMapper;
+import com.ruoyi.jianguan.service.TScreenContentService;
+import com.ruoyi.jianguan.util.KsolarUtils;
+import com.ruoyi.jianguan.vo.EmissionReductionVO;
+import com.ruoyi.jianguan.vo.PhotovoltaicPowerGenerationVO;
+import com.ruoyi.jianguan.vo.ScreenTopVO;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.other.api.domain.TScreenContent;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.*;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author huliguo
+ * @since 2025/5/23
+ */
+@Service
+public class TScreenContentServiceImpl extends ServiceImpl<TScreenContentMapper, TScreenContent> implements TScreenContentService {
+
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
+
+    @Resource
+    private OtherClient otherClient;
+
+    @Override
+    public EmissionReductionVO emissionReduction(List<Integer> siteIds) {
+        ScreenTopVO top = top(Arrays.asList(25, 26));
+        //需调用接口 计算光伏减排
+        EmissionReductionVO vo = new EmissionReductionVO();
+        //获取总电量 计算累计充电二氧化碳减排量
+        BigDecimal charge=top.getCarCharge();
+        BigDecimal multiplier = new BigDecimal("0.1404");
+        //计算累计充电二氧化碳减排量
+        if (charge.compareTo(BigDecimal.ZERO) != 0) {
+            // 定义乘数和除数
+           // 0.1404
+            // 计算:charge × 0.1404 ÷ 1000
+            charge = charge
+                    .multiply(multiplier)      // 乘以 0.1404
+                    .divide(new BigDecimal("1000"),2, RoundingMode.HALF_DOWN); // 除以 1000,保留6位小数,四舍五入
+        }
+        vo.setCharge(charge);
+
+        //获取累计储能放电量
+        String s = KsolarUtils.getElectricity().split("_")[0];
+        vo.setEnergyStorage(new BigDecimal(s).multiply(multiplier)      // 乘以 0.1404
+                .divide(new BigDecimal("1000"),2, RoundingMode.HALF_DOWN));
+
+        //获取累计发电
+        vo.setPhotovoltaic(KsolarUtils.getYearAllEnergy());
+
+        //总数:
+        BigDecimal total = vo.getPhotovoltaic().add(vo.getEnergyStorage()).add(vo.getCharge());
+        vo.setTotal(total);
+
+
+
+
+        //计算比率
+        vo.setPhotovoltaicRate(calculateRatio(vo.getPhotovoltaic(),vo.getTotal()).multiply(new BigDecimal("100")));
+        vo.setEnergyStorageRate(calculateRatio(vo.getEnergyStorage(),vo.getTotal()).multiply(new BigDecimal("100")));
+        vo.setChargeRate(calculateRatio(vo.getCharge(),vo.getTotal()).multiply(new BigDecimal("100")));
+
+        return vo;
+    }
+
+
+    //百分比计算
+    public static BigDecimal calculateRatio(BigDecimal part, BigDecimal total) {
+        if (total.compareTo(BigDecimal.ZERO) == 0) {
+            throw new ArithmeticException("分母不能为零");
+        }
+        return part.divide(total, 4, RoundingMode.HALF_UP);
+    }
+
+    @Override
+    public PhotovoltaicPowerGenerationVO photovoltaicPowerGeneration(List<Integer> siteIds) {
+        PhotovoltaicPowerGenerationVO vo = new PhotovoltaicPowerGenerationVO();
+        List<LocalDate> dates = new ArrayList<>();
+        List<Double> values = new ArrayList<>();
+        LocalDate today = LocalDate.now();
+        ArrayList<Map<String, Object>> monthEnergy = KsolarUtils.getMonthEnergy(today.minusDays(7).toString().substring(0, 7), today.minusDays(1).toString().substring(0, 7));
+        // 生成每天数据
+        for (int i = 7; i >= 1; i--) {//升序
+            LocalDate day = today.minusDays(i);
+            dates.add(day);
+            Map<String, Object> stringObjectMap = monthEnergy.stream().filter(e -> e.get("time").toString().contains(day.toString())).findFirst().orElse(null);
+            if(stringObjectMap!=null){
+                values.add(Double.valueOf(stringObjectMap.get("value").toString()));
+            }else {
+                values.add(0.0);
+            }
+        }
+        vo.setDates(dates);
+        vo.setValues(values);
+        return vo;
+    }
+
+    @Override
+    public ScreenTopVO top(List<Integer> siteIds) {
+        ScreenTopVO vo = new ScreenTopVO();
+
+        BigDecimal charge=new BigDecimal("0.00");
+        BigDecimal carCharge=new BigDecimal("0.00");
+        BigDecimal greenElectricity=new BigDecimal("0.00");
+        if (siteIds!=null && !siteIds.isEmpty()){
+            //获取充电量
+            R<BigDecimal> r = chargingOrderClient.getSumDegreeBySiteIds(Arrays.asList(25,26));
+            if (r.getCode()==200){
+                charge=r.getData();
+            }
+            //汽车放电量
+            R<BigDecimal> r1 = otherClient.getCarDisCharge();
+            if (r1.getCode()==200){
+                carCharge=r1.getData();
+            }
+
+
+            //累计绿电消纳电量
+            R<BigDecimal> r2 = otherClient.getGreenElectricity(siteIds);
+            if (r2.getCode()==200){
+                greenElectricity=r2.getData();
+            }
+
+        }
+        vo.setCarCharge(charge);
+        vo.setCarDisCharge(carCharge);
+        vo.setGreenElectricity(greenElectricity);
+
+        //计算储能充电量
+        String electricity = KsolarUtils.getElectricity();
+        vo.setStorageCharge(new BigDecimal( electricity.split("_")[0]));
+
+        vo.setPhotovoltaic(new BigDecimal(KsolarUtils.getAllEnergy(LocalDate.now().toString())));
+        vo.setGreenElectricity(vo.getPhotovoltaic().multiply(new BigDecimal("0.94")).setScale(2,  RoundingMode.HALF_UP));
+        vo.setStorageDisCharge(new BigDecimal(electricity.split("_")[1]));
+        return vo;
+    }
+
+    @Override
+    public void carportData(Integer parkingPlace, Integer remainPlace) {
+        otherClient.carportData(parkingPlace+"_"+remainPlace);
+    }
+
+    @Override
+    public HashMap<String, Object> getCarportData() {
+        R<HashMap<String, Object>> r = otherClient.getCarportData();
+        HashMap<String, Object> carportData = r.getData();
+        int count = Integer.valueOf(carportData.get("parkingPlace").toString()) - Integer.valueOf(carportData.get("remainPlace").toString());
+        carportData.put("useCarport",count);
+        return carportData;
+    }
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/KsolarUtils.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/KsolarUtils.java
new file mode 100644
index 0000000..9442d71
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/KsolarUtils.java
@@ -0,0 +1,235 @@
+package com.ruoyi.jianguan.util;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.*;
+
+
+/**
+ * 定时任务:储能放电情况 光伏发电情况
+ */
+@Service
+public class KsolarUtils {
+
+
+    private static String token;
+
+    private static String accessToken;
+
+
+    private static List<String> stationIds= Arrays.asList("2025060710462417","2025060711331323","2025060715425437","2025060716010425");
+
+
+    /**
+     * 获取今日总发电量
+     * @param time
+     * @return
+     */
+    public static Double getTodayEnergy(String time) {
+        try {
+            HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn");
+            get.header("Authorization", "Bearer "+token);
+            get.form("startDate", time);
+            HttpResponse execute = get.execute();
+            String body = execute.body();
+            JSONObject jsonObject = JSONObject.parseObject(body);
+            String code = jsonObject.get("code").toString();
+            if(!"200".equals(code)){
+                token = token();
+                return getTodayEnergy(time);
+            }
+            Object data  = jsonObject.get("data");
+            JSONObject jsonObject1 = JSONObject.parseObject(data.toString());
+            Double earn = jsonObject1.getDouble("dayGeneration");
+            return earn;
+        } catch (Exception e) {
+            e.printStackTrace();
+            token = token();
+            return getTodayEnergy(time);
+        }
+    }
+    public static ArrayList<Map<String, Object>> getMonthEnergy(String time,String time1) {
+        ArrayList<Map<String, Object>> list = new ArrayList<>();
+        try {
+            HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/user/statistic/elec/chart");
+            get.header("Authorization", "Bearer "+token);
+            get.form("stime", time);
+            get.form("attribId", "201");
+            HttpResponse execute = get.execute();
+            String body = execute.body();
+            if(body.contains("code")){
+                token = token();
+                return getMonthEnergy(time,time1);
+            }
+            JSONArray jsonArray = JSONArray.parseArray(body);
+            for (Object o1 : jsonArray) {
+                HashMap<String, Object> stringObjectHashMap = new HashMap<>();
+                JSONObject jsonObject = JSONObject.parseObject(o1.toString()) ;
+                stringObjectHashMap.put("time", jsonObject.getString("saveTime"));
+                stringObjectHashMap.put("value", jsonObject.getString("attribValue"));
+                list.add(stringObjectHashMap);
+            }
+            // 相同月份
+            if(!time.equals(time1)){
+                list.addAll(getMonthEnergy(time1,time1));
+            }
+
+            return list;
+        } catch (Exception e) {
+            e.printStackTrace();
+            token = token();
+            return getMonthEnergy(time,time1);
+        }
+    }
+
+
+
+    /**
+     * 光伏累计
+     * @return
+     */
+    public static Double getAllEnergy(String time) {
+        try {
+            HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn");
+            get.header("Authorization", "Bearer "+token);
+            get.form("startDate", time);
+            HttpResponse execute = get.execute();
+            String body = execute.body();
+            JSONObject jsonObject = JSONObject.parseObject(body);
+            String code = jsonObject.get("code").toString();
+            if(!"200".equals(code)){
+                token = token();
+                return getAllEnergy(time);
+            }
+            Object data  = jsonObject.get("data");
+            JSONObject jsonObject1 = JSONObject.parseObject(data.toString());
+            Double earn = jsonObject1.getDouble("totalGeneration");
+            return earn;
+        } catch (Exception e) {
+            e.printStackTrace();
+            token = token();
+            return getAllEnergy(time);
+        }
+    }
+
+
+    /**
+     * 光伏碳减排
+     * @return
+     */
+    public static BigDecimal getYearAllEnergy() {
+        Double yearAllEnergy = getYearAllEnergy(stationIds.get(0));
+        Double yearAllEnergy1 = getYearAllEnergy(stationIds.get(1));
+        Double yearAllEnergy2 = getYearAllEnergy(stationIds.get(2));
+        Double yearAllEnergy3 = getYearAllEnergy(stationIds.get(3));
+        double v = yearAllEnergy + yearAllEnergy1 + yearAllEnergy2 + yearAllEnergy3;
+        BigDecimal divide = new BigDecimal(v).multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"), 2, RoundingMode.DOWN);
+        return divide;
+    }
+
+
+
+    private static Double getYearAllEnergy(String stationId) {
+        try {
+            HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/station/statistic/elec/chart");
+            get.header("Authorization", "Bearer "+token);
+            get.form("stationId", stationId);
+            get.form("attribId", "202");
+            get.form("stime",LocalDate.now().getYear()+"" );
+            HttpResponse execute = get.execute();
+            String body = execute.body();
+            JSONArray jsonArray = JSONArray.parseArray(body);
+            Object o1 = jsonArray.get(0);
+            JSONObject jsonObject = JSONObject.parseObject(o1.toString());
+            String code = jsonObject.get("attribValue").toString();
+            Double earn = Double.valueOf(code);
+            return earn;
+        } catch (Exception e) {
+            e.printStackTrace();
+            token = token();
+            return getYearAllEnergy(stationId);
+        }
+    }
+
+
+
+    public static String token() {
+        HttpRequest post = HttpUtil.createPost("http://111.230.136.62:8092/authentication/form");
+        post.basicAuth("kstar","kstarSecret");
+        post.form("username", "环岛光伏");
+        post.form("password", "cR8GGwIXMI462A8Dfl9eXg==");
+        HttpResponse execute = post.execute();
+        String body = execute.body();
+        JSONObject jsonObject = JSONObject.parseObject(body);
+        String token = jsonObject.getString("token");
+        JSONObject jsonObject1 = JSONObject.parseObject(token);
+        String access_token = jsonObject1.getString("access_token");
+        return  access_token;
+    }
+
+
+    public static String getAccessToken(){
+        HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/getAccessToken.action?accessId=87bde117-1f29-4371-8d4d-82324d17ddc3");
+        HttpResponse execute = post.execute();
+        String body = execute.body();
+        JSONObject jsonObject = JSONObject.parseObject(body);
+        return jsonObject.getString("result");
+    }
+
+
+    /**
+     * 消纳数据
+     * @return
+     */
+    public static String getElectricity(){
+        String valueTotal = "0";
+        String value = "0";
+        HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/equipment/select.action");
+        post.form("token", accessToken);
+        post.form("keyCode", "869916072003947");
+        post.form("version", "V2");
+        HttpResponse execute = post.execute();
+        String body = execute.body();
+        JSONObject jsonObject = JSONObject.parseObject(body);
+        String string = jsonObject.get("statusCode").toString();
+        if(!string.equals("200")){
+           accessToken =  getAccessToken();
+           return getElectricity();
+
+        }
+        String string1 = jsonObject.getString("result");
+        JSONObject jsonObject1 = JSONObject.parseObject(string1);
+        String realInfo = jsonObject1.getString("childList");
+        JSONArray jsonArray = JSONArray.parseArray(realInfo);
+        for (Object o : jsonArray) {
+            JSONObject jsonObject2 = JSONObject.parseObject(o.toString());
+            String string2 = jsonObject2.get("valueList").toString();
+            JSONArray jsonArray1 = JSONArray.parseArray(string2);
+            for (Object o1 : jsonArray1) {
+                JSONObject jsonObject3 = JSONObject.parseObject(o1.toString());
+                if(jsonObject3.get("Name").toString().equals("系统累计充电量")){
+                    valueTotal=  jsonObject3.get("Value").toString();
+                }
+                if(jsonObject3.get("Name").toString().equals("系统累计放电量")){
+                    value=  jsonObject3.get("Value").toString();
+                }
+            }
+        }
+        return valueTotal+"_"+value;
+    }
+    public static void main(String[] args) throws Exception {
+        String electricity = getElectricity();
+        System.out.println(electricity);
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EmissionReductionVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EmissionReductionVO.java
new file mode 100644
index 0000000..8b42f76
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EmissionReductionVO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.jianguan.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EmissionReductionVO {
+    @ApiModelProperty("累计光伏发电二氧化碳减排量(吨)")
+    private BigDecimal photovoltaic = new BigDecimal("1.39");
+    @ApiModelProperty("累计光伏发电二氧化碳减排量(占比率)")
+    private BigDecimal photovoltaicRate ;
+
+    @ApiModelProperty("累计储能二氧化碳减排量(吨)")
+    private BigDecimal energyStorage ;
+    @ApiModelProperty("累计储能二氧化碳减排量(占比率)")
+    private BigDecimal energyStorageRate ;
+
+    @ApiModelProperty("累计充电二氧化碳减排量(吨)")
+    private BigDecimal charge;
+    @ApiModelProperty("累计充电二氧化碳减排量(占比率)")
+    private BigDecimal chargeRate ;
+
+    @ApiModelProperty("总计二氧化碳减排量(吨)")
+    private BigDecimal total ;
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EnergyStorageDischargeVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EnergyStorageDischargeVO.java
new file mode 100644
index 0000000..c255949
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/EnergyStorageDischargeVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.jianguan.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EnergyStorageDischargeVO {
+    @ApiModelProperty("储能配置")
+    private Integer config=115;
+    @ApiModelProperty("今日储能")
+    private BigDecimal todayStorage;
+    @ApiModelProperty("今日放能")
+    private BigDecimal todayDischarge;
+
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicAndConsumptionVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicAndConsumptionVO.java
new file mode 100644
index 0000000..ff22c2d
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicAndConsumptionVO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.jianguan.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PhotovoltaicAndConsumptionVO {
+    @ApiModelProperty("光伏面积")
+    private Integer area = 3593;
+    @ApiModelProperty("装机容量")
+    private BigDecimal capacity = new BigDecimal("759.52");
+    @ApiModelProperty("今日已发电")
+    private BigDecimal todayGenerateElectricity=new BigDecimal("0");
+
+    @ApiModelProperty("今日绿电消纳值")
+    private BigDecimal greenElectricityToday=new BigDecimal("0.00");
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicPowerGenerationVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicPowerGenerationVO.java
new file mode 100644
index 0000000..9f0340f
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/PhotovoltaicPowerGenerationVO.java
@@ -0,0 +1,15 @@
+package com.ruoyi.jianguan.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+@Data
+public class PhotovoltaicPowerGenerationVO {
+    @ApiModelProperty("日期")
+    private List<LocalDate> dates;
+    @ApiModelProperty("数据")
+    private List<Double> values;
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenStorageConfigVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenStorageConfigVO.java
new file mode 100644
index 0000000..93ae345
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenStorageConfigVO.java
@@ -0,0 +1,37 @@
+package com.ruoyi.jianguan.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class ScreenStorageConfigVO {
+    /**
+     * 系统建设日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate systemCreateTime;
+
+    /**
+     * 储能放电量 随机增长,每日不超过100度
+     */
+    private BigDecimal storageDisCharge;
+
+    /**
+     * 最后一次更改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate lastUpdated;
+
+    /**
+     * 储能放电情况 今日放能
+     */
+    private BigDecimal todayDischarge;
+
+    /**
+     * 储能放电情况 今日储能
+     */
+    private BigDecimal todayStorage;
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenTopVO.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenTopVO.java
new file mode 100644
index 0000000..c99f4c8
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/vo/ScreenTopVO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.jianguan.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ScreenTopVO {
+    @ApiModelProperty("汽车充电量")
+    private BigDecimal carCharge;
+    @ApiModelProperty("汽车放电量")
+    private BigDecimal carDisCharge;
+    @ApiModelProperty("光伏发电量")
+    private BigDecimal photovoltaic;
+    @ApiModelProperty("光伏用电量")
+    private BigDecimal greenElectricity;
+    @ApiModelProperty("储能充电量")
+    private BigDecimal storageCharge;
+    @ApiModelProperty("储能放电量")
+    private BigDecimal storageDisCharge;
+
+
+}
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/resources/mapper/jianguan/TScreenContentMapper.xml b/ruoyi-service/ruoyi-jianguan/src/main/resources/mapper/jianguan/TScreenContentMapper.xml
new file mode 100644
index 0000000..de64b9f
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/resources/mapper/jianguan/TScreenContentMapper.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jianguan.mapper.TScreenContentMapper">
+    <update id="carportData">
+        update t_screen_carport
+        set
+            parking_place = #{parkingPlace},
+            remain_place = #{remainPlace}
+        where
+            id =1
+    </update>
+
+    <select id="getCarDisCharge" resultType="java.math.BigDecimal">
+        select
+            sum(car_discharge)
+        FROM t_screen_content
+        WHERE
+             site_id in
+        <foreach item="item" index="index" collection="siteIds" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="getGreenElectricity" resultType="java.math.BigDecimal">
+        select
+        sum(green_electricity)
+        FROM t_screen_content
+        WHERE
+        site_id in
+        <foreach item="item" index="index" collection="siteIds" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="getCarportData" resultType="java.util.HashMap">
+        select
+            parking_place as parkingPlace,
+            remain_place as remainPlace
+        from
+            t_screen_carport where id =1
+    </select>
+</mapper>
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 9fce2fd..6c495ee 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
@@ -2396,9 +2396,12 @@
     /**
      * 充电桩数据大屏  获取站点集合中总的充电量
      */
+    @ResponseBody
     @GetMapping("/getSumDegreeBySiteIds")
     public R<BigDecimal> getSumDegreeBySiteIds(@RequestParam("siteIds") List<Integer> SiteIds){
-        return R.ok(chargingOrderService.getSumDegreeBySiteIds(SiteIds));
+        Double sumDegreeBySiteIds = chargingOrderService.getSumDegreeBySiteIds(SiteIds);
+
+        return R.ok(new BigDecimal(sumDegreeBySiteIds));
     }
 
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
index 806ec5a..9d44070 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
@@ -30,6 +30,7 @@
 import org.apache.poi.ss.usermodel.Workbook;
 import org.omg.CORBA.PRIVATE_MEMBER;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -59,7 +60,7 @@
     private TVipOrderService vipOrderService;
     @Resource
     private AppUserClient appUserClient;
-    @Resource
+    @Autowired
     private OtherClient otherClient;
     
     
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index 3d07126..057e170 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -147,7 +147,7 @@
 
     List<OrderCountByDate> countOrdersByDate(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime,@Param("gunIds")List<Integer> gunIds);
 
-	BigDecimal getSumDegreeBySiteIds(@Param("siteIds") List<Integer> siteIds);
+	Double getSumDegreeBySiteIds(@Param("siteIds") List<Integer> siteIds);
 	
 	
 	/**
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 4c467bc..801f023 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -329,7 +329,7 @@
 	 */
     R<StatisticsOfBatteryVO> getStatisticsOfBattery();
 
-	BigDecimal getSumDegreeBySiteIds(List<Integer> siteIds);
+	Double getSumDegreeBySiteIds(List<Integer> siteIds);
 	
 	/**
 	 * 获取启动失败且时间超过1小时的订单
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 2eb375b..3f98910 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
@@ -4324,9 +4324,10 @@
 	}
 	
 	@Override
-	public BigDecimal getSumDegreeBySiteIds(List<Integer> siteIds) {
-		
-		return this.baseMapper.getSumDegreeBySiteIds(siteIds);
+	public Double getSumDegreeBySiteIds(List<Integer> siteIds) {
+		Double sumDegreeBySiteIds = this.baseMapper.getSumDegreeBySiteIds(siteIds);
+
+		return sumDegreeBySiteIds;
 		
 	}
 	
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 1f434b9..c937271 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -1765,15 +1765,7 @@
         ORDER BY DATE(create_time, '%m/%d') ASC
     </select>
 
-    <select id="getSumDegreeBySiteIds" resultType="java.math.BigDecimal">
-        select sum(t2.charging_capacity) from t_charging_order  t1 left join  t_charging_order_summary_data t2
-                                      on t1.id =t2. charging_order_id where t1.del_flag=0
-        and t1.site_id in
-        <foreach item="item" index="index" collection="siteIds" open="(" separator="," close=")">
-            #{item}
-        </foreach>
 
-    </select>
     
     <select id="findFailedStartupOrder" resultType="com.ruoyi.order.api.model.TChargingOrder">
         SELECT
@@ -1826,4 +1818,17 @@
             FROM
                 t_charging_order_refund)
     </select>
+
+    <select id="getSumDegreeBySiteIds" resultType="java.lang.Double">
+        SELECT IFNULL(SUM(t2.charging_capacity), 0.0) AS sumDegreeBySiteIds
+        FROM t_charging_order t1
+                 LEFT JOIN t_charging_order_summary_data t2 ON t1.id = t2.charging_order_id
+        WHERE t1.del_flag = 0
+          <if test="siteIds != null and siteIds.size() > 0">
+            AND t1.site_id IN
+            <foreach collection="siteIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+          </if>
+     </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
index 2513b90..56faece 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
@@ -6,13 +6,20 @@
 import com.ruoyi.common.security.annotation.Logical;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.other.api.domain.Region;
+import com.ruoyi.other.api.domain.TSystemConfiguration;
+import com.ruoyi.other.mapper.TScreenContentMapper;
 import com.ruoyi.other.service.IRegionService;
+import com.ruoyi.other.service.TScreenContentService;
+import com.ruoyi.other.service.TSystemConfigurationService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -25,6 +32,12 @@
 	
 	@Resource
 	private IRegionService regionService;
+
+	@Resource
+	private TSystemConfigurationService tSystemConfigurationService;
+
+	@Resource
+	private TScreenContentMapper screenContentMapper;
 	
 	
 	
@@ -50,4 +63,43 @@
 		Region list = regionService.getOne(new LambdaQueryWrapper<Region>().eq(Region::getCode, code));
 		return R.ok(list);
 	}
+
+	@ResponseBody
+	@GetMapping("/getTSystemConfiguration")
+	public R<List<TSystemConfiguration>> getTSystemConfiguration(){
+		List<TSystemConfiguration> list = tSystemConfigurationService.list(new LambdaQueryWrapper<TSystemConfiguration>().in(TSystemConfiguration::getType, 4, 5));
+		return R.ok(list);
+	}
+
+
+	@GetMapping(value = "/getCarDisCharge")
+	@ResponseBody
+	public R<BigDecimal> getCarDisCharge(){
+		BigDecimal carDisCharge = screenContentMapper.getCarDisCharge(Arrays.asList(25,26));
+		return R.ok(carDisCharge);
+	}
+
+	@PostMapping(value = "/getGreenElectricity")
+	@ResponseBody
+	public R<BigDecimal> getGreenElectricity(@RequestBody List<Integer> siteIds){
+		BigDecimal greenElectricity = screenContentMapper.getGreenElectricity(siteIds);
+		return R.ok(greenElectricity);
+	}
+
+
+	@PostMapping(value = "/carportData")
+	@ResponseBody
+	public void carportData(String parkingPlace){
+		String[] split = parkingPlace.split("_");
+		Integer parkingPlace1 = Integer.parseInt(split[0]);
+		Integer remainPlace = Integer.parseInt(split[1]);
+		screenContentMapper.carportData(parkingPlace1,remainPlace);
+	}
+
+	@GetMapping(value = "/getCarportData")
+	@ResponseBody
+	public R<HashMap<String, Object>> getCarportData(){
+		HashMap<String, Object> carportData = screenContentMapper.getCarportData();
+		return R.ok(carportData);
+	}
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
index bee6136..4dfab3a 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
@@ -47,8 +47,6 @@
 
     @Resource
     private ChargingOrderClient chargingOrderClient;
-    @Resource
-    private TSystemConfigurationMapper systemConfigurationMapper;
 
     @Override
     public EmissionReductionVO emissionReduction(List<Integer> siteIds) {

--
Gitblit v1.7.1