From a14c387388ddeb00f730a4b2ad3c21dcf223ff20 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期一, 25 四月 2022 15:55:22 +0800
Subject: [PATCH] 大气设备、数据(农耕)
---
dao/src/main/resources/mapper/AirDataNongGengMapper.xml | 76 +++++++++---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataNongGengService.java | 31 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java | 58 +++++++++
dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java | 10 +
dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentNongGengMapper.java | 4
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java | 1
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java | 10 +
dao/src/main/java/com/sandu/ximon/dao/bo/AirDataNongGengBo.java | 12 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataNongGengController.java | 27 +++
dao/src/main/resources/mapper/AirEquipmentNongGengMapper.xml | 24 +++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java | 56 +++++++++
dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java | 2
dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataNongGengMapper.java | 7 +
dao/src/main/java/com/sandu/ximon/dao/bo/AirEquipmentNongGengBo.java | 15 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java | 4
15 files changed, 303 insertions(+), 34 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/bo/AirDataNongGengBo.java b/dao/src/main/java/com/sandu/ximon/dao/bo/AirDataNongGengBo.java
new file mode 100644
index 0000000..6de3c6c
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/bo/AirDataNongGengBo.java
@@ -0,0 +1,12 @@
+package com.sandu.ximon.dao.bo;
+
+import com.sandu.ximon.dao.domain.AirDataNongGeng;
+
+/**
+ * @author ZZQ
+ * @date 2022/4/25 15:10
+ */
+public class AirDataNongGengBo extends AirDataNongGeng {
+ private String poleId;
+ private String PoleName;
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/bo/AirEquipmentNongGengBo.java b/dao/src/main/java/com/sandu/ximon/dao/bo/AirEquipmentNongGengBo.java
new file mode 100644
index 0000000..92ef87b
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/bo/AirEquipmentNongGengBo.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.dao.bo;
+
+import com.sandu.ximon.dao.domain.AirEquipment;
+import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
+import lombok.Data;
+
+/**
+ * @author ZZQ
+ * @date 2022/4/25 15:21
+ */
+@Data
+public class AirEquipmentNongGengBo extends AirEquipmentNongGeng {
+ private String poleId;
+ private String PoleName;
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java b/dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java
index 13d1994..90f0d1d 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java
@@ -4,19 +4,20 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+
import java.io.Serializable;
import java.time.LocalDateTime;
+
import lombok.Data;
/**
- *
* @TableName air_equipment_nong_geng
*/
-@TableName(value ="air_equipment_nong_geng")
+@TableName(value = "air_equipment_nong_geng")
@Data
public class AirEquipmentNongGeng implements Serializable {
/**
- *
+ *
*/
@TableId
private Long id;
@@ -32,5 +33,8 @@
private LocalDateTime createTime;
@TableField(exist = false)
+ private Integer state;
+
+ @TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java b/dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java
index e1158e1..aea6008 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java
@@ -33,6 +33,8 @@
LED_FILE_LIST("LED灞忕礌鏉愬垪琛�"),
AIR_EQUIPMENT_LIST("澶ф皵璁惧鍒楄〃"),
AIR_DATA_LIST("澶ф皵鏁版嵁鍒楄〃"),
+ AIR_EQUIPMENT_NONG_GENG_LIST("澶ф皵璁惧鍐滆�曞垪琛�"),
+ AIR_DATA__NONG_GENG_LIST("澶ф皵鏁版嵁鍐滆�曞垪琛�"),
WATER_EQUIPMENT_LIST("姘磋川璁惧鍒楄〃"),
WATER_DATA_LIST("姘磋川鏁版嵁鍒楄〃"),
IP_BROADCAST_LIST("IP闊虫煴鍒楄〃"),
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataNongGengMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataNongGengMapper.java
index 2ef3669..1c53f0c 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataNongGengMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataNongGengMapper.java
@@ -1,14 +1,21 @@
package com.sandu.ximon.dao.mapper;
+import com.sandu.ximon.dao.bo.AirDataBo;
+import com.sandu.ximon.dao.bo.AirDataNongGengBo;
import com.sandu.ximon.dao.domain.AirDataNongGeng;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
/**
* @Entity com.sandu.ximon.dao.domain.AirDataNongGeng
*/
@Mapper
public interface AirDataNongGengMapper extends BaseMapper<AirDataNongGeng> {
+ List<Long> listAirId(String keyword, Long userid);
+
+ List<AirDataNongGengBo> listAirDataByIds(List<Long> airIdList);
}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentNongGengMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentNongGengMapper.java
index c6a7d60..f7ff70a 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentNongGengMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentNongGengMapper.java
@@ -1,14 +1,18 @@
package com.sandu.ximon.dao.mapper;
+import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
/**
* @Entity com.sandu.ximon.dao.domain.AirEquipmentNongGeng
*/
@Mapper
public interface AirEquipmentNongGengMapper extends BaseMapper<AirEquipmentNongGeng> {
+ List<AirEquipmentNongGengBo> listAirEquipmentByIds(String keyword, Long userid);
}
diff --git a/dao/src/main/resources/mapper/AirDataNongGengMapper.xml b/dao/src/main/resources/mapper/AirDataNongGengMapper.xml
index e0616e9..b6d1dc9 100644
--- a/dao/src/main/resources/mapper/AirDataNongGengMapper.xml
+++ b/dao/src/main/resources/mapper/AirDataNongGengMapper.xml
@@ -5,25 +5,25 @@
<mapper namespace="com.sandu.ximon.dao.mapper.AirDataNongGengMapper">
<resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.AirDataNongGeng">
- <id property="id" column="id" jdbcType="BIGINT"/>
- <result property="mac" column="mac" jdbcType="VARCHAR"/>
- <result property="noise" column="noise" jdbcType="DECIMAL"/>
- <result property="hydrogenSulfide" column="hydrogen_sulfide" jdbcType="DECIMAL"/>
- <result property="so2" column="so2" jdbcType="DECIMAL"/>
- <result property="no2" column="no2" jdbcType="DECIMAL"/>
- <result property="co" column="co" jdbcType="DECIMAL"/>
- <result property="o3" column="o3" jdbcType="DECIMAL"/>
- <result property="pm2point5" column="pm2point5" jdbcType="DECIMAL"/>
- <result property="pm10" column="pm10" jdbcType="DECIMAL"/>
- <result property="airTemperature" column="air_temperature" jdbcType="DECIMAL"/>
- <result property="airHumidity" column="air_humidity" jdbcType="DECIMAL"/>
- <result property="airPressure" column="air_pressure" jdbcType="DECIMAL"/>
- <result property="windDirection" column="wind_direction" jdbcType="DECIMAL"/>
- <result property="windSpeed" column="wind_speed" jdbcType="DECIMAL"/>
- <result property="tenRainfallMin" column="ten_rainfall_min" jdbcType="DECIMAL"/>
- <result property="radiation" column="radiation" jdbcType="DECIMAL"/>
- <result property="illumination" column="illumination" jdbcType="DECIMAL"/>
- <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="mac" column="mac" jdbcType="VARCHAR"/>
+ <result property="noise" column="noise" jdbcType="DECIMAL"/>
+ <result property="hydrogenSulfide" column="hydrogen_sulfide" jdbcType="DECIMAL"/>
+ <result property="so2" column="so2" jdbcType="DECIMAL"/>
+ <result property="no2" column="no2" jdbcType="DECIMAL"/>
+ <result property="co" column="co" jdbcType="DECIMAL"/>
+ <result property="o3" column="o3" jdbcType="DECIMAL"/>
+ <result property="pm2point5" column="pm2point5" jdbcType="DECIMAL"/>
+ <result property="pm10" column="pm10" jdbcType="DECIMAL"/>
+ <result property="airTemperature" column="air_temperature" jdbcType="DECIMAL"/>
+ <result property="airHumidity" column="air_humidity" jdbcType="DECIMAL"/>
+ <result property="airPressure" column="air_pressure" jdbcType="DECIMAL"/>
+ <result property="windDirection" column="wind_direction" jdbcType="DECIMAL"/>
+ <result property="windSpeed" column="wind_speed" jdbcType="DECIMAL"/>
+ <result property="tenRainfallMin" column="ten_rainfall_min" jdbcType="DECIMAL"/>
+ <result property="radiation" column="radiation" jdbcType="DECIMAL"/>
+ <result property="illumination" column="illumination" jdbcType="DECIMAL"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
@@ -35,4 +35,42 @@
ten_rainfall_min,radiation,illumination,
create_time
</sql>
+ <select id="listAirId" resultType="java.lang.Long">
+ SELECT
+ MAX(t1.id) AS air_id
+ FROM
+ air_data_nong_geng t1
+ <if test="keyword != null and keyword != ''">
+ LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
+ AND t2.device_type = 11
+ LEFT JOIN pole t3 ON t3.id = t2.pole_id
+ </if>
+ <where>
+ <if test="keyword != null and keyword != ''">
+ AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+ </if>
+ <if test="userid != null">
+ AND (t3.user_id = #{userid} OR t3.client_id = #{userid})
+ </if>
+ </where>
+ GROUP BY
+ t1.mac
+ </select>
+ <select id="listAirDataByIds" resultType="com.sandu.ximon.dao.bo.AirDataNongGengBo">
+ SELECT
+ t1.*, t2.pole_id,
+ t3.pole_name
+ FROM
+ air_data_nong_geng t1
+ LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
+ AND t2.device_type = 11
+ LEFT JOIN pole t3 ON t3.id = t2.pole_id
+ <where>
+ t1.id IN
+ <foreach collection="airIdList" open="(" close=")" item="airId" separator=",">
+ #{airId}
+ </foreach>
+ </where>
+ </select>
+
</mapper>
diff --git a/dao/src/main/resources/mapper/AirEquipmentNongGengMapper.xml b/dao/src/main/resources/mapper/AirEquipmentNongGengMapper.xml
index a855823..6a34be8 100644
--- a/dao/src/main/resources/mapper/AirEquipmentNongGengMapper.xml
+++ b/dao/src/main/resources/mapper/AirEquipmentNongGengMapper.xml
@@ -5,12 +5,30 @@
<mapper namespace="com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper">
<resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.AirEquipmentNongGeng">
- <id property="id" column="id" jdbcType="BIGINT"/>
- <result property="mac" column="mac" jdbcType="VARCHAR"/>
- <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="mac" column="mac" jdbcType="VARCHAR"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,mac,create_time
</sql>
+ <select id="listAirEquipmentByIds" resultType="com.sandu.ximon.dao.bo.AirEquipmentNongGengBo">
+ SELECT
+ t1.*, t2.pole_id,
+ t3.pole_name
+ FROM
+ air_equipment_nong_geng t1
+ LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
+ AND t2.device_type = 11
+ LEFT JOIN pole t3 ON t3.id = t2.pole_id
+ <where>
+ <if test="keyword != null and keyword != ''">
+ AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+ </if>
+ <if test="userid != null">
+ AND (t3.user_id = #{userid} OR t3.client_id = #{userid})
+ </if>
+ </where>
+ </select>
</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
index 65b269e..85920e3 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
@@ -1,6 +1,5 @@
package com.sandu.ximon.admin.controller;
-import com.alibaba.fastjson.JSON;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataNongGengController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataNongGengController.java
index b9c0fbd..eca554a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataNongGengController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataNongGengController.java
@@ -6,19 +6,20 @@
*/
import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.manager.iot.amqp.processor.AirDataProcessor;
import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AirDataNewReqInnerFrame;
-import com.sandu.ximon.admin.manager.iot.frame.inner.request.AirDataReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
+import com.sandu.ximon.admin.security.PermissionConfig;
+import com.sandu.ximon.admin.service.AirDataNongGengService;
+import com.sandu.ximon.dao.bo.AirDataNongGengBo;
+import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -32,6 +33,8 @@
@AllArgsConstructor
@RequestMapping("/v1/admin/airdata_nonggeng")
public class AirDataNongGengController {
+ private PermissionConfig permissionConfig;
+ private final AirDataNongGengService airDataNongGengService;
@PostMapping("/updateAirEquipmentInfo")
public ResponseVO<Object> updataAirEquipmentInfo(@RequestBody List<String> listMac) {
@@ -61,6 +64,20 @@
resultMap.put("success", success);
resultMap.put("failed", failed);
return ResponseUtil.success(resultMap);
+ }
+ /**
+ * 鏌ヨ澶ф皵鏁版嵁妯$硦鏌ヨ
+ *
+ * @param keyword 鍏抽敭瀛�
+ * @return
+ */
+ @GetMapping("/listAirData")
+ public ResponseVO<Object> listAirDataByKeyword(BaseConditionVO baseConditionVO, @RequestParam(required = false) String keyword) {
+ if (!permissionConfig.check(MenuEnum.AIR_DATA__NONG_GENG_LIST.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ List<AirDataNongGengBo> list = airDataNongGengService.listAirDataByKeyword(baseConditionVO, keyword);
+ return ResponseUtil.successPage(list);
}
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java
new file mode 100644
index 0000000..23cdf9b
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java
@@ -0,0 +1,56 @@
+package com.sandu.ximon.admin.controller;
+
+import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.object.BaseConditionVO;
+import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.security.PermissionConfig;
+import com.sandu.ximon.admin.service.AirEquipmentNongGengService;
+import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
+import com.sandu.ximon.dao.enums.MenuEnum;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 澶ф皵璁惧锛堝啘鑰曪級
+ *
+ * @author ZZQ
+ * @date 2022/4/25 15:19
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/v1/admin/airequipment_nonggeng")
+public class AirEquipmentNongGengController {
+ private final AirEquipmentNongGengService airEquipmentNongGengService;
+ private PermissionConfig permissionConfig;
+
+ /**
+ * 鏌ヨ澶ф皵璁惧
+ *
+ * @return
+ */
+ @GetMapping("/listAirEquipment")
+ public ResponseVO<Object> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, @RequestParam(required = false) String keyword) {
+ if (!permissionConfig.check(MenuEnum.AIR_EQUIPMENT_LIST.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ List<AirEquipmentNongGengBo> list = airEquipmentNongGengService.listAirEquipmentByKeyword(baseConditionVO, keyword);
+ return ResponseUtil.successPage(list);
+ }
+
+ @PostMapping("/delete/{id}")
+ public ResponseVO<Object> deleteAirEquipment(@PathVariable Long id) {
+ boolean result = airEquipmentNongGengService.deleteAirEquipment(id);
+ if (result) {
+ return ResponseUtil.success(null);
+ } else {
+ return ResponseUtil.fail("鎿嶄綔澶辫触");
+ }
+ }
+
+ @GetMapping("/getAirEquipment/{mac}")
+ public ResponseVO<Object> getAirEquipment(@PathVariable String mac) {
+ return ResponseUtil.success(airEquipmentNongGengService.getAirEquipment(mac));
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java
index 5873bba..f1d7dcb 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java
@@ -16,7 +16,9 @@
// 璁剧疆蹇冭烦鍖呴棿闅�
SettingHeartBeatTime("11"),
// 澶ф皵璁惧蹇冭烦鍖呭瓨鍌�(璁惧鐘舵��))
- AIR_HEARTBEAT("air_heartbeat");
+ AIR_HEARTBEAT("air_heartbeat"),
+ // 澶ф皵璁惧蹇冭烦鍖呭瓨鍌�(璁惧鐘舵��))鍐滆��
+ AIR_HEARTBEAT_NONG_GENG("air_heartbeat_nong_geng");
/**
* 澶ф皵缁撴潫锛堝笇姊﹁嚜鐮旓級
*/
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataNongGengService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataNongGengService.java
index 407ba53..86ebc33 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataNongGengService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataNongGengService.java
@@ -1,10 +1,16 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.collection.CollUtil;
+import com.github.pagehelper.PageHelper;
+import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereNewHeartbeatReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode;
+import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.dao.bo.AirDataBo;
+import com.sandu.ximon.dao.bo.AirDataNongGengBo;
import com.sandu.ximon.dao.domain.AirData;
import com.sandu.ximon.dao.domain.AirDataNongGeng;
import com.sandu.ximon.dao.domain.AirEquipment;
@@ -13,6 +19,8 @@
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* 澶ф皵鏁版嵁锛屽啘鑰曠‖浠�
@@ -43,9 +51,28 @@
airEquipmentNongGeng.setCreateTime(airDataNongGeng.getCreateTime());
airEquipmentNongGengService.addAirEquipment(airEquipmentNongGeng);
-// //瀛樼紦瀛�
-// RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + deviceName, heartBeatDataPackage, 300L);
+ //瀛樼紦瀛�
+ RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG.getCode() + deviceName, heartBeatDataPackage, 300L);
return save(airDataNongGeng);
}
+
+ /**
+ * 鏌ヨ澶ф皵鏁版嵁(妯$硦鏌ヨ)
+ */
+ public List<AirDataNongGengBo> listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) {
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ List<Long> listAirId;
+ if (SecurityUtils.getClientId() == null) {
+ listAirId = baseMapper.listAirId(keyword, null);
+ } else {
+ listAirId = baseMapper.listAirId(keyword, SecurityUtils.getUserId());
+ }
+ if (CollUtil.isEmpty(listAirId)) {
+ return CollUtil.newArrayList();
+ }
+ List<AirDataNongGengBo> airDataBos = baseMapper.listAirDataByIds(listAirId);
+ return airDataBos;
+
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
index ceb5e2a..bfb4547 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
@@ -1,12 +1,23 @@
package com.sandu.ximon.admin.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.dao.bo.AirEquipmentBo;
+import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
import com.sandu.ximon.dao.domain.AirEquipment;
import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
+import com.sandu.ximon.dao.mapper.AirEquipmentMapper;
import com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @author ZZQ
@@ -15,6 +26,9 @@
@Service
@AllArgsConstructor
public class AirEquipmentNongGengService extends BaseServiceImpl<AirEquipmentNongGengMapper, AirEquipmentNongGeng> {
+ private final AirEquipmentNongGengMapper airEquipmentNongGengMapper;
+
+
/**
* 娣诲姞澶ф皵璁惧鏁版嵁
*
@@ -26,4 +40,48 @@
save(airEquipmentNongGeng);
}
}
+
+ /**
+ * 妯$硦鏌ヨ
+ */
+ public List<AirEquipmentNongGengBo> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) {
+ if (baseConditionVO != null) {
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ }
+ List<AirEquipmentNongGengBo> airEquipmentBos;
+ if (SecurityUtils.getClientId() == null) {
+ airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, null);
+ } else {
+ airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId());
+ }
+
+ return airEquipmentBos;
+ }
+
+ /**
+ * 鍒犻櫎澶ф皵璁惧鏁版嵁
+ *
+ * @param Id
+ * @return
+ */
+ public boolean deleteAirEquipment(Long Id) {
+ AirEquipmentNongGeng airEquipmentNongGeng = getById(Id);
+ if (airEquipmentNongGeng == null) {
+ throw new BusinessException("鎵句笉鍒板ぇ姘旇澶囨暟鎹�");
+ }
+ return removeById(Id);
+ }
+
+ /**
+ * 鏍规嵁Mac澶ф皵璁惧鏁版嵁璇︽儏
+ */
+ public AirEquipmentNongGeng getAirEquipment(String mac) {
+ AirEquipmentNongGeng one = getOne(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, mac));
+ if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG.getCode() + mac) != null) {
+ one.setState(1);
+ } else {
+ one.setState(0);
+ }
+ return one;
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index 5e8e708..e317fe5 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -204,6 +204,16 @@
}
result.put("AirEquipmentOnlineCount", number);
result.put("AirEquipmentTotalCount", airEquipments.size());
+ //澶ф皵(鍐滆��)
+ number = 0;
+ List<AirEquipmentNongGengBo> airEquipmentNongGengBos = SpringContextHolder.getBean(AirEquipmentNongGengService.class).listAirEquipmentByKeyword(null, null);
+ for (AirEquipmentNongGengBo airEquipmentNongGengBo : airEquipmentNongGengBos) {
+ if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG.getCode() + airEquipmentNongGengBo.getMac()) != null) {
+ number++;
+ }
+ }
+ result.put("AirEquipmentNongGengOnlineCount", number);
+ result.put("AirEquipmentNongGengTotalCount", airEquipmentNongGengBos.size());
//姘磋川
number = 0;
List<WaterQualityEquipmentBo> waterQualityEquipments
--
Gitblit v1.9.3