Browse Source

新建项目

523096025 1 year ago
parent
commit
08ffc7ad77
25 changed files with 439 additions and 8 deletions
  1. 67 0
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnergyElectricity.java
  2. 67 0
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnergyWater.java
  3. 1 1
      huimv-env-common/src/main/java/com/huimv/env/common/entity/vo/AllData.java
  4. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnergyElectricityMapper.java
  5. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnergyWaterMapper.java
  6. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/IEnergyElectricityService.java
  7. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/IEnergyWaterService.java
  8. 20 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnergyElectricityServiceImpl.java
  9. 20 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnergyWaterServiceImpl.java
  10. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyDataMapper.xml
  11. 19 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyElectricityMapper.xml
  12. 19 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyWaterMapper.xml
  13. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvDataMapper.xml
  14. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvDeviceMapper.xml
  15. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvWarningInfoMapper.xml
  16. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/SysAccountMultilevelMapper.xml
  17. 0 0
      huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/UserMapper.xml
  18. 5 1
      huimv-env-device/src/main/java/com/huimv/env/device/config/WebSocketConfig.java
  19. 16 3
      huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java
  20. 7 0
      huimv-env-device/src/main/java/com/huimv/env/device/service/DataService.java
  21. 117 0
      huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DataServiceImpl.java
  22. 1 2
      huimv-env-input/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java
  23. 2 1
      huimv-env-input/src/main/java/com/huimv/env/input/controller/ReceiveData.java
  24. 6 0
      huimv-env-input/src/main/java/com/huimv/env/input/service/DataService.java
  25. 8 0
      huimv-env-input/src/main/java/com/huimv/env/input/service/impl/DataServiceImpl.java

+ 67 - 0
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnergyElectricity.java

@@ -0,0 +1,67 @@
+package com.huimv.env.common.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("energy_electricity")
+public class EnergyElectricity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 计录值
+     */
+    private String electricityValue;
+
+    /**
+     * 原始值
+     */
+    private String originalValue;
+
+    /**
+     * 原始数据
+     */
+    private String originalDate;
+
+    /**
+     * 房舍id
+     */
+    private Integer unitId;
+
+    private Integer farmId;
+
+    private String other1;
+
+    private String other2;
+
+    private String other3;
+    private String voltage;
+    private String chipCode;
+
+    private Date createDate;
+    private Date uploadDate;
+
+
+}

+ 67 - 0
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnergyWater.java

@@ -0,0 +1,67 @@
+package com.huimv.env.common.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("energy_water")
+public class EnergyWater implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 计录值
+     */
+    private String waterValue;
+
+    /**
+     * 原始值
+     */
+    private String originalValue;
+
+    /**
+     * 原始数据
+     */
+    private String originalDate;
+
+    /**
+     * 房舍id
+     */
+    private Integer unitId;
+
+    private Integer farmId;
+
+    private String other1;
+
+    private String other2;
+
+    private String other3;
+    private String voltage;
+    private String chipCode;
+
+    private Date createDate;
+    private Date uploadDate;
+
+
+}

+ 1 - 1
huimv-env-common/src/main/java/com/huimv/env/common/entity/vo/AllData.java

