From 49f98d682437c5d91fa07a72bdc3cb45c0600f82 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 19 六月 2025 09:57:19 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java | 189 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 189 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java new file mode 100644 index 0000000..3e6d890 --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java @@ -0,0 +1,189 @@ +package com.ruoyi.other.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.Logical; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.other.api.domain.TNotice; +import com.ruoyi.other.api.domain.TScreenContent; +import com.ruoyi.other.api.domain.TSystemConfiguration; +import com.ruoyi.other.api.dto.NoticeQueryDto; +import com.ruoyi.other.service.TNoticeService; +import com.ruoyi.other.service.TScreenContentService; +import com.ruoyi.other.service.TSystemConfigurationService; +import com.ruoyi.other.util.EnergyRefreshService; +import com.ruoyi.other.vo.*; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Arrays; +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; + @Resource + private EnergyRefreshService energyRefreshService; + @Resource + private TSystemConfigurationService systemConfigurationService; + + /** + * 顶部-累计电量 + */ + @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() { + //需调用接口 获取光伏发电量 + List<Integer> siteIds= Arrays.asList(25,26); + PhotovoltaicAndConsumptionVO vo = new PhotovoltaicAndConsumptionVO(); + List<TScreenContent> list = screenContentService.list(new LambdaQueryWrapper<TScreenContent>().in(TScreenContent::getSiteId, siteIds)); + if(list==null|| list.isEmpty()){ + return AjaxResult.success(vo); + } + vo.setGreenElectricityToday(list.get(0).getGreenElectricityToday()); + list.remove(0); + list.forEach(x->{ + vo.setGreenElectricityToday(vo.getGreenElectricityToday().add(x.getGreenElectricityToday())); + }); + + TSystemConfiguration sysConfig = systemConfigurationService.getOne(new LambdaQueryWrapper<TSystemConfiguration>() + .eq(TSystemConfiguration::getType,4)); + BigDecimal refreshValueOne = new BigDecimal(sysConfig.getContent()); + vo.setTodayGenerateElectricity(refreshValueOne); + vo.setGreenElectricityToday(refreshValueOne.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() { + //需调用接口 获取光伏发电量 + EnergyStorageDischargeVO vo = new EnergyStorageDischargeVO(); + //今日放能 10:00-11:59 每1分钟随机增值0.5-1,放满90停止;用第一次放能值为基数(85)开始累加,17:00-21:59 每1分钟随机增值0.5-1,放满90停止。 + vo.setTodayDischarge(energyRefreshService.getTodayDischarge()); + //今日储能 00:00-次日7:59 每1分钟随机增长0.5-1,储满115停止,12:00-16:59 每1分钟随机增长0.5-1,增加到115减第一次放能剩余值(如放能值为85,则放能剩余值为90-85)结束; + vo.setTodayStorage(energyRefreshService.getTodayStorage()); + 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); + } + + + /** + * 数据回显 站点id + */ + //todo 鉴权 + @RequiresPermissions(value = {"/publicAnnouncementManagement"}, logical = Logical.OR) + @ApiOperation(tags = {"后台-大屏内容设置-基础信息"},value = "查询") + @GetMapping(value = "/{siteId}") + public AjaxResult<TScreenContent> detail(@PathVariable("siteId") Integer siteId) { + TScreenContent one = screenContentService.getOne(new LambdaQueryWrapper<TScreenContent>().eq(TScreenContent::getSiteId, siteId)); + return AjaxResult.success(one); + } + + /** + * 新增修改 + */ + //todo 鉴权 + @RequiresPermissions(value = {"",""}, logical = Logical.OR) + @ApiOperation(tags = {"后台-大屏内容设置-基础信息"},value = "新增修改") + @PostMapping(value = "/saveOrUpdate") + @Log(title = "【大屏管理】新增修改内容", businessType = BusinessType.INSERT) + public AjaxResult saveOrUpdate(@RequestBody TScreenContent screenContent) { + screenContentService.saveOrUpdate(screenContent); + return AjaxResult.success(); + } +} -- Gitblit v1.7.1