|  |  | 
 |  |  |  | 
 |  |  | import com.doumee.api.BaseController; | 
 |  |  | import com.doumee.config.annotation.LoginNoRequired; | 
 |  |  | import com.doumee.core.model.ApiResponse; | 
 |  |  | import com.doumee.core.haikang.model.param.respose.RegionDataRankingDataResponse; | 
 |  |  | import com.doumee.core.haikang.model.param.respose.RegionEnergyListResponse; | 
 |  |  | import com.doumee.service.business.third.model.ApiResponse; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.dao.web.response.platformReport.*; | 
 |  |  | import com.doumee.service.business.third.BoardService; | 
 |  |  | 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 org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Random; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * Created by IntelliJ IDEA. | 
 |  |  | 
 |  |  |  * @create 2024/10/28 13:42 | 
 |  |  |  */ | 
 |  |  |  | 
 |  |  | @Api(tags = "能耗看板") | 
 |  |  | @Api(tags = "【看板大屏】能耗看板") | 
 |  |  | @RestController | 
 |  |  | @Slf4j | 
 |  |  | @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/energy") | 
 |  |  | public class EnergyController extends BaseController { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private BoardService boardService; | 
 |  |  |  | 
 |  |  |     @LoginNoRequired | 
 |  |  |     @ApiOperation("中心数据") | 
 |  |  |     @GetMapping("/centerData") | 
 |  |  |     public ApiResponse<EnergyBoardVO> 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)); | 
 |  |  |         EnergyBoardVO data =boardService.centerEnergyData(); | 
 |  |  |         return ApiResponse.success(data); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @LoginNoRequired | 
 |  |  |     @ApiOperation("中心用电能耗数据") | 
 |  |  |     @GetMapping("/regionDataRanking") | 
 |  |  |     @ApiImplicitParams({ | 
 |  |  |             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "查询类型:1=今日;2=本月;3=昨日", required = true), | 
 |  |  |     }) | 
 |  |  |     public ApiResponse<List<RegionDataRankingDataResponse>> regionDataRanking(@RequestParam Integer type) { | 
 |  |  |         return ApiResponse.success(boardService.getRegionDataRanking(type)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @LoginNoRequired | 
 |  |  |     @ApiOperation("用电总能耗同比、环比和区域用电量集合") | 
 |  |  |     @GetMapping("/energyRegionData") | 
 |  |  |     public ApiResponse< RegionEnergyListResponse> energyRegionData() { | 
 |  |  |          RegionEnergyListResponse  data=boardService.energyRegionData(); | 
 |  |  |         return ApiResponse.success(data); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @LoginNoRequired | 
 |  |  |     @ApiOperation("实时负荷曲线") | 
 |  |  |     @GetMapping("/loadCurve") | 
 |  |  |     public ApiResponse<List<EnergyDataVO>> loadCurve() { | 
 |  |  |         List<EnergyDataVO> 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); | 
 |  |  |         } | 
 |  |  |         List<EnergyDataVO> loadCurveList =boardService.loadEnergyCurve(); | 
 |  |  |         return ApiResponse.success(loadCurveList); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     @ApiOperation("月能耗、油耗分析") | 
 |  |  |     @GetMapping("/energyDataList") | 
 |  |  |     @ApiImplicitParams({ | 
 |  |  |             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "查询类型:0=水;1=气;2=电;3=油耗", required = true), | 
 |  |  |             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "查询类型:0=水;1=气;2=油耗;3=用电", required = true), | 
 |  |  |     }) | 
 |  |  |     public ApiResponse<List<EnergyDataVO>> energyDataList(@RequestParam Integer type) { | 
 |  |  |         List<EnergyDataVO> 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); | 
 |  |  |         } | 
 |  |  |         List<EnergyDataVO> energyDataVOList = boardService.energyDataList(type); | 
 |  |  |         return ApiResponse.success(energyDataVOList); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     @ApiOperation("上月油耗排行") | 
 |  |  |     @GetMapping("/lastMonthOil") | 
 |  |  |     public ApiResponse<List<OilDataVO>> lastMonthOil() { | 
 |  |  |         List<OilDataVO> 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); | 
 |  |  |         } | 
 |  |  |         List<OilDataVO> oilDataVOList = boardService.energyLastMonthOilSort(); | 
 |  |  |         return ApiResponse.success(oilDataVOList); | 
 |  |  |     } | 
 |  |  | } |