@@ -4,7 +4,7 @@ import lombok.Data;
 
 @Data
 public class AllData {
-    private String trceId;
+    private String traceId;
     private String messageVersion;
     private String event;
     private DataContent content;

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnergyElectricityMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.mapper;
+
+import com.huimv.env.common.entity.EnergyElectricity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+public interface EnergyElectricityMapper extends BaseMapper<EnergyElectricity> {
+
+}

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnergyWaterMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.mapper;
+
+import com.huimv.env.common.entity.EnergyWater;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+public interface EnergyWaterMapper extends BaseMapper<EnergyWater> {
+
+}

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/IEnergyElectricityService.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.service;
+
+import com.huimv.env.common.entity.EnergyElectricity;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+public interface IEnergyElectricityService extends IService<EnergyElectricity> {
+
+}

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/IEnergyWaterService.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.service;
+
+import com.huimv.env.common.entity.EnergyWater;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+public interface IEnergyWaterService extends IService<EnergyWater> {
+
+}

+ 20 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnergyElectricityServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.env.common.service.impl;
+
+import com.huimv.env.common.entity.EnergyElectricity;
+import com.huimv.env.common.mapper.EnergyElectricityMapper;
+import com.huimv.env.common.service.IEnergyElectricityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+@Service
+public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityMapper, EnergyElectricity> implements IEnergyElectricityService {
+
+}

+ 20 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnergyWaterServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.env.common.service.impl;
+
+import com.huimv.env.common.entity.EnergyWater;
+import com.huimv.env.common.mapper.EnergyWaterMapper;
+import com.huimv.env.common.service.IEnergyWaterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-14
+ */
+@Service
+public class EnergyWaterServiceImpl extends ServiceImpl<EnergyWaterMapper, EnergyWater> implements IEnergyWaterService {
+
+}

huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/EnergyDataMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyDataMapper.xml


+ 19 - 0
huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyElectricityMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.common.mapper.EnergyElectricityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.common.entity.EnergyElectricity">
+        <id column="id" property="id" />
+        <result column="electricity_value" property="electricityValue" />
+        <result column="original_value" property="originalValue" />
+        <result column="original_date" property="originalDate" />
+        <result column="unit_id" property="unitId" />
+        <result column="farm_id" property="farmId" />
+        <result column="other1" property="other1" />
+        <result column="other2" property="other2" />
+        <result column="other3" property="other3" />
+        <result column="create_date" property="createDate" />
+    </resultMap>
+
+</mapper>

+ 19 - 0
huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnergyWaterMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.common.mapper.EnergyWaterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.common.entity.EnergyWater">
+        <id column="id" property="id" />
+        <result column="water_value" property="waterValue" />
+        <result column="original_value" property="originalValue" />
+        <result column="original_date" property="originalDate" />
+        <result column="unit_id" property="unitId" />
+        <result column="farm_id" property="farmId" />
+        <result column="other1" property="other1" />
+        <result column="other2" property="other2" />
+        <result column="other3" property="other3" />
+        <result column="create_date" property="createDate" />
+    </resultMap>
+
+</mapper>

huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/EnvDataMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvDataMapper.xml


huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/EnvDeviceMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvDeviceMapper.xml


huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/EnvWarningInfoMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/EnvWarningInfoMapper.xml


huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/SysAccountMultilevelMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/SysAccountMultilevelMapper.xml


huimv-env-common/src/main/java/resources/com/huimv/env/admin/mapper/UserMapper.xml → huimv-env-common/src/main/resources/com/huimv/env/admin/mapper/UserMapper.xml


+ 5 - 1
huimv-env-device/src/main/java/com/huimv/env/device/config/WebSocketConfig.java

@@ -1,13 +1,16 @@
+/*
 package com.huimv.env.device.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
+*/
 /**
  * websocket
  * 的配置信息
- */
+ *//*
+
 @Configuration
 public class WebSocketConfig {
 
@@ -17,3 +20,4 @@ public class WebSocketConfig {
         return new ServerEndpointExporter();
     }
 }
+*/

+ 16 - 3
huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
 import com.huimv.env.common.entity.vo.AllData;
 import com.huimv.env.common.utils.Const;
 import com.huimv.env.common.utils.MathUtil2;
+import com.huimv.env.device.service.DataService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.rabbit.annotation.RabbitHandler;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
@@ -18,17 +19,29 @@ import java.util.Map;
 public class DeviceListener {
 
     @Autowired
-    private MathUtil2 mathUtil;
+    private DataService dataService;
 
 
     @RabbitListener(queues = Const.QUEUE_ENV_SHUI_HUIMV_DATA)
     @RabbitHandler
     public void processReceive(Map<String,String> rawMap)   {
-        System.out.println(">>>>>>>>>>>>>> 11 接收数据 RawMap>>" + rawMap.toString());
+//        System.out.println(">>>>>>>>>>>>>> 11 接收数据 RawMap>>" + rawMap.toString());
         try {
             String askText = rawMap.get("askText");
             AllData allData = JSONUtil.toBean(askText, AllData.class);
-            System.out.println(allData.toString());
+            String event = allData.getEvent();
+            //时间戳
+            String timestamp = allData.getTimestamp();
+            //机器id 4823290F01000000 01016B13
+            String nodeEui = allData.getContent().getCommonMessage().getNodeEui();
+
+            if ("NODE_DATA_UP".equals(event)){
+                //数据
+                String payload = allData.getContent().getNodeUplinkPacket().getNode().getPayload();
+                dataService.saveData(payload,timestamp,nodeEui);
+            }
+
+            System.out.println("数据开始--->"+allData.toString());
         }catch (Exception e){
             System.out.println("数据异常"+e);
         }

+ 7 - 0
huimv-env-device/src/main/java/com/huimv/env/device/service/DataService.java

@@ -0,0 +1,7 @@
+package com.huimv.env.device.service;
+
+import java.text.ParseException;
+
+public interface DataService {
+    void saveData(String payload, String timestamp, String nodeEui) throws ParseException;
+}

+ 117 - 0
huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DataServiceImpl.java

@@ -0,0 +1,117 @@
+package com.huimv.env.device.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.auth0.jwt.interfaces.Payload;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.entity.EnergyElectricity;
+import com.huimv.env.common.entity.EnergyWater;
+import com.huimv.env.common.service.IEnergyElectricityService;
+import com.huimv.env.common.service.IEnergyWaterService;
+import com.huimv.env.device.service.DataService;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Service
+public class DataServiceImpl implements DataService {
+
+    @Autowired
+    private IEnergyElectricityService energyElectricityService ;
+
+    @Autowired
+    private IEnergyWaterService energyWaterService ;
+    @Override
+    public void saveData(String payload, String timestamp, String nodeEui) throws ParseException {
+       // 4823290F01000000 01016B13
+        nodeEui = nodeEui.substring(nodeEui.length()-8);
+        //6C0008 01 47 00000025
+        //01 水表 ,02电表
+        String devType = payload.substring(6, 8);
+        //电压 除十
+        String voltage = String.format("%.1f", (double)Integer.parseInt(payload.substring(8, 10),16)/10.0);
+        // 数值
+        Integer originalData = Integer.parseInt(payload.substring(10),16);
+        if ("01".equals(devType)){
+            saveShui(voltage,originalData,timestamp,nodeEui,payload);
+        }
+        if ("02".equals(devType)){
+            saveDian(voltage,originalData,timestamp,nodeEui,payload);
+        }
+    }
+
+
+
+    private void saveDian(String voltage, Integer originalData, String timestamp, String nodeEui,String payload) throws ParseException {
+        EnergyElectricity one = energyElectricityService.getOne(new QueryWrapper<EnergyElectricity>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
+        String lastData ="0";
+        if (ObjectUtil.isNotEmpty(one)){
+            lastData =  one.getOriginalValue();
+        }
+        //差值
+        Integer str =   (originalData - Integer.parseInt(lastData));
+
+        // 将时间戳字符串解析为Date对象
+        EnergyElectricity envWater = new EnergyElectricity();
+        Date date = new Date();
+        envWater.setCreateDate(date);
+        envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
+        envWater.setFarmId(21);
+        envWater.setOriginalValue(originalData+"");
+        envWater.setChipCode(nodeEui);
+        envWater.setOriginalDate(payload);
+        if(str <0 ){
+            envWater.setElectricityValue(originalData+"");
+        }else {
+            envWater.setElectricityValue(str+"");
+        }
+        envWater.setVoltage(voltage);
+        energyElectricityService.save(envWater);
+    }
+
+    private void saveShui(String voltage, Integer originalData, String timestamp, String nodeEui,String payload) throws ParseException {
+        EnergyWater one = energyWaterService.getOne(new QueryWrapper<EnergyWater>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
+        String lastData ="0";
+        if (ObjectUtil.isNotEmpty(one)){
+            lastData =  one.getOriginalValue();
+        }
+        //差值
+       Integer str =   (originalData - Integer.parseInt(lastData));
+
+        // 将时间戳字符串解析为Date对象
+        EnergyWater envWater = new EnergyWater();
+        Date date = new Date();
+        envWater.setCreateDate(date);
+        envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
+        envWater.setFarmId(21);
+        envWater.setOriginalValue(originalData+"");
+        envWater.setChipCode(nodeEui);
+        envWater.setOriginalDate(payload);
+        if(str <0 ){
+            envWater.setWaterValue(originalData+"");
+        }else {
+            envWater.setWaterValue(str+"");
+        }
+
+        envWater.setVoltage(voltage);
+
+        energyWaterService.save(envWater);
+
+    }
+
+    public static void main(String[] args) {
+
+//       String  timestamp =  ;
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");
+        System.out.println(new Date(Long.parseLong("1694678879843")));
+
+    }
+
+
+
+}

+ 1 - 2
huimv-env-input/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java

@@ -1,6 +1,5 @@
 package com.huimv.env.input;
 
-//import com.huimv.env.input.server.EnvInputServer;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -9,7 +8,7 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScans;
 
-@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service"),@ComponentScan("com.huimv.env.common.config")})
+@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service")})
 @EntityScan(value = "com.huimv.env.common.entity")
 @MapperScan("com.huimv.env.common.mapper")
 @SpringBootApplication

+ 2 - 1
huimv-env-input/src/main/java/com/huimv/env/input/controller/ReceiveData.java

@@ -15,7 +15,8 @@ public class ReceiveData {
     @Autowired
     private Producer producer;
 
-    @PostMapping("/receiveData")
+//    @PostMapping("/receiveData")
+    @PostMapping("/test")
     public void test(@RequestBody String map) {
         producer.sendShuiBiaoData(map);
     }

+ 6 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/DataService.java

@@ -0,0 +1,6 @@
+package com.huimv.env.input.service;
+
+import org.springframework.stereotype.Service;
+
+public interface DataService {
+}

+ 8 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/impl/DataServiceImpl.java

@@ -0,0 +1,8 @@
+package com.huimv.env.input.service.impl;
+
+import com.huimv.env.input.service.DataService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DataServiceImpl implements DataService {
+}