change - 添加小程序接口:查询集中器信息列表、根据objid查询集中器信息详情、根据集中器编号查询测控点及实时数据

master
yinq 1 week ago
parent 99ee4bb432
commit 2d774de828

@ -0,0 +1,124 @@
package com.ruoyi.web.controller.api;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.T_CollectDeviceInfo;
import com.ruoyi.system.domain.T_Monitor;
import com.ruoyi.system.domain.dto.MonitorRealtimeDataDTO;
import com.ruoyi.system.service.IT_CollectDeviceInfoService;
import com.ruoyi.system.service.IT_MonitorService;
import com.ruoyi.system.service.IMonitorRealtimeDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* APIController
*
* @author yinq
*/
@Api("小程序接口")
@RestController
@RequestMapping("/miniProgramApi")
public class MiniProgramApiController extends BaseController {
@Autowired
private IT_CollectDeviceInfoService t_CollectDeviceInfoService;
@Autowired
private IT_MonitorService t_MonitorService;
@Autowired
private IMonitorRealtimeDataService monitorRealtimeDataService;
/**
*
*/
@ApiOperation("查询集中器信息列表")
@PostMapping("/collectDevice/list")
@ResponseBody
public AjaxResult getCollectDeviceList(@RequestBody(required = false) T_CollectDeviceInfo t_CollectDeviceInfo)
{
if (t_CollectDeviceInfo == null) {
t_CollectDeviceInfo = new T_CollectDeviceInfo();
}
List<T_CollectDeviceInfo> list = t_CollectDeviceInfoService.selectT_CollectDeviceInfoList(t_CollectDeviceInfo);
return AjaxResult.success(list);
}
/**
* ID
*/
@ApiOperation("根据ID查询集中器信息详情")
@GetMapping("/collectDevice/{objid}")
@ResponseBody
public AjaxResult getCollectDeviceById(@ApiParam("集中器ID") @PathVariable Long objid)
{
T_CollectDeviceInfo t_CollectDeviceInfo = t_CollectDeviceInfoService.selectT_CollectDeviceInfoById(objid);
if (t_CollectDeviceInfo == null) {
return AjaxResult.error("集中器信息不存在");
}
return AjaxResult.success(t_CollectDeviceInfo);
}
/**
*
*/
@ApiOperation("查询测控点信息列表")
@PostMapping("/monitor/list")
@ResponseBody
public AjaxResult getMonitorList(@RequestBody(required = false) T_Monitor t_Monitor)
{
if (t_Monitor == null) {
t_Monitor = new T_Monitor();
}
List<T_Monitor> list = t_MonitorService.selectT_MonitorList(t_Monitor);
return AjaxResult.success(list);
}
/**
* ID
*/
@ApiOperation("根据ID查询测控点信息详情")
@GetMapping("/monitor/{objid}")
@ResponseBody
public AjaxResult getMonitorById(@ApiParam("测控点ID") @PathVariable Integer objid)
{
T_Monitor t_Monitor = t_MonitorService.selectT_MonitorById(objid);
if (t_Monitor == null) {
return AjaxResult.error("测控点信息不存在");
}
return AjaxResult.success(t_Monitor);
}
/**
*
*/
@ApiOperation("根据集中器编号查询测控点列表")
@GetMapping("/monitor/collectDevice/{collectDeviceId}")
@ResponseBody
public AjaxResult getMonitorByCollectDeviceId(@ApiParam("集中器编号") @PathVariable String collectDeviceId)
{
T_Monitor t_Monitor = new T_Monitor();
t_Monitor.setCollectDeviceId(collectDeviceId);
List<T_Monitor> list = t_MonitorService.selectT_MonitorList(t_Monitor);
return AjaxResult.success(list);
}
/**
*
* 16-20-30-
*/
@ApiOperation("根据集中器编号查询测控点及实时数据")
@GetMapping("/monitor/realtimeData/{collectDeviceId}")
@ResponseBody
public AjaxResult getMonitorRealtimeDataByCollectDeviceId(@ApiParam("集中器编号") @PathVariable String collectDeviceId)
{
List<MonitorRealtimeDataDTO> list = monitorRealtimeDataService.selectMonitorRealtimeDataByCollectDeviceId(collectDeviceId);
return AjaxResult.success(list);
}
}

@ -0,0 +1,72 @@
package com.ruoyi.system.domain.dto;
import com.ruoyi.system.domain.T_Monitor;
import com.ruoyi.system.domain.T_W_Temperturedata;
import com.ruoyi.system.domain.TVibrationsensorData;
import com.ruoyi.system.domain.TArraytemperaturedata;
import java.util.List;
/**
* DTO
*
* @author yinq
* @date 2024
*/
public class MonitorRealtimeDataDTO {
/** 测控点信息 */
private T_Monitor monitor;
/** 能源类型ID */
private Integer energyTypeId;
/** 物联网环境实时数据能源类型16 */
private T_W_Temperturedata iotEnvironmentData;
/** 振动实时数据能源类型20 */
private TVibrationsensorData vibrationData;
/** 温度阵列实时数据能源类型30 */
private List<TArraytemperaturedata> arrayTemperatureData;
public T_Monitor getMonitor() {
return monitor;
}
public void setMonitor(T_Monitor monitor) {
this.monitor = monitor;
}
public Integer getEnergyTypeId() {
return energyTypeId;
}
public void setEnergyTypeId(Integer energyTypeId) {
this.energyTypeId = energyTypeId;
}
public T_W_Temperturedata getIotEnvironmentData() {
return iotEnvironmentData;
}
public void setIotEnvironmentData(T_W_Temperturedata iotEnvironmentData) {
this.iotEnvironmentData = iotEnvironmentData;
}
public TVibrationsensorData getVibrationData() {
return vibrationData;
}
public void setVibrationData(TVibrationsensorData vibrationData) {
this.vibrationData = vibrationData;
}
public List<TArraytemperaturedata> getArrayTemperatureData() {
return arrayTemperatureData;
}
public void setArrayTemperatureData(List<TArraytemperaturedata> arrayTemperatureData) {
this.arrayTemperatureData = arrayTemperatureData;
}
}

