update:下发数采
This commit is contained in:
@@ -88,9 +88,9 @@ public class SnowMachineController {
|
||||
*/
|
||||
@GetMapping("/")
|
||||
@Operation(summary = "获取所有造雪机设备列表")
|
||||
public HttpResponseData<List<SnowMachineDevice>> getAllSnowMachines() {
|
||||
public HttpResponseData<List<SnowMachineDevice>> getAllSnowMachines(@RequestParam(required = false) String keyword) {
|
||||
// 调用服务层获取所有设备
|
||||
List<SnowMachineDevice> result = snowMachineDeviceService.getAllSnowMachineDevices();
|
||||
List<SnowMachineDevice> result = snowMachineDeviceService.getAllSnowMachineDevices(keyword);
|
||||
return HttpResponseData.ok(result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.ski.lichuan.admin.controller.monitor;
|
||||
|
||||
import com.ski.lichuan.model.common.HttpResponseData;
|
||||
import com.ski.lichuan.model.dashboard.SnowMachineWorkingInfo;
|
||||
import com.ski.lichuan.model.device.Impl.SnowMachineDevice;
|
||||
import com.ski.lichuan.services.DeviceMonitorService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
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.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/monitor")
|
||||
@CrossOrigin(origins = "*") // 根据实际需要调整CORS策略
|
||||
@Tag(name = "设备监控", description = "设备监控信息展示")
|
||||
public class DeviceMonitorController {
|
||||
|
||||
@Autowired
|
||||
private DeviceMonitorService deviceMonitorService;
|
||||
|
||||
/**
|
||||
* 获取设备监控信息列表,支持按名称,雪道,优先级
|
||||
* @return 设备监控信息
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获取设备监控信息列表", description = "根据名称,雪道,运营线查询设备监控信息")
|
||||
public HttpResponseData<List<SnowMachineWorkingInfo>> getDeviceMonitorList(
|
||||
@RequestParam(required = false) String name,
|
||||
@RequestParam(required = false) Integer trailId,
|
||||
@RequestParam(required = false) Integer priority) {
|
||||
HttpResponseData<List<SnowMachineWorkingInfo>> responseData = new HttpResponseData<>();
|
||||
List<SnowMachineWorkingInfo> snowDevices = deviceMonitorService.getDeviceMonitorList(name, trailId, priority);
|
||||
|
||||
return responseData.success(snowDevices);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.ski.lichuan.admin.controller.monitor;
|
||||
|
||||
import com.ski.lichuan.common.exception.BusinessException;
|
||||
import com.ski.lichuan.model.common.DeviceEnum;
|
||||
import com.ski.lichuan.model.common.HttpResponseData;
|
||||
import com.ski.lichuan.model.dashboard.*;
|
||||
import com.ski.lichuan.model.device.Impl.SnowMachineDevice;
|
||||
import com.ski.lichuan.model.device.config.SnowMachineDeviceParams;
|
||||
import com.ski.lichuan.model.device.config.SnowMachineDevicePitchHorizontalParams;
|
||||
import com.ski.lichuan.services.DeviceDataPollingService;
|
||||
import com.ski.lichuan.services.SnowMachineDeviceService;
|
||||
import com.ski.lichuan.services.TrailPositionService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -28,6 +31,12 @@ public class SkiResortController {
|
||||
@Autowired
|
||||
private TrailPositionService trailPositionService;
|
||||
|
||||
@Autowired
|
||||
private SnowMachineDeviceService snowMachineDeviceService;
|
||||
|
||||
@Autowired
|
||||
private DeviceDataPollingService deviceDataPollingService;
|
||||
|
||||
@GetMapping("/")
|
||||
@Operation(summary = "首页-获取滑雪场雪道和造雪机关联信息")
|
||||
public HttpResponseData<List<List<TrailPosition>>> getDashboardInfo() {
|
||||
@@ -40,84 +49,27 @@ public class SkiResortController {
|
||||
@Operation(summary = "获取雪道坑位的详细信息(造雪机)")
|
||||
public HttpResponseData<TrailPositionInfo> getPositionInfo(Integer trailPositionId) {
|
||||
HttpResponseData<TrailPositionInfo> responseData = new HttpResponseData<>();
|
||||
TrailPositionInfo result = new TrailPositionInfo();
|
||||
|
||||
Integer trailId = trailPositionId / 10;
|
||||
Integer position = trailPositionId % 10;
|
||||
|
||||
// 雪机设备
|
||||
SnowMachineDevice snowMachineDevice = new SnowMachineDevice();
|
||||
snowMachineDevice.setLora("1234567890123456");
|
||||
snowMachineDevice.setId(1000000000 + trailPositionId);
|
||||
snowMachineDevice.setName("造雪机-" + trailPositionId);
|
||||
snowMachineDevice.setType(DeviceEnum.SNOW_MAKER.getValue());
|
||||
// 雪道位置信息
|
||||
TrailPosition trailPosition = new TrailPosition();
|
||||
trailPosition.setId(trailPositionId);
|
||||
trailPosition.setTrailId(trailId);
|
||||
trailPosition.setPosition(position);
|
||||
trailPosition.setName(trailId + "-" + position);
|
||||
trailPosition.setSnowMachineStatus(1);
|
||||
trailPosition.setSnowMachineId(snowMachineDevice.getId());
|
||||
// 雪道位置状态信息
|
||||
TrailPositionMonitorInfo trailPositionMonitorInfo = new TrailPositionMonitorInfo();
|
||||
trailPositionMonitorInfo.setTrailPosition(trailPosition);
|
||||
trailPositionMonitorInfo.setSnowMakerName(snowMachineDevice.getName());
|
||||
|
||||
trailPositionMonitorInfo.setPriority(1);
|
||||
trailPositionMonitorInfo.setEnvironmentTemperature(-3.5);
|
||||
trailPositionMonitorInfo.setEnvironmentHumidity(50.0);
|
||||
trailPositionMonitorInfo.setWetBulbTemperature(0.5);
|
||||
trailPositionMonitorInfo.setCommunicationStatus(true);
|
||||
trailPositionMonitorInfo.setIsNormal(true);
|
||||
trailPositionMonitorInfo.setIsRunning(true);
|
||||
trailPositionMonitorInfo.setTemperatureConditionSatisfied(true);
|
||||
trailPositionMonitorInfo.setWindSpeed(5.0);
|
||||
trailPositionMonitorInfo.setWindDirection(180.0);
|
||||
// 造雪机设备状态
|
||||
SnowMachineDeviceInfo snowMachineDeviceInfo = new SnowMachineDeviceInfo();
|
||||
snowMachineDeviceInfo.setSnowMachineDevice(snowMachineDevice);
|
||||
snowMachineDeviceInfo.setFrontWaterPressure(0.5 + Math.random() * 0.3); // 前端水压 0.5-0.8 MPa
|
||||
snowMachineDeviceInfo.setBackWaterPressure(0.4 + Math.random() * 0.2); // 后端水压 0.4-0.6 MPa
|
||||
snowMachineDeviceInfo.setPressure(0.8 + Math.random() * 0.2); // 气压 0.8-1.0 MPa
|
||||
snowMachineDeviceInfo.setTemperature(2.5 + Math.random() * 2.0); // 水温 2.5-4.5 ℃
|
||||
snowMachineDeviceInfo.setGivenAngle(45.0 + Math.random() * 10.0); // 给定开度 45-55°
|
||||
snowMachineDeviceInfo.setActualAngle(44.0 + Math.random() * 12.0); // 实际开度 44-56°
|
||||
snowMachineDeviceInfo.setIsNormal(Math.random() > 0.1); // 是否正常 90%概率正常
|
||||
snowMachineDeviceInfo.setMode((int)(Math.random() * 3) + 1); // 模式 1-3随机
|
||||
snowMachineDeviceInfo.setCompressorStatus((int)(Math.random() * 2) + 1); // 空压机状态 1-2随机
|
||||
snowMachineDeviceInfo.setFanStatus((int)(Math.random() * 2) + 1); // 风机状态 1-2随机
|
||||
snowMachineDeviceInfo.setHeatingRingStatus((int)(Math.random() * 2) + 1); // 加热环状态 1-2随机
|
||||
snowMachineDeviceInfo.setValveStatus((int)(Math.random() * 2) + 1); // 电磁阀状态1 1-2随机
|
||||
snowMachineDeviceInfo.setValveStatus2((int)(Math.random() * 2) + 1); // 电磁阀状态2 1-2随机
|
||||
snowMachineDeviceInfo.setValveStatus3((int)(Math.random() * 2) + 1); // 电磁阀状态3 1-2随机
|
||||
snowMachineDeviceInfo.setPitchMode((int)(Math.random() * 3) + 1); // 俯仰模式 1-3随机
|
||||
snowMachineDeviceInfo.setPitchAngle(15.0 + Math.random() * 20.0); // 俯仰角度 15-35°
|
||||
snowMachineDeviceInfo.setPitchStatus((int)(Math.random() * 2) + 1); // 俯仰状态 1-2随机
|
||||
snowMachineDeviceInfo.setYawMode((int)(Math.random() * 3) + 1); // 摆头模式 1-3随机
|
||||
snowMachineDeviceInfo.setYawAngle(30.0 + Math.random() * 40.0); // 摆头角度 30-70°
|
||||
snowMachineDeviceInfo.setYawStatus((int)(Math.random() * 2) + 1); // 摆头状态 1-2随机
|
||||
// 造雪机配置
|
||||
SnowMachineDeviceParams snowMakerDeviceParams = new SnowMachineDeviceParams();
|
||||
snowMakerDeviceParams.setWorkMode((int)(Math.random() * 3) + 1); // 工作模式 1-3随机
|
||||
snowMakerDeviceParams.setPriority((int)(Math.random() * 5) + 1); // 优先级 1-5随机
|
||||
snowMakerDeviceParams.setSnowQuality((int)(Math.random() * 5) + 1); // 雪质 1-5随机
|
||||
snowMakerDeviceParams.setStartTemperature(-5.0 + Math.random() * 10.0); // 启动温度 -5.0 ~ 5.0
|
||||
snowMakerDeviceParams.setStopTemperature(-5.0 + Math.random() * 10.0); // 停止温度 -5.0 ~ 5.0
|
||||
snowMakerDeviceParams.setFlowAdjustment((int)(Math.random() * 50)); // 流量调节 0 ~ 50
|
||||
|
||||
// 数据统计
|
||||
TrailPositionStatisticsInfo trailPositionStatisticsInfo = new TrailPositionStatisticsInfo();
|
||||
trailPositionStatisticsInfo.setRunningDuration(120.5 + Math.random() * 100.0); // 运行时长 120.5-220.5分钟
|
||||
trailPositionStatisticsInfo.setFlowStatistics(1000.0 + Math.random() * 500.0); // 流量统计 1000-1500 L/H
|
||||
trailPositionStatisticsInfo.setSnowArea(500.0 + Math.random() * 300.0); // 造雪面积 500-800 平方米
|
||||
|
||||
result.setTrailPositionMonitorInfo(trailPositionMonitorInfo);
|
||||
result.setSnowMakerInfo(snowMachineDeviceInfo);
|
||||
result.setSnowMakerDeviceParams(snowMakerDeviceParams);
|
||||
result.setTrailPositionStatisticsInfo(trailPositionStatisticsInfo);
|
||||
|
||||
return responseData.success(result);
|
||||
TrailPosition trailPosition = trailPositionService.getTrailPosition(trailPositionId);
|
||||
if (trailPosition == null) {
|
||||
throw new BusinessException("雪道坑位不存在");
|
||||
}
|
||||
if (trailPosition.getSnowMachineId() == null) {
|
||||
throw new BusinessException("雪道坑位未绑定造雪机");
|
||||
}
|
||||
SnowMachineDevice snowMachineDevice = snowMachineDeviceService.getSnowMachineDeviceById(trailPosition.getSnowMachineId());
|
||||
if (snowMachineDevice == null) {
|
||||
throw new BusinessException("造雪机不存在");
|
||||
}
|
||||
if (snowMachineDevice.getLora() == null) {
|
||||
throw new BusinessException("造雪机未绑定Lora");
|
||||
}
|
||||
TrailPositionInfo trailPositionInfo = deviceDataPollingService.getTrailPositionInfo(snowMachineDevice.getLora());
|
||||
if (trailPositionInfo == null) {
|
||||
throw new BusinessException("没有造雪机数据");
|
||||
}
|
||||
// 加入造雪机优先级列表
|
||||
deviceDataPollingService.updateSnowmakersDevicePriorityIds(trailPosition.getSnowMachineId());
|
||||
return responseData.success(trailPositionInfo);
|
||||
}
|
||||
|
||||
@PostMapping("/connectDevice")
|
||||
|
||||
Reference in New Issue
Block a user