فهرست منبع

feat:新增获取房间信息接口

lwb 3 ماه پیش
والد
کامیت
a0d18fa3cc

+ 13 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/hmi/controller/HmiController.java

@@ -4,7 +4,10 @@ import io.swagger.v3.oas.annotations.Operation;
 import jakarta.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.hmi.entity.RoomInfo;
 import vip.xiaonuo.coldchain.modular.hmi.entity.RoomMonitor;
 import vip.xiaonuo.coldchain.modular.hmi.service.HmiService;
 import vip.xiaonuo.coldchain.modular.targetroom.service.TargetRoomService;
@@ -22,4 +25,14 @@ public class HmiController {
     public CommonResult<List<RoomMonitor>> roomMonitor(String floor, String createOrg) {
         return CommonResult.data(hmiService.getListByFloor(floor,createOrg));
     }
+    @Operation(summary = "获取房间详情")
+    @GetMapping("/coldchain/hmi/getInfoByRoom")
+    public CommonResult<SensorData> getInfoByRoom(String tId) {
+        return CommonResult.data(hmiService.getInfoByRoom(tId));
+    }
+    @Operation(summary = "获取房间信息")
+    @GetMapping("/coldchain/hmi/getRoomInfoById")
+    public CommonResult<RoomInfo> getRoomInfoById(@RequestParam String tId) {
+        return CommonResult.data(hmiService.getRoomInfoById(tId));
+    }
 }

+ 22 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/hmi/entity/RoomInfo.java

@@ -0,0 +1,22 @@
+package vip.xiaonuo.coldchain.modular.hmi.entity;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class RoomInfo {
+    @Schema(description = "大气压")
+    private String atm;
+    @Schema(description = "CH2O")
+    private String ch2o;
+    @Schema(description = "光照度")
+    private String lux;
+    @Schema(description = "TVOC")
+    private String tvoc;
+    @Schema(description = "CO2")
+    private String co2;
+    @Schema(description = "PM")
+    private String PM;
+}

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/hmi/entity/RoomMonitor.java

@@ -23,6 +23,9 @@ public class RoomMonitor {
     /** 设备名称 */
     @Schema(description = "设备名称")
     private String monitorName;
+    /** 设备id */
+    @Schema(description = "设备id")
+    private String tId;
     /** 探头编号 */
     @Schema(description = "探头编号")
     @JsonIgnore

+ 11 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/hmi/service/HmiService.java

@@ -1,6 +1,8 @@
 package vip.xiaonuo.coldchain.modular.hmi.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.hmi.entity.RoomInfo;
 import vip.xiaonuo.coldchain.modular.hmi.entity.RoomMonitor;
 import vip.xiaonuo.coldchain.modular.targetroom.entity.TargetRoom;
 
@@ -11,4 +13,13 @@ public interface HmiService {
      * 根据楼层获取房间列表
      */
     List<RoomMonitor> getListByFloor(String floor, String createOrg);
+    /**
+     * 根据房间获取设备信息
+     */
+    SensorData getInfoByRoom(String tId);
+    /**
+     * 根据房间获取设备信息
+     */
+    RoomInfo getRoomInfoById(String tId);
+
 }

+ 44 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/hmi/service/impl/HmiServiceImpl.java

@@ -5,9 +5,12 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.hmi.entity.RoomInfo;
 import vip.xiaonuo.coldchain.modular.hmi.entity.RoomMonitor;
 import vip.xiaonuo.coldchain.modular.hmi.service.HmiService;
+import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
 import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
+import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
 import vip.xiaonuo.coldchain.modular.targetroom.mapper.TargetRoomMapper;
 
 import java.util.List;
@@ -75,4 +78,45 @@ public class HmiServiceImpl implements HmiService {
         return list;
     }
 
+    @Override
+    public SensorData getInfoByRoom(String tId) {
+        RoomMonitor roomMonitor = targetRoomMapper.getById(tId);
+        SensorData sensorData = null;
+        if (roomMonitor!=null){
+            SensorData sensorData1 = monitorDeviceService.queryLatestDataByDeviceIdAndRoads(roomMonitor.getSensorCode(),roomMonitor.getSensorRoute());
+            if (sensorData1!=null){
+                sensorData = sensorData1;
+            }
+        }
+        return sensorData;
+    }
+
+    @Override
+    public RoomInfo getRoomInfoById(String tId) {
+        RoomInfo roomInfo = new RoomInfo();
+        //随机值
+        float ch2oMin = 0.10f;
+        float ch2oMax = 1.00f;
+        int luxMin = 100;
+        int luxMax = 999;
+        int tvocMin = 10;
+        int tvocMax = 99;
+        int co2Min = 0;
+        int co2Max = 99;
+        int pmMin = 0;
+        int pmMax = 99;
+        float ch2o = ch2oMin + (ch2oMax - ch2oMin) * new Random().nextFloat();
+        int lux = luxMin + (luxMax - luxMin) * new Random().nextInt();
+        int tvoc = tvocMin + (tvocMax - tvocMin) * new Random().nextInt();
+        int co2 = co2Min + (co2Max - co2Min) * new Random().nextInt();
+        int pm = pmMin + (pmMax - pmMin) * new Random().nextInt();
+        roomInfo.setAtm(String.valueOf(0.1013f));
+        roomInfo.setCh2o(String.valueOf(ch2o));
+        roomInfo.setLux(String.valueOf(lux));
+        roomInfo.setTvoc(String.valueOf(tvoc));
+        roomInfo.setCo2(String.valueOf(co2));
+        roomInfo.setPM(String.valueOf(pm));
+        return roomInfo;
+    }
+
 }

