package com.dy.pipIrrWechat.mqtt; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.voRm.VoManure; import com.dy.pipIrrGlobal.voRm.VoSoil; import com.dy.pipIrrGlobal.voRm.VoWeather; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Author: liurunyu * @Date: 2025/8/14 8:32 * @Description */ @Slf4j @Tag(name = "水肥、气象、墒情最新数据查询", description = "水肥、气象、墒情最新数据查询") @RestController @RequestMapping(path = "mqttLast") public class MqttLastCtrl { private MqttLastSv sv ; private MqttMonitorSv mmsv; private MqttSv msv; @Autowired public void setSv(MqttLastSv sv, MqttMonitorSv mmsv, MqttSv msv) { this.sv = sv; this.mmsv = mmsv; this.msv = msv; } /** * 根据指定条件查询最新记录 * @param manureId * @return */ @GetMapping(path = "oneManureLast") public BaseResponse oneManureLast(Long manureId){ try { if(manureId == null){ return BaseResponseUtils.buildFail("水肥机id不能为空") ; } VoManure vo = sv.oneManureLast(manureId) ; String fboxId = msv.oneManureFBoxId(manureId); Boolean onLine = mmsv.isOnLine4Mqtt(fboxId); VoManureLast voLast = new VoManureLast() ; voLast.fromVo(vo); voLast.setOnLine(onLine); return BaseResponseUtils.buildSuccess(voLast); } catch (Exception e) { return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据指定条件查询最新记录 * @param soilId * @return */ @GetMapping(path = "oneSoilLast") public BaseResponse oneSoilLast(Long soilId){ try { if(soilId == null){ return BaseResponseUtils.buildFail("墒情站id不能为空") ; } VoSoil vo = sv.oneSoilLast(soilId) ; String fboxId = msv.oneSoilFBoxId(soilId); Boolean onLine = mmsv.isOnLine4Mqtt(fboxId); VoSoilLast voLast = new VoSoilLast() ; voLast.fromVo(vo); voLast.setOnLine(onLine); return BaseResponseUtils.buildSuccess(voLast); } catch (Exception e) { return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据指定条件查询最新记录 * @param weatherId * @return */ @GetMapping(path = "oneWeatherLast") public BaseResponse oneWeatherLast(Long weatherId){ try { if(weatherId == null){ return BaseResponseUtils.buildFail("气象站id不能为空") ; } VoWeather vo = sv.oneWeatherLast(weatherId); String fboxId = msv.oneWeatherFBoxId(weatherId); Boolean onLine = mmsv.isOnLine4Mqtt(fboxId); VoWeatherLast voLast = new VoWeatherLast() ; voLast.fromVo(vo); voLast.setOnLine(onLine); return BaseResponseUtils.buildSuccess(voLast); } catch (Exception e) { return BaseResponseUtils.buildException(e.getMessage()) ; } } }