@ -0,0 +1,23 @@
package com.ruoyi.system.service;
import com.ruoyi.system.domain.dto.MonitorRealtimeDataDTO;
import java.util.List;
/**
* Service
*
* @author yinq
* @date 2024
*/
public interface IMonitorRealtimeDataService {
/**
*
* 16-20-30-
*
* @param collectDeviceId
* @return
*/
List<MonitorRealtimeDataDTO> selectMonitorRealtimeDataByCollectDeviceId(String collectDeviceId);
}

@ -0,0 +1,102 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.T_Monitor;
import com.ruoyi.system.domain.T_W_Temperturedata;
import com.ruoyi.system.domain.TVibrationsensorData;
import com.ruoyi.system.domain.TArraytemperaturedata;
import com.ruoyi.system.domain.dto.MonitorRealtimeDataDTO;
import com.ruoyi.system.service.IMonitorRealtimeDataService;
import com.ruoyi.system.service.IT_MonitorService;
import com.ruoyi.system.service.IT_W_TemperturedataService;
import com.ruoyi.system.service.ITVibrationsensorDataService;
import com.ruoyi.system.service.ITArraytemperaturedataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Service
*
* @author yinq
* @date 2024
*/
@Service
public class MonitorRealtimeDataServiceImpl implements IMonitorRealtimeDataService {
@Autowired
private IT_MonitorService t_MonitorService;
@Autowired
private IT_W_TemperturedataService t_W_TemperturedataService;
@Autowired
private ITVibrationsensorDataService tVibrationsensorDataService;
@Autowired
private ITArraytemperaturedataService tArraytemperaturedataService;
/**
*
* 16-20-30-
*
* @param collectDeviceId
* @return
*/
@Override
public List<MonitorRealtimeDataDTO> selectMonitorRealtimeDataByCollectDeviceId(String collectDeviceId) {
List<MonitorRealtimeDataDTO> resultList = new ArrayList<>();
// 1. 根据集中器编号查询测控点列表
T_Monitor queryMonitor = new T_Monitor();
queryMonitor.setCollectDeviceId(collectDeviceId);
List<T_Monitor> monitorList = t_MonitorService.selectT_MonitorList(queryMonitor);
// 2. 遍历测控点,根据能源类型查询对应的实时数据
for (T_Monitor monitor : monitorList) {
MonitorRealtimeDataDTO dto = new MonitorRealtimeDataDTO();
dto.setMonitor(monitor);
// 获取集中器的能源类型
Integer energyTypeId = monitor.getMonitorType();
dto.setEnergyTypeId(energyTypeId);
// 根据能源类型查询对应的实时数据
if (energyTypeId != null) {
switch (energyTypeId) {
case 16: // 物联网环境
T_W_Temperturedata iotQuery = new T_W_Temperturedata();
iotQuery.setMonitorId(monitor.getMonitorId());
T_W_Temperturedata iotData = t_W_TemperturedataService.selectTopOneData(iotQuery);
dto.setIotEnvironmentData(iotData);
break;
case 20: // 振动
TVibrationsensorData vibrationQuery = new TVibrationsensorData();
vibrationQuery.setSensorId(monitor.getMonitorId());
List<TVibrationsensorData> vibrationList = tVibrationsensorDataService.selectRealTimeMonitor(vibrationQuery);
if (vibrationList != null && !vibrationList.isEmpty()) {
dto.setVibrationData(vibrationList.get(0));
}
break;
case 30: // 温度阵列
TArraytemperaturedata arrayQuery = new TArraytemperaturedata();
arrayQuery.setMonitorId(monitor.getMonitorId());
List<TArraytemperaturedata> arrayDataList = tArraytemperaturedataService.selectNewDataStreak(arrayQuery);
dto.setArrayTemperatureData(arrayDataList);
break;
default:
// 其他能源类型暂不处理
break;
}
}
resultList.add(dto);
}
return resultList;
}
}

@ -69,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pMonitorid != null "> and (p_monitorId = #{pMonitorid} OR monitorId = #{pMonitorid})</if>
<if test="monitorType != null "> and monitorType = #{monitorType}</if>
<if test="isKeyMonitor != null "> and isKeyMonitor = #{isKeyMonitor}</if>
<if test="collectDeviceId != null "> and collectDeviceId = #{collectDeviceId}</if>
<if test="monitorStatus != null "> and monitorStatus = #{monitorStatus}</if>
<if test="monitorName != null "> and monitorName = #{monitorName}</if>
<if test="typeFlag != null and typeFlag == 100">

Loading…
Cancel
Save