liurunyu
2025-08-21 5715d16c6fc4842191c802adb2e3b94d19f44f17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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<VoManureLast> 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<VoSoil> 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<VoWeather> 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()) ;
        }
    }
 
}