package com.dy.pipIrrStatistics.largeScreen; import com.dy.common.aop.SsoAop; import com.dy.common.util.DateTime; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.voLargeScreen.VoBaseInfo; import com.dy.pipIrrGlobal.voLargeScreen.VoCurrentInfo; import com.dy.pipIrrGlobal.voLargeScreen.VoMonitorInfo; import com.dy.pipIrrGlobal.voSpecial.VoTopXClient; import com.dy.pipIrrGlobal.voSpecial.VoTopXIntake; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Date; import java.util.List; /** * @Author: liurunyu * @Date: 2025/2/6 10:32 * @Description */ @Slf4j @Tag(name = "大屏展示", description = "大屏展示---统计信息") @RestController @RequestMapping(path = "ls4Statistics") @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") public class Ls4StatisticsCtrl { private Ls4StatisticsSv sv; @Autowired private void setSv(Ls4StatisticsSv sv) { this.sv = sv; } /** * 大屏展示---基本信息 * @return 基本信息 */ @Operation(summary = "大屏展示", description = "基本信息") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "基本信息(BaseResponse.content:VoBaseInfo{})", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoBaseInfo.class))} ) }) @GetMapping(path = "baseInfo") @SsoAop() public BaseResponse baseInfo() { VoBaseInfo res = this.sv.baseInfo(); return BaseResponseUtils.buildSuccess(res); } /** * 大屏展示---基本信息 * @return 基本信息 */ @Operation(summary = "大屏展示", description = "基本信息") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "基本信息(BaseResponse.content:VoBaseInfo{})", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoBaseInfo.class))} ) }) @GetMapping(path = "basicInfo") @SsoAop() public BaseResponse basicInfo() { VoBaseInfo res = this.sv.baseInfo(); return BaseResponseUtils.buildSuccess(res); } /** * 大屏展示---当前信息 * @return 当前信息 */ @Operation(summary = "大屏展示", description = "当前信息") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "基本信息(BaseResponse.content:VoCurrentInfo{})", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCurrentInfo.class))} ) }) @GetMapping(path = "currentInfo") @SsoAop() public BaseResponse currentInfo() throws Exception { VoCurrentInfo res = this.sv.currentInfo(); return BaseResponseUtils.buildSuccess(res); } /** * 大屏展示---监测信息 * @return 监测信息 * @param fromDt 开始日期(格式 yyyy-mm-dd) */ @Operation(summary = "大屏展示", description = "监测信息") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "基本信息(BaseResponse.content:VoMonitorInfo{})", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoMonitorInfo.class))} ) }) @GetMapping(path = "monitorInfo") @SsoAop() public BaseResponse monitorInfo(String fromDt) throws Exception { if(fromDt == null || fromDt.trim().equals("")){ return BaseResponseUtils.buildException("开始日期不能为空"); } Date startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(fromDt + " 00:00:00"); VoMonitorInfo res = this.sv.monitorInfo(startDt); return BaseResponseUtils.buildSuccess(res); } /** * 昨日农户用水前5名 * @return 数据集合 */ @Operation(summary = "昨日农户用水前5名", description = "昨日农户用水前5名统计") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "昨日农户用水前5名统计(BaseResponse.content:[VoTopXClient{}])", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoTopXClient.class))} ) }) @GetMapping(path = "top5ClientYesterday") @SsoAop() public BaseResponse> top5ClientYesterday(){ List res = this.sv.top5ClientYesterday(); return BaseResponseUtils.buildSuccess(res); } /** * 昨日取水口用水前5名 * @return 数据集合 */ @Operation(summary = "昨日取水口用水前5名", description = "昨日取水口用水前5名统计") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "昨日取水口用水前5名统计(BaseResponse.content:[VoTopXIntake{}])", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoTopXIntake.class))} ) }) @GetMapping(path = "top5IntakeYesterday") @SsoAop() public BaseResponse> top5IntakeYesterday(){ List res = this.sv.top5IntakeYesterday(); return BaseResponseUtils.buildSuccess(res); } }