+ 1 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/mapper/TargetRoomMapper.java

@@ -26,4 +26,5 @@ import java.util.List;
  **/
 public interface TargetRoomMapper extends BaseMapper<TargetRoom> {
     List<RoomMonitor> getRoomMonitor(String floor,String createOrg);
+    RoomMonitor getById(String id);
 }

+ 24 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/mapper/mapping/TargetRoomMapper.xml

@@ -4,6 +4,7 @@
 
     <resultMap id="RoomMonitorResultMap" type="vip.xiaonuo.coldchain.modular.hmi.entity.RoomMonitor">
         <result column="roomName" property="roomName"/>
+        <result column="tId" property="tId"/>
         <result column="floor" property="floor"/>
         <result column="monitorName" property="monitorName"/>
         <result column="sensor_code" property="sensorCode"/>
@@ -13,6 +14,7 @@
         SELECT
             room.`name` as roomName,
             t.`name` as monitorName,
+            t.`id` as tId,
             r.`name` as regionName,
             room.floor as floor,
             r.sensor_code,
@@ -31,4 +33,26 @@
           AND room.CREATE_ORG = #{createOrg}
         GROUP BY monitorName
     </select>
+    <select id="getById" resultMap="RoomMonitorResultMap">
+        SELECT
+            room.`name` as roomName,
+            t.`name` as monitorName,
+            t.`id` as tId,
+            r.`name` as regionName,
+            room.floor as floor,
+            r.sensor_code,
+            r.sensor_route,
+            t.`status`,
+            r.temperature_down as td,
+            r.temperature_up as tu,
+            r.humidity_down as hd,
+            r.humidity_up as hu
+        FROM `target_room` as room
+                 LEFT JOIN `monitor_target` as t ON t.room_id = room.id
+                 LEFT JOIN `monitor_target_region` as r ON r.monitor_target_id = t.id
+        WHERE room.DELETE_FLAG = 'NOT_DELETE'
+          AND	t.DELETE_FLAG = 'NOT_DELETE'
+          AND t.`id` = #{id}
+        GROUP BY monitorName
+    </select>
 </mapper>

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java

@@ -149,7 +149,8 @@ public class GlobalConfigure implements WebMvcConfigurer {
 
             /* 全值匹配组织名 */
             "/coldchain/alarmuser/getOrgByName",
-            "/coldchain/hmi/roomMonitor"
+            "/coldchain/hmi/roomMonitor",
+            "/coldchain/hmi/getRoomInfoById"
     };
 
     /**