package com.doumee.cloud.board; import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.dao.web.response.platformReport.*; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/10/28 13:42 */ @Api(tags = "能耗看板") @RestController @Slf4j @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/energy") public class EnergyController extends BaseController { @LoginNoRequired @ApiOperation("中心数据") @GetMapping("/centerData") public ApiResponse centerData() { EnergyBoardVO data = new EnergyBoardVO(); Random random = new Random(); data.setSmokeBoxTotal(random.nextInt(20000)); data.setCarbon(new BigDecimal(random.nextInt(1000))); data.setElectricityQuantity(random.nextInt(1000)); data.setElectricityYear(new BigDecimal(random.nextInt(10))); data.setElectricityMonth(new BigDecimal(random.nextInt(10))); data.setWaterQuantity(new BigDecimal(random.nextInt(1000))); data.setWaterYear(new BigDecimal(random.nextInt(10))); data.setWaterMonth(new BigDecimal(random.nextInt(10))); data.setGasQuantity(new BigDecimal(random.nextInt(1000))); data.setGasYear(new BigDecimal(random.nextInt(10))); data.setGasMonth(new BigDecimal(random.nextInt(10))); data.setOfficeQuantity(random.nextInt(20)); data.setPowerQuantity(random.nextInt(20)); data.setWorkHouseQuantity(random.nextInt(20)); data.setParkQuantity(random.nextInt(20)); data.setTodayElectricity(random.nextInt(20)); data.setMonthElectricity(random.nextInt(20)); data.setYesterdayElectricity(random.nextInt(20)); return ApiResponse.success(data); } @LoginNoRequired @ApiOperation("实时负荷曲线") @GetMapping("/loadCurve") public ApiResponse> loadCurve() { List loadCurveList = new ArrayList<>(); Random random = new Random(); for (int i = 1; i <= 23; i++) { EnergyDataVO data = new EnergyDataVO(); data.setTimeData(StringUtils.leftPad(i+"",2,"0") +":00"); data.setEnergy(new BigDecimal(random.nextInt(200))); loadCurveList.add(data); } return ApiResponse.success(loadCurveList); } @LoginNoRequired @ApiOperation("月能耗、油耗分析") @GetMapping("/energyDataList") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "查询类型:0=水;1=气;2=电;3=油耗", required = true), }) public ApiResponse> energyDataList(@RequestParam Integer type) { List energyDataVOList = new ArrayList<>(); Random random = new Random(); for (int i = 1; i <= 12; i++) { EnergyDataVO data = new EnergyDataVO(); data.setTimeData(i +"月"); data.setEnergy(new BigDecimal(random.nextInt(200))); energyDataVOList.add(data); } return ApiResponse.success(energyDataVOList); } @LoginNoRequired @ApiOperation("上月油耗排行") @GetMapping("/lastMonthOil") public ApiResponse> lastMonthOil() { List oilDataVOList = new ArrayList<>(); Random random = new Random(); BigDecimal maxOil = BigDecimal.ZERO; BigDecimal lastOil = BigDecimal.ZERO; for (int i = 1; i <= 7; i++) { OilDataVO oilDataVO = new OilDataVO(); oilDataVO.setCarNo("皖A8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9)); if(i==1){ oilDataVO.setQuantity(new BigDecimal(random.nextInt(100))); maxOil = oilDataVO.getQuantity(); }else{ oilDataVO.setQuantity(new BigDecimal(random.nextInt(lastOil.intValue()))); } lastOil = oilDataVO.getQuantity(); oilDataVO.setMaxOil(maxOil); oilDataVOList.add(oilDataVO); } return ApiResponse.success(oilDataVOList); } }