package com.dy.pipIrrRemote.monitor; 
 | 
  
 | 
import com.dy.common.aop.SsoAop; 
 | 
import com.dy.common.mw.protocol.rtuState.RtuStatus; 
 | 
import com.dy.common.webUtil.BaseResponse; 
 | 
import com.dy.common.webUtil.BaseResponseUtils; 
 | 
import com.dy.common.webUtil.QueryResultVo; 
 | 
import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; 
 | 
import io.swagger.v3.oas.annotations.tags.Tag; 
 | 
import lombok.RequiredArgsConstructor; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.web.bind.annotation.GetMapping; 
 | 
import org.springframework.web.bind.annotation.RequestMapping; 
 | 
import org.springframework.web.bind.annotation.RestController; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2024/10/23 11:32 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Tag(name = "监测控制", description = "监测控制") 
 | 
@RestController 
 | 
@RequestMapping(path = "monitor") 
 | 
@RequiredArgsConstructor 
 | 
public class MonitorCtrl { 
 | 
    private final MonitorSv monitorSv; 
 | 
  
 | 
    /** 
 | 
     * 查询设备是否在线 
 | 
     * 
 | 
     * @param rtuAddr 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "isOnLine4Rtu") 
 | 
    @SsoAop() 
 | 
    public BaseResponse<Boolean> isOnLine4Rtu(String rtuAddr) { 
 | 
        try { 
 | 
            Boolean res = monitorSv.isOnLine4Rtu(rtuAddr); 
 | 
            if(res == null){ 
 | 
                res = false ; 
 | 
            } 
 | 
            return BaseResponseUtils.buildSuccess(res); 
 | 
        } catch (Exception e) { 
 | 
            log.error("命令执行异常", e); 
 | 
            return BaseResponseUtils.buildException(e.getMessage()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询设备是否在线 
 | 
     * 
 | 
     * @param fboxId 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "isOnLine4Mqtt") 
 | 
    @SsoAop() 
 | 
    public BaseResponse<Boolean> isOnLine4Mqtt(String fboxId) { 
 | 
        try { 
 | 
            Boolean res = monitorSv.isOnLine4Mqtt(fboxId); 
 | 
            if(res == null){ 
 | 
                res = false ; 
 | 
            } 
 | 
            return BaseResponseUtils.buildSuccess(res); 
 | 
        } catch (Exception e) { 
 | 
            log.error("命令执行异常", e); 
 | 
            return BaseResponseUtils.buildException(e.getMessage()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 获取取水口列表(在线和不在线) 
 | 
     * 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "all_intakes") 
 | 
    @SsoAop() 
 | 
    public BaseResponse<QueryResultVo<List<VoOnLineIntake>>> allIntakes(QueryVo qo) { 
 | 
        try { 
 | 
            QueryResultVo<List<VoOnLineIntake>> res = monitorSv.selectOnLineIntakes(qo); 
 | 
            return BaseResponseUtils.buildSuccess(res); 
 | 
        } catch (Exception e) { 
 | 
            log.error("命令执行异常", e); 
 | 
            return BaseResponseUtils.buildException(e.getMessage()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * RTU在通信中间件中的运行状态 
 | 
     * @param rtuAddr 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "rtuStatus") 
 | 
    @SsoAop() 
 | 
    public BaseResponse<RtuStatus> rtuStatus(String rtuAddr){ 
 | 
        try { 
 | 
            RtuStatus res = monitorSv.rtuStatus(rtuAddr); 
 | 
            if(res != null){ 
 | 
                return BaseResponseUtils.buildSuccess(res); 
 | 
            }else{ 
 | 
                return BaseResponseUtils.buildErrorMsg("后台系统出错,从通信中间件未得到查询结果"); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            log.error("命令执行异常", e); 
 | 
            return BaseResponseUtils.buildErrorMsg(e.getMessage()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |