New file |
| | |
| | | package com.ruoyi.jianguan.controller; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.ruoyi.chargingPile.api.vo.LargeScreenGunVo; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.jianguan.mongodb.service.UploadRealTimeMonitoringDataService; |
| | | import com.ruoyi.jianguan.vo.LargeChargingPowerVo; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.SneakyThrows; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Api(tags = "大屏") |
| | | @RestController |
| | | @RequestMapping("/large-screen") |
| | | public class LargeScreenController { |
| | | |
| | | private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | private final UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; |
| | | |
| | | public LargeScreenController(UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService) { |
| | | this.uploadRealTimeMonitoringDataService = uploadRealTimeMonitoringDataService; |
| | | } |
| | | |
| | | |
| | | @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); |
| | | } |
| | | |
| | | |
| | | |
| | | } |