From 246483f4ecff8dd7f03562485f5418292cf09d55 Mon Sep 17 00:00:00 2001
From: zhangyue <82248909@qq.com>
Date: Wed, 29 Jul 2026 10:15:44 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=81=E9=87=8F=E8=AE=A1?=
=?UTF-8?q?=E8=A1=A8=E7=BB=93=E6=9E=84=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/lanhai/MybatisPlusGenerator.java | 2 +-
.../lanhai/constant/PollutionConstants.java | 7 +
.../SurvHisdataFlowmeterController.java | 21 +++
.../SurvTransdataFlowmeterController.java | 21 +++
.../lanhai/entity/SurvHisdataFlowmeter.java | 174 ++++++++++++++++++
.../lanhai/entity/SurvTransdataFlowmeter.java | 168 +++++++++++++++++
.../com/lanhai/enums/DeviceDeployEnum.java | 13 +-
.../mapper/SurvHisdataFlowmeterMapper.java | 16 ++
.../mapper/SurvTransdataFlowmeterMapper.java | 16 ++
.../mapper/xml/SurvHisdataFlowmeterMapper.xml | 5 +
.../xml/SurvTransdataFlowmeterMapper.xml | 5 +
.../service/ISurvHisdataFlowmeterService.java | 20 ++
.../ISurvTransdataFlowmeterService.java | 19 ++
.../Impl/SurvHisdataFlowmeterServiceImpl.java | 31 ++++
.../SurvTransdataFlowmeterServiceImpl.java | 138 ++++++++++++++
.../java/com/lanhai/task/MultithreadTask.java | 2 +
src/main/java/com/lanhai/util/SdrkUtils.java | 23 ++-
17 files changed, 670 insertions(+), 11 deletions(-)
create mode 100644 src/main/java/com/lanhai/controller/SurvHisdataFlowmeterController.java
create mode 100644 src/main/java/com/lanhai/controller/SurvTransdataFlowmeterController.java
create mode 100644 src/main/java/com/lanhai/entity/SurvHisdataFlowmeter.java
create mode 100644 src/main/java/com/lanhai/entity/SurvTransdataFlowmeter.java
create mode 100644 src/main/java/com/lanhai/mapper/SurvHisdataFlowmeterMapper.java
create mode 100644 src/main/java/com/lanhai/mapper/SurvTransdataFlowmeterMapper.java
create mode 100644 src/main/java/com/lanhai/mapper/xml/SurvHisdataFlowmeterMapper.xml
create mode 100644 src/main/java/com/lanhai/mapper/xml/SurvTransdataFlowmeterMapper.xml
create mode 100644 src/main/java/com/lanhai/service/ISurvHisdataFlowmeterService.java
create mode 100644 src/main/java/com/lanhai/service/ISurvTransdataFlowmeterService.java
create mode 100644 src/main/java/com/lanhai/service/Impl/SurvHisdataFlowmeterServiceImpl.java
create mode 100644 src/main/java/com/lanhai/service/Impl/SurvTransdataFlowmeterServiceImpl.java
diff --git a/src/main/java/com/lanhai/MybatisPlusGenerator.java b/src/main/java/com/lanhai/MybatisPlusGenerator.java
index 94618c1..358b239 100644
--- a/src/main/java/com/lanhai/MybatisPlusGenerator.java
+++ b/src/main/java/com/lanhai/MybatisPlusGenerator.java
@@ -80,7 +80,7 @@ public class MybatisPlusGenerator {
public static void main(String[] args) {
- new MybatisPlusGenerator().generator("surv_transdata_vocs","surv_transdata_vocs_min");//指标
+ new MybatisPlusGenerator().generator("surv_transdata_flowmeter","surv_hisdata_flowmeter");//指标
}
diff --git a/src/main/java/com/lanhai/constant/PollutionConstants.java b/src/main/java/com/lanhai/constant/PollutionConstants.java
index 20ecab8..f3732ee 100644
--- a/src/main/java/com/lanhai/constant/PollutionConstants.java
+++ b/src/main/java/com/lanhai/constant/PollutionConstants.java
@@ -27,6 +27,8 @@ public interface PollutionConstants {
String SOIL_SURV = "soil";
+
+
String STINK = "stink";
String CAMERA = "camera";
@@ -64,6 +66,11 @@ public interface PollutionConstants {
*/
String PEST_LIGHT="9_pestlight";
+ /**
+ * 流量计
+ */
+ String FLOWMETER = "10_flowmeter";
+
/**
* 数据生成间隔 单位秒
*/
diff --git a/src/main/java/com/lanhai/controller/SurvHisdataFlowmeterController.java b/src/main/java/com/lanhai/controller/SurvHisdataFlowmeterController.java
new file mode 100644
index 0000000..e44ac1e
--- /dev/null
+++ b/src/main/java/com/lanhai/controller/SurvHisdataFlowmeterController.java
@@ -0,0 +1,21 @@
+package com.lanhai.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ *
+ * 流量计监测历史数据 前端控制器
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Controller
+@RequestMapping("/survHisdataFlowmeter")
+public class SurvHisdataFlowmeterController {
+
+}
+
diff --git a/src/main/java/com/lanhai/controller/SurvTransdataFlowmeterController.java b/src/main/java/com/lanhai/controller/SurvTransdataFlowmeterController.java
new file mode 100644
index 0000000..355d92c
--- /dev/null
+++ b/src/main/java/com/lanhai/controller/SurvTransdataFlowmeterController.java
@@ -0,0 +1,21 @@
+package com.lanhai.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ *
+ * 流量计监测数据 前端控制器
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Controller
+@RequestMapping("/survTransdataFlowmeter")
+public class SurvTransdataFlowmeterController {
+
+}
+
diff --git a/src/main/java/com/lanhai/entity/SurvHisdataFlowmeter.java b/src/main/java/com/lanhai/entity/SurvHisdataFlowmeter.java
new file mode 100644
index 0000000..15f2ee4
--- /dev/null
+++ b/src/main/java/com/lanhai/entity/SurvHisdataFlowmeter.java
@@ -0,0 +1,174 @@
+package com.lanhai.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 流量计监测历史数据
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SurvHisdataFlowmeter extends Model {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID", type = IdType.ID_WORKER_STR)
+ private String id;
+
+ /**
+ * 数据1
+ */
+ @TableField("S_DATA1")
+ private String sData1;
+
+ /**
+ * 数据2
+ */
+ @TableField("S_DATA2")
+ private String sData2;
+
+ /**
+ * 数据3
+ */
+ @TableField("S_DATA3")
+ private String sData3;
+
+ /**
+ * 数据4
+ */
+ @TableField("S_DATA4")
+ private String sData4;
+
+ /**
+ * 数据5
+ */
+ @TableField("S_DATA5")
+ private String sData5;
+
+ /**
+ * 数据更新时间
+ */
+ @TableField("DATA_DATE_TIME")
+ private LocalDateTime dataDateTime;
+
+ /**
+ * 数据类型;realTime=实时,dayTime=日数据,month=月数据,year=年数据
+ */
+ @TableField("DATA_GATHER_TYPE")
+ private String dataGatherType;
+
+ /**
+ * 站点ID
+ */
+ @TableField("STATION_ID")
+ private String stationId;
+
+ /**
+ * 设备ID
+ */
+ @TableField("DEPLOY_ID")
+ private String deployId;
+
+ /**
+ * 站点编号
+ */
+ @TableField("STATION_CODE")
+ private String stationCode;
+
+ /**
+ * 设备编号
+ */
+ @TableField("DEPLOY_CODE")
+ private String deployCode;
+
+ /**
+ * 机构ID
+ */
+ @TableField("CORP_ID")
+ private String corpId;
+
+ /**
+ * 站点名称
+ */
+ @TableField("STATION_NAME")
+ private String stationName;
+
+ /**
+ * 设备名称
+ */
+ @TableField("DEVICE_NAME")
+ private String deviceName;
+
+ /**
+ * 转储时间
+ */
+ @TableField("TRANS_DATE")
+ private Date transDate;
+
+ /**
+ * 租户号
+ */
+ @TableField("TENANT_ID")
+ private String tenantId;
+
+ /**
+ * 乐观锁
+ */
+ @TableField("RE_VISION")
+ private Integer reVision;
+
+ /**
+ * 创建人
+ */
+ @TableField("CREATED_BY")
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ @TableField("CREATE_TIME")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新人
+ */
+ @TableField("UPDATED_BY")
+ private String updatedBy;
+
+ /**
+ * 逻辑删除
+ */
+ @TableField("IS_DEL")
+ private Integer isDel;
+
+ /**
+ * 更新时间
+ */
+ @TableField("UPDATED_TIME")
+ private LocalDateTime updatedTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/src/main/java/com/lanhai/entity/SurvTransdataFlowmeter.java b/src/main/java/com/lanhai/entity/SurvTransdataFlowmeter.java
new file mode 100644
index 0000000..9609187
--- /dev/null
+++ b/src/main/java/com/lanhai/entity/SurvTransdataFlowmeter.java
@@ -0,0 +1,168 @@
+package com.lanhai.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 流量计监测数据
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SurvTransdataFlowmeter extends Model {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID", type = IdType.ID_WORKER_STR)
+ private String id;
+
+ /**
+ * 数据1
+ */
+ @TableField("S_DATA1")
+ private String sData1;
+
+ /**
+ * 数据2
+ */
+ @TableField("S_DATA2")
+ private String sData2;
+
+ /**
+ * 数据3
+ */
+ @TableField("S_DATA3")
+ private String sData3;
+
+ /**
+ * 数据4
+ */
+ @TableField("S_DATA4")
+ private String sData4;
+
+ /**
+ * 数据5
+ */
+ @TableField("S_DATA5")
+ private String sData5;
+
+ /**
+ * 数据更新时间
+ */
+ @TableField("DATA_DATE_TIME")
+ private LocalDateTime dataDateTime;
+
+ /**
+ * 数据类型;realTime=实时,dayTime=日数据,month=月数据,year=年数据
+ */
+ @TableField("DATA_GATHER_TYPE")
+ private String dataGatherType;
+
+ /**
+ * 站点ID
+ */
+ @TableField("STATION_ID")
+ private String stationId;
+
+ /**
+ * 设备ID
+ */
+ @TableField("DEPLOY_ID")
+ private String deployId;
+
+ /**
+ * 站点编号
+ */
+ @TableField("STATION_CODE")
+ private String stationCode;
+
+ /**
+ * 设备编号
+ */
+ @TableField("DEPLOY_CODE")
+ private String deployCode;
+
+ /**
+ * 机构ID
+ */
+ @TableField("CORP_ID")
+ private String corpId;
+
+ /**
+ * 站点名称
+ */
+ @TableField("STATION_NAME")
+ private String stationName;
+
+ /**
+ * 设备名称
+ */
+ @TableField("DEVICE_NAME")
+ private String deviceName;
+
+ /**
+ * 租户号
+ */
+ @TableField("TENANT_ID")
+ private String tenantId;
+
+ /**
+ * 乐观锁
+ */
+ @TableField("RE_VISION")
+ private Integer reVision;
+
+ /**
+ * 创建人
+ */
+ @TableField("CREATED_BY")
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ @TableField("CREATE_TIME")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新人
+ */
+ @TableField("UPDATED_BY")
+ private String updatedBy;
+
+ /**
+ * 逻辑删除
+ */
+ @TableField("IS_DEL")
+ private Integer isDel;
+
+ /**
+ * 更新时间
+ */
+ @TableField("UPDATED_TIME")
+ private LocalDateTime updatedTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/src/main/java/com/lanhai/enums/DeviceDeployEnum.java b/src/main/java/com/lanhai/enums/DeviceDeployEnum.java
index c8b40d4..8b0d6da 100644
--- a/src/main/java/com/lanhai/enums/DeviceDeployEnum.java
+++ b/src/main/java/com/lanhai/enums/DeviceDeployEnum.java
@@ -12,12 +12,23 @@ public enum DeviceDeployEnum {
WATER_LIVE("water_live", "畜禽水污染监测","surv"),
/** 水质监测 */
WATER_QULITY("6_water", "水质监测","surv"),
+ /**
+ * 虫情监测
+ */
+ BUG_SURV("7_bugsurv", "虫情监测", "surv"),
+
+ /**
+ * 孢子监测
+ */
+ SPORE_SURV("8_sporesurv", "孢子监测", "surv"),
/**损耗出库*/
STINK("stink", "恶臭设备","surv"),
CAMERA("camera", "摄像头","surv"),
- PEST_LIGHT("pestlight", "杀虫灯","guard"),
+ PEST_LIGHT("9_pestlight", "杀虫灯","guard"),
+
+ FLOWMETER("10_flowmeter", "流量计","surv"),
CONTROL_CAB("control_cab", "温室控制柜","control"),
diff --git a/src/main/java/com/lanhai/mapper/SurvHisdataFlowmeterMapper.java b/src/main/java/com/lanhai/mapper/SurvHisdataFlowmeterMapper.java
new file mode 100644
index 0000000..93247dc
--- /dev/null
+++ b/src/main/java/com/lanhai/mapper/SurvHisdataFlowmeterMapper.java
@@ -0,0 +1,16 @@
+package com.lanhai.mapper;
+
+import com.lanhai.entity.SurvHisdataFlowmeter;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 流量计监测历史数据 Mapper 接口
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+public interface SurvHisdataFlowmeterMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/lanhai/mapper/SurvTransdataFlowmeterMapper.java b/src/main/java/com/lanhai/mapper/SurvTransdataFlowmeterMapper.java
new file mode 100644
index 0000000..e6e4e1e
--- /dev/null
+++ b/src/main/java/com/lanhai/mapper/SurvTransdataFlowmeterMapper.java
@@ -0,0 +1,16 @@
+package com.lanhai.mapper;
+
+import com.lanhai.entity.SurvTransdataFlowmeter;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 流量计监测数据 Mapper 接口
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+public interface SurvTransdataFlowmeterMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/lanhai/mapper/xml/SurvHisdataFlowmeterMapper.xml b/src/main/java/com/lanhai/mapper/xml/SurvHisdataFlowmeterMapper.xml
new file mode 100644
index 0000000..c2e261e
--- /dev/null
+++ b/src/main/java/com/lanhai/mapper/xml/SurvHisdataFlowmeterMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/main/java/com/lanhai/mapper/xml/SurvTransdataFlowmeterMapper.xml b/src/main/java/com/lanhai/mapper/xml/SurvTransdataFlowmeterMapper.xml
new file mode 100644
index 0000000..8b69350
--- /dev/null
+++ b/src/main/java/com/lanhai/mapper/xml/SurvTransdataFlowmeterMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/main/java/com/lanhai/service/ISurvHisdataFlowmeterService.java b/src/main/java/com/lanhai/service/ISurvHisdataFlowmeterService.java
new file mode 100644
index 0000000..f3c10ca
--- /dev/null
+++ b/src/main/java/com/lanhai/service/ISurvHisdataFlowmeterService.java
@@ -0,0 +1,20 @@
+package com.lanhai.service;
+
+import com.lanhai.entity.SurvDeviceDeploy;
+import com.lanhai.entity.SurvHisdataFlowmeter;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ *
+ * 流量计监测历史数据 服务类
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+public interface ISurvHisdataFlowmeterService extends IService {
+
+
+}
diff --git a/src/main/java/com/lanhai/service/ISurvTransdataFlowmeterService.java b/src/main/java/com/lanhai/service/ISurvTransdataFlowmeterService.java
new file mode 100644
index 0000000..6d73cf1
--- /dev/null
+++ b/src/main/java/com/lanhai/service/ISurvTransdataFlowmeterService.java
@@ -0,0 +1,19 @@
+package com.lanhai.service;
+
+import com.lanhai.entity.SurvDeviceDeploy;
+import com.lanhai.entity.SurvTransdataFlowmeter;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ *
+ * 流量计监测数据 服务类
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+public interface ISurvTransdataFlowmeterService extends IService {
+ void saveBaowen(Map dataMap, SurvDeviceDeploy deploy, Map deviceDeployMap);
+}
diff --git a/src/main/java/com/lanhai/service/Impl/SurvHisdataFlowmeterServiceImpl.java b/src/main/java/com/lanhai/service/Impl/SurvHisdataFlowmeterServiceImpl.java
new file mode 100644
index 0000000..074b773
--- /dev/null
+++ b/src/main/java/com/lanhai/service/Impl/SurvHisdataFlowmeterServiceImpl.java
@@ -0,0 +1,31 @@
+package com.lanhai.service.Impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.lanhai.entity.*;
+import com.lanhai.mapper.SurvHisdataFlowmeterMapper;
+import com.lanhai.service.ISurvHisdataFlowmeterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lanhai.util.DateTimeUtils;
+import com.lanhai.util.TUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ *
+ * 流量计监测历史数据 服务实现类
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Service
+public class SurvHisdataFlowmeterServiceImpl extends ServiceImpl implements ISurvHisdataFlowmeterService {
+
+}
diff --git a/src/main/java/com/lanhai/service/Impl/SurvTransdataFlowmeterServiceImpl.java b/src/main/java/com/lanhai/service/Impl/SurvTransdataFlowmeterServiceImpl.java
new file mode 100644
index 0000000..161be39
--- /dev/null
+++ b/src/main/java/com/lanhai/service/Impl/SurvTransdataFlowmeterServiceImpl.java
@@ -0,0 +1,138 @@
+package com.lanhai.service.Impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.lanhai.entity.*;
+import com.lanhai.mapper.SurvTransdataFlowmeterMapper;
+import com.lanhai.service.ISurvAlertRecordService;
+import com.lanhai.service.ISurvDeviceDeployService;
+import com.lanhai.service.ISurvTransdataFlowmeterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lanhai.util.DateTimeUtils;
+import com.lanhai.util.TUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ *
+ * 流量计监测数据 服务实现类
+ *
+ *
+ * @author ${author}
+ * @since 2026-07-28
+ */
+@Service
+@Slf4j
+public class SurvTransdataFlowmeterServiceImpl extends ServiceImpl implements ISurvTransdataFlowmeterService {
+
+ @Autowired
+ private SurvAlertRecordServiceImpl alertRecordService;
+ @Autowired
+ private SurvDeviceDeployServiceImpl deviceDeployService;
+ @Autowired
+ private SurvHisdataFlowmeterServiceImpl flowmeterService;
+ @Autowired
+ private SurvStationInfoServiceImpl survStationInfoService;
+
+
+ @Override
+ public void saveBaowen(Map baowenMap, SurvDeviceDeploy survDeviceDeploy, Map deviceDeployMap) {
+
+ String mn = baowenMap.get("mn");
+ String DataTime = baowenMap.get("DataTime");
+ //保存或者更新实时表
+ SurvTransdataFlowmeter flowmeter = getOneByDeviceId(survDeviceDeploy.getId());
+ LocalDateTime kDateTime = null;
+ LocalDateTime nowTime = LocalDateTime.now();
+ if(flowmeter == null){
+ flowmeter = new SurvTransdataFlowmeter();
+ flowmeter.setCreatedBy("task");//创建人
+ flowmeter.setCreateTime(nowTime);//创建时间
+ }else{
+ flowmeter.setUpdatedBy("task");//创建人
+ flowmeter.setUpdatedTime(nowTime);//创建时间
+ kDateTime = flowmeter.getDataDateTime();
+ }
+
+ int soilCount = 0;
+ String formatSoilTime = kDateTime!=null? DateUtil.format(kDateTime,"yyyy-MM-dd HH:mm:ss"):"";
+ if(!formatSoilTime.equals(DataTime)){
+ if(!survDeviceDeploy.getScEquZhibiaoList().isEmpty()){
+ for (ScEquZhibiao scEquZhibiao : survDeviceDeploy.getScEquZhibiaoList()) {
+ boolean isSuccess = TUtil.setFieldValue(flowmeter,scEquZhibiao.getEntityField(),baowenMap.get(scEquZhibiao.getCode()));
+ if(isSuccess){
+ soilCount++;
+ }
+ }
+ }
+ }
+
+// System.out.println("nSoilCheck==============:"+soilCount);
+ if(soilCount > 0){//只有数据有效时才入库
+ flowmeter.setDataDateTime(DateTimeUtils.parse(DataTime));//数据时间
+ flowmeter.setDataGatherType("realTime");//数据类型-realTime=实时,dayTime=日数据,month=月数据,year=年数据
+ flowmeter.setDeployCode(mn);//设备编号
+ flowmeter.setTenantId(survDeviceDeploy.getTenantId());
+
+// SurvDeviceDeploy survDeviceDeploy = deviceDeployMap.get(deploy.getDeployCode()+"_"+ DeviceDeployEnum.SURV_SOIL.getType());
+
+
+
+ if(survDeviceDeploy!=null){
+ flowmeter.setDeployId(survDeviceDeploy.getId());
+ flowmeter.setStationCode(survDeviceDeploy.getStationCode());
+ flowmeter.setDeviceName(survDeviceDeploy.getDeployDes());
+ if(StringUtils.isNotBlank(survDeviceDeploy.getStationCode())){
+ SurvStationInfo survStationInfo = survStationInfoService.getByCode(survDeviceDeploy.getStationCode());
+ if(survStationInfo!=null) {
+ flowmeter.setStationName(survStationInfo.getStationName());
+ flowmeter.setStationId(survStationInfo.getId());
+ }
+ }
+ }
+ saveOrUpdate(flowmeter);
+ //更新设备的上次更新时间
+ deviceDeployService.update(new LambdaUpdateWrapper()
+ .eq(SurvDeviceDeploy::getId, survDeviceDeploy.getId())
+ .set(SurvDeviceDeploy::getLastsyncTime, nowTime));
+
+ //保存土壤历史表
+ if(kDateTime == null || !DataTime.equals(DateUtil.format(kDateTime,"yyyy-MM-dd HH:mm:ss"))){
+ SurvHisdataFlowmeter hisdataFlowmeter = new SurvHisdataFlowmeter();
+ BeanUtil.copyProperties(flowmeter,hisdataFlowmeter);
+ hisdataFlowmeter.setId(IdUtil.getSnowflakeNextIdStr());
+ hisdataFlowmeter.setCreateTime(nowTime);
+ flowmeterService.save(hisdataFlowmeter);
+ }else{
+ String dateStr = kDateTime!=null?DateUtil.format(kDateTime,"yyyy-MM-dd HH:mm:ss"):"";
+ log.error("****** 跳过,数据日期为:{},已存在于土壤历史表******",dateStr);
+ }
+ }
+
+ //更新设备的上次更新时间
+ deviceDeployService.update(new LambdaUpdateWrapper()
+ .eq(SurvDeviceDeploy::getId, survDeviceDeploy.getId())//只能根据设备号更新,因为存在单个设备同时对应土壤空气的情况
+ .set(SurvDeviceDeploy::getLastsyncTime, nowTime));
+
+ //处理报警
+ if(survDeviceDeploy != null){
+ alertRecordService.saveBaojingV2(baowenMap,survDeviceDeploy,deviceDeployMap);
+ }
+ }
+
+
+ public SurvTransdataFlowmeter getOneByDeviceId(String deployId) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
+ queryWrapper.eq(SurvTransdataFlowmeter::getDeployId,deployId).last("limit 1");
+ return getOne(queryWrapper);
+ }
+}
diff --git a/src/main/java/com/lanhai/task/MultithreadTask.java b/src/main/java/com/lanhai/task/MultithreadTask.java
index f206cda..1108cee 100644
--- a/src/main/java/com/lanhai/task/MultithreadTask.java
+++ b/src/main/java/com/lanhai/task/MultithreadTask.java
@@ -66,6 +66,8 @@ public class MultithreadTask {
deviceType.add(PollutionConstants.AIR_SURV);
deviceType.add(PollutionConstants.SOIL_SURV);
deviceType.add(PollutionConstants.WATER_QULITY);
+ deviceType.add(PollutionConstants.FLOWMETER);
+
List protocolList = new ArrayList(){
{add(IotConstants.xph_v2);
add(IotConstants.tuya_standard);
diff --git a/src/main/java/com/lanhai/util/SdrkUtils.java b/src/main/java/com/lanhai/util/SdrkUtils.java
index 8ca57df..401c167 100644
--- a/src/main/java/com/lanhai/util/SdrkUtils.java
+++ b/src/main/java/com/lanhai/util/SdrkUtils.java
@@ -2,6 +2,9 @@ package com.lanhai.util;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
+import com.lanhai.constant.PollutionConstants;
+import com.lanhai.enums.DeviceDeployEnum;
+import com.lanhai.service.*;
import com.xxl.job.core.context.XxlJobHelper;
import com.lanhai.constant.IotConstants;
import com.lanhai.entity.SurvConfig;
@@ -12,9 +15,6 @@ import com.lanhai.o.iot.renke.RenkeDataRealTimeDetail;
import com.lanhai.o.iot.renke.RenkeDataRealTimePack;
import com.lanhai.o.vo.HttpResponseVo;
import com.lanhai.o.vo.VOIotAccess;
-import com.lanhai.service.ISurvSurvConfigService;
-import com.lanhai.service.IScEquZhibiaoService;
-import com.lanhai.service.ISurvTransdataSoilService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.RedisTemplate;
@@ -25,10 +25,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -44,6 +41,7 @@ public class SdrkUtils {
static ISurvSurvConfigService configService = SpringContextUtil.getBean(ISurvSurvConfigService.class);
static IScEquZhibiaoService scEquZhibiaoService = SpringContextUtil.getBean(IScEquZhibiaoService.class);
static ISurvTransdataSoilService survTransdataSoilService = SpringContextUtil.getBean(ISurvTransdataSoilService.class);
+ static ISurvTransdataFlowmeterService flowmeterService = SpringContextUtil.getBean(ISurvTransdataFlowmeterService.class);
private static String domain = "http://www.0531yun.com";
@@ -96,8 +94,14 @@ public class SdrkUtils {
}
}
}
+
if(dataMap.size()>1){//不值包含mn
- survTransdataSoilService.saveBaowen(dataMap, deploy,deviceDeployMap);
+ if(DeviceDeployEnum.SURV_SOIL.getType().equals(deploy.getDeployType())){//土壤监测设备
+ survTransdataSoilService.saveBaowen(dataMap, deploy,deviceDeployMap);
+ }else if(DeviceDeployEnum.FLOWMETER.getType().equals(deploy.getDeployType())){
+ flowmeterService.saveBaowen(dataMap, deploy,deviceDeployMap);
+ }
+
}
}
}
@@ -223,11 +227,12 @@ public class SdrkUtils {
return null;
}
String token = getToken(voIotAccess.getAppId(),voIotAccess.getAppSecret());
- String url = domain + "/api/data/getRealTimeDataByDeviceAddr?deviceAddrs={deviceAddrs}";
+ String url = domain + "/api/data/getRealTimeDataByDeviceAddr?deviceAddrs={deviceAddrs}&rc={rc}";
Map headerMap = new HashMap<>();
headerMap.put("authorization",token);
Map requestMap = new HashMap<>();
requestMap.put("deviceAddrs",deploy.getDeployCode());
+ requestMap.put("rc", UUID.randomUUID().toString().replace("-",""));
String result = HttpReqestUtils.getExchangeImgs(url,requestMap,headerMap);
XxlJobHelper.log("===============实时数据返回:{}===========",result);
log.warn("===============实时数据返回:{}===========",result);