Browse Source

新建项目

523096025 1 year ago
parent
commit
7ca9f988e1

+ 16 - 16
huimv-env-common/src/main/java/com/huimv/env/common/config/ApiPrefixAutoConfiguration.java

@@ -1,16 +1,16 @@
-//package com.huimv.env.common.config;
-//
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.web.bind.annotation.RestController;
-//import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
-//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-//
-//@Configuration
-//public class ApiPrefixAutoConfiguration implements WebMvcConfigurer {
-//
-//    @Override
-//    public void configurePathMatch(PathMatchConfigurer configurer) {
-//        configurer.addPathPrefix("",  c -> c.isAnnotationPresent(RestController.class));
-//    }
-//
-//}
+package com.huimv.env.common.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class ApiPrefixAutoConfiguration implements WebMvcConfigurer {
+
+    @Override
+    public void configurePathMatch(PathMatchConfigurer configurer) {
+        configurer.addPathPrefix("huimvAdmin",  c -> c.isAnnotationPresent(RestController.class));
+    }
+
+}

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

@@ -0,0 +1,27 @@
+<?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>
+
+    <select id="listCount" resultType="com.huimv.env.common.entity.dto.EnergyDto">
+        select Convert((IFNUll(sum(w.water_value),'0')),DECIMAL(10,2)) 'waterCount',Convert((IFNUll(sum(e.electricity_value),'0')),DECIMAL(10,2)) 'electricityCount',
+        w.create_date 'createDate',w.unit_id 'unitId',w.farm_id 'farmId'
+        from energy_water w inner join energy_electricity e on w.unit_id=e.unit_id
+        ${ew.customSqlSegment}
+        GROUP BY w.unit_id
+        ORDER BY w.unit_id ASC
+    </select>
+</mapper>

+ 1 - 1
huimv-env-device/pom.xml

@@ -11,7 +11,7 @@
     <modelVersion>4.0.0</modelVersion>
 
 <!--    <groupId>com.huimv</groupId>-->
-    <artifactId>huimv-env-device</artifactId>
+    <artifactId>huimv-data-env-device</artifactId>
     <version>0.0.1-SNAPSHOT</version>
 
     <dependencies>

+ 45 - 45
huimv-env-device/src/main/java/com/huimv/env/device/config/ConfigBean.java

@@ -1,45 +1,45 @@
-package com.huimv.env.device.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-@ConfigurationProperties(prefix = "config")
-@PropertySource("classpath:conf/config.properties")
-@Component
-public class ConfigBean {
-    private String fault;
-    private String act;
-
-    public String getFault() {
-        return fault;
-    }
-
-    public void setFault(String fault) {
-        this.fault = fault;
-    }
-
-    public String getAct() {
-        return act;
-    }
-
-    public void setAct(String act) {
-        this.act = act;
-    }
-
-    @Override
-    public String toString() {
-        return "ConfigBean{" +
-                "fault='" + fault + '\'' +
-                ", act='" + act + '\'' +
-                '}';
-    }
-}
+//package com.huimv.env.device.config;
+//
+//import org.springframework.boot.context.properties.ConfigurationProperties;
+//import org.springframework.context.annotation.PropertySource;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * @Project : huimv.shiwan
+// * @Package : com.huimv.biosafety.uface.controller
+// * @Description : TODO
+// * @Version : 1.0
+// * @Author : ZhuoNing
+// * @Create : 2020-12-25
+// **/
+//@ConfigurationProperties(prefix = "config")
+//@PropertySource("classpath:conf/config.properties")
+//@Component
+//public class ConfigBean {
+//    private String fault;
+//    private String act;
+//
+//    public String getFault() {
+//        return fault;
+//    }
+//
+//    public void setFault(String fault) {
+//        this.fault = fault;
+//    }
+//
+//    public String getAct() {
+//        return act;
+//    }
+//
+//    public void setAct(String act) {
+//        this.act = act;
+//    }
+//
+//    @Override
+//    public String toString() {
+//        return "ConfigBean{" +
+//                "fault='" + fault + '\'' +
+//                ", act='" + act + '\'' +
+//                '}';
+//    }
+//}

+ 87 - 87
huimv-env-device/src/main/java/com/huimv/env/device/config/WeChatMessageHelperTest.java

@@ -1,87 +1,87 @@
-package com.huimv.env.device.config;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
-import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
-import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
-import org.springframework.stereotype.Component;
- 
-import java.util.ArrayList;
-import java.util.logging.Logger;
-
-@Component
-public class WeChatMessageHelperTest {
- 
-    private static WxMaService wxMaService = new WxMaServiceImpl();
- 
-    /**
-     * 发送小程序订阅消息
-     * @param appletsSubType 小程序类型(developer为开发版、trial为体验版、formal为正式版)
-     * @param appSubTempId 订阅消息模板id
-     * @param appSubPagePath 跳转小程序地址
-     * @param appletsAppid 小程序appId
-     * @param appletsSecret 小程序secret
-     * @param appletsSubToken 小程序token
-     * @param appletsSubAesKey 小程序EncodingAESKey
-     * @param appletsSubDataFormat 数据格式
-     * @param wxMaSubMsgList 消息列表
-     * @param userIds 接收用户id
-     * @return void
-     * @version V1.0
-     * modify history
-     */
-    public static void sendWechatAppSubMessage(String appletsSubType, String appSubTempId, String appSubPagePath, String appletsAppid, String appletsSecret, String appletsSubToken, String appletsSubAesKey, String appletsSubDataFormat, ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubMsgList, String... userIds) throws Exception {
- 
-        /*
-        // wxMaSubMsgList组装示例,在业务里组装好,再调用系统消息发送工具,系统消息判断是否需要发送小程序订阅消息进行分发,此处不做展示
-        ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubscribeData = new ArrayList<>();
-        WxMaSubscribeMessage.MsgData characterString1 = new WxMaSubscribeMessage.MsgData();
-        characterString1.setName("character_string1");
-        characterString1.setValue("DR15325419846198615651");
-        wxMaSubscribeData.add(characterString1);
-        WxMaSubscribeMessage.MsgData thing3 = new WxMaSubscribeMessage.MsgData();
-        thing3.setName("thing3");
-        thing3.setValue("请XXXXXXXX");
-        wxMaSubscribeData.add(thing3);
-        WxMaSubscribeMessage.MsgData time5 = new WxMaSubscribeMessage.MsgData();
-        time5.setName("time5");
-        time5.setValue(DateUtil.format(new Date(),DateUtil.DATE_TIME_FORMAT));
-        wxMaSubscribeData.add(time5);
-        */
- 
-        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
-        // 小程序appId
-        config.setAppid(appletsAppid);
-        // 小程序secret
-        config.setSecret(appletsSecret);
-        // 小程序token
-        config.setToken(appletsSubToken);
-        // 小程序EncodingAESKey
-        config.setAesKey(appletsSubAesKey);
-        // 数据格式
-        config.setMsgDataFormat(appletsSubDataFormat);
-        wxMaService.setWxMaConfig(config);
- 
-        for (String userId : userIds) {
-            // TODO:根据用户id获取OpenId,测试时写死
-            WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage();
-            // 要推送的用户openid
-            subscribeMessage.setToUser("openId");
-            // 小程序类型(developer为开发版、trial为体验版、formal为正式版),默认为formal(正式版)
-            subscribeMessage.setMiniprogramState(appletsSubType);
-            // 订阅消息模板id
-            subscribeMessage.setTemplateId(appSubTempId);
-            // 跳转小程序地址
-            subscribeMessage.setPage(appSubPagePath);
-            // 消息列表(组装示例请看方法开始注释部分)
-            subscribeMessage.setData(wxMaSubMsgList);
- 
-            try {
-                // 发送订阅消息
-                wxMaService.getMsgService().sendSubscribeMsg(subscribeMessage);
-            } catch (Exception e) {
-                System.out.println("微信小程序订阅消息推送失败,接收userId: " + userId+"      "+ e);
-            }
-        }
-    }
-}
+//package com.huimv.env.device.config;
+//
+//import cn.binarywang.wx.miniapp.api.WxMaService;
+//import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+//import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
+//import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.ArrayList;
+//import java.util.logging.Logger;
+//
+//@Component
+//public class WeChatMessageHelperTest {
+//
+//    private static WxMaService wxMaService = new WxMaServiceImpl();
+//
+//    /**
+//     * 发送小程序订阅消息
+//     * @param appletsSubType 小程序类型(developer为开发版、trial为体验版、formal为正式版)
+//     * @param appSubTempId 订阅消息模板id
+//     * @param appSubPagePath 跳转小程序地址
+//     * @param appletsAppid 小程序appId
+//     * @param appletsSecret 小程序secret
+//     * @param appletsSubToken 小程序token
+//     * @param appletsSubAesKey 小程序EncodingAESKey
+//     * @param appletsSubDataFormat 数据格式
+//     * @param wxMaSubMsgList 消息列表
+//     * @param userIds 接收用户id
+//     * @return void
+//     * @version V1.0
+//     * modify history
+//     */
+//    public static void sendWechatAppSubMessage(String appletsSubType, String appSubTempId, String appSubPagePath, String appletsAppid, String appletsSecret, String appletsSubToken, String appletsSubAesKey, String appletsSubDataFormat, ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubMsgList, String... userIds) throws Exception {
+//
+//        /*
+//        // wxMaSubMsgList组装示例,在业务里组装好,再调用系统消息发送工具,系统消息判断是否需要发送小程序订阅消息进行分发,此处不做展示
+//        ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubscribeData = new ArrayList<>();
+//        WxMaSubscribeMessage.MsgData characterString1 = new WxMaSubscribeMessage.MsgData();
+//        characterString1.setName("character_string1");
+//        characterString1.setValue("DR15325419846198615651");
+//        wxMaSubscribeData.add(characterString1);
+//        WxMaSubscribeMessage.MsgData thing3 = new WxMaSubscribeMessage.MsgData();
+//        thing3.setName("thing3");
+//        thing3.setValue("请XXXXXXXX");
+//        wxMaSubscribeData.add(thing3);
+//        WxMaSubscribeMessage.MsgData time5 = new WxMaSubscribeMessage.MsgData();
+//        time5.setName("time5");
+//        time5.setValue(DateUtil.format(new Date(),DateUtil.DATE_TIME_FORMAT));
+//        wxMaSubscribeData.add(time5);
+//        */
+//
+//        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+//        // 小程序appId
+//        config.setAppid(appletsAppid);
+//        // 小程序secret
+//        config.setSecret(appletsSecret);
+//        // 小程序token
+//        config.setToken(appletsSubToken);
+//        // 小程序EncodingAESKey
+//        config.setAesKey(appletsSubAesKey);
+//        // 数据格式
+//        config.setMsgDataFormat(appletsSubDataFormat);
+//        wxMaService.setWxMaConfig(config);
+//
+//        for (String userId : userIds) {
+//            // TODO:根据用户id获取OpenId,测试时写死
+//            WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage();
+//            // 要推送的用户openid
+//            subscribeMessage.setToUser("openId");
+//            // 小程序类型(developer为开发版、trial为体验版、formal为正式版),默认为formal(正式版)
+//            subscribeMessage.setMiniprogramState(appletsSubType);
+//            // 订阅消息模板id
+//            subscribeMessage.setTemplateId(appSubTempId);
+//            // 跳转小程序地址
+//            subscribeMessage.setPage(appSubPagePath);
+//            // 消息列表(组装示例请看方法开始注释部分)
+//            subscribeMessage.setData(wxMaSubMsgList);
+//
+//            try {
+//                // 发送订阅消息
+//                wxMaService.getMsgService().sendSubscribeMsg(subscribeMessage);
+//            } catch (Exception e) {
+//                System.out.println("微信小程序订阅消息推送失败,接收userId: " + userId+"      "+ e);
+//            }
+//        }
+//    }
+//}

+ 175 - 175
huimv-env-device/src/main/java/com/huimv/env/device/config/WebSocket.java

@@ -1,175 +1,175 @@
-package com.huimv.env.device.config;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import javax.websocket.*;
-import javax.websocket.server.PathParam;
-import javax.websocket.server.ServerEndpoint;
-import java.io.IOException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.concurrent.ConcurrentHashMap;
-
-//注册成组件
-@Component
-//定义websocket服务器端,它的功能主要是将目前的类定义成一个websocket服务器端。注解的值将被用于监听用户连接的终端访问URL地址
-@Slf4j
-@ServerEndpoint("/websocket/{farmCode}")
-public class WebSocket {
-    //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
-    private static int onlineCount = 0;
-    //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
-    private static ConcurrentHashMap<String, WebSocket> webSocketSet = new ConcurrentHashMap<String, WebSocket>();
-    //与某个客户端的连接会话,需要通过它来给客户端发送数据
-    private Session WebSocketsession;
-    //当前发消息的人员编号
-    private String farmCode = "";
-
-
-
-    @OnOpen
-    public void onOpen(@PathParam(value = "farmCode") String param, Session WebSocketsession, EndpointConfig config) {
-        System.out.println(param);
-        farmCode = param;//接收到发送消息的人员编号
-        this.WebSocketsession = WebSocketsession;
-        webSocketSet.put(param, this);//加入map中
-        addOnlineCount();           //在线数加1
-        System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
-    }
-
-
-    /**
-     * 连接关闭调用的方法
-     */
-    @OnClose
-    public void onClose() {
-        if (!farmCode.equals("")) {
-            webSocketSet.remove(farmCode);  //从set中删除
-            subOnlineCount();           //在线数减1
-            System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
-        }
-    }
-
-
-    /**
-     * 收到客户端消息后调用的方法
-     *
-     * @param message 客户端发送过来的消息
-     * @param session 可选的参数
-     */
-    @SuppressWarnings("unused")
-//	@OnMessage
-    public void onMessage(String message, Session session) {
-        System.out.println("来自客户端的消息:" + message);
-//        session.get
-        //群发消息
-        if (1 < 2) {
-            sendAll(message);
-        } else {
-            //给指定的人发消息
-            sendToUser(message);
-        }
-    }
-
-
-    /**
-     * 给指定的人发送消息
-     * @param message
-     */
-    @OnMessage
-    public void sendToUser(String message) {
-        String sendfarmCode = message.split(",")[1];
-        String sendMessage = message.split(",")[0];
-        String now = getNowTime();
-        try {
-            if (webSocketSet.get(sendfarmCode) != null) {
-                webSocketSet.get(sendfarmCode).sendMessage(now + "用户" + farmCode + "发来消息:" + " <br/> " + sendMessage);
-            } else {
-                System.out.println("当前用户不在线");
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 给所有人发消息
-     * @param message
-     */
-    private void sendAll(String message) {
-        String now = getNowTime();
-        String sendMessage = message.split("[|]")[0];
-        //遍历HashMap
-        for (String key : webSocketSet.keySet()) {
-            try {
-                //判断接收用户是否是当前发消息的用户
-                if (!farmCode.equals(key)) {
-                    webSocketSet.get(key).sendMessage(now + "用户" + farmCode + "发来消息:" + " <br/> " + sendMessage);
-                    System.out.println("key = " + key);
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-
-
-
-    /**
-     * 获取当前时间
-     *
-     * @return
-     */
-    private String getNowTime() {
-        Date date = new Date();
-        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String time = format.format(date);
-        return time;
-    }
-    /**
-     * 发生错误时调用
-     *
-     * @param session
-     * @param error
-     */
-    @OnError
-    public void onError(Session session, Throwable error) {
-        System.out.println("发生错误");
-        error.printStackTrace();
-    }
-
-
-    /**
-     * 这个方法与上面几个方法不一样。没有用注解,是根据自己需要添加的方法。
-     *
-     * @param message
-     * @throws IOException
-     */
-    public void sendMessage(String message) throws IOException {
-        this.WebSocketsession.getBasicRemote().sendText(message);
-        //this.session.getAsyncRemote().sendText(message);
-    }
-
-
-    public static synchronized int getOnlineCount() {
-        return onlineCount;
-    }
-
-
-    public static synchronized void addOnlineCount() {
-        WebSocket.onlineCount++;
-    }
-
-
-    public static synchronized void subOnlineCount() {
-        WebSocket.onlineCount--;
-    }
-
-
-
-
-}
+//package com.huimv.env.device.config;
+//
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.stereotype.Component;
+//
+//import javax.websocket.*;
+//import javax.websocket.server.PathParam;
+//import javax.websocket.server.ServerEndpoint;
+//import java.io.IOException;
+//import java.text.DateFormat;
+//import java.text.SimpleDateFormat;
+//import java.util.Date;
+//import java.util.concurrent.ConcurrentHashMap;
+//
+////注册成组件
+//@Component
+////定义websocket服务器端,它的功能主要是将目前的类定义成一个websocket服务器端。注解的值将被用于监听用户连接的终端访问URL地址
+//@Slf4j
+//@ServerEndpoint("/websocket/{farmCode}")
+//public class WebSocket {
+//    //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
+//    private static int onlineCount = 0;
+//    //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
+//    private static ConcurrentHashMap<String, WebSocket> webSocketSet = new ConcurrentHashMap<String, WebSocket>();
+//    //与某个客户端的连接会话,需要通过它来给客户端发送数据
+//    private Session WebSocketsession;
+//    //当前发消息的人员编号
+//    private String farmCode = "";
+//
+//
+//
+//    @OnOpen
+//    public void onOpen(@PathParam(value = "farmCode") String param, Session WebSocketsession, EndpointConfig config) {
+//        System.out.println(param);
+//        farmCode = param;//接收到发送消息的人员编号
+//        this.WebSocketsession = WebSocketsession;
+//        webSocketSet.put(param, this);//加入map中
+//        addOnlineCount();           //在线数加1
+//        System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
+//    }
+//
+//
+//    /**
+//     * 连接关闭调用的方法
+//     */
+//    @OnClose
+//    public void onClose() {
+//        if (!farmCode.equals("")) {
+//            webSocketSet.remove(farmCode);  //从set中删除
+//            subOnlineCount();           //在线数减1
+//            System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
+//        }
+//    }
+//
+//
+//    /**
+//     * 收到客户端消息后调用的方法
+//     *
+//     * @param message 客户端发送过来的消息
+//     * @param session 可选的参数
+//     */
+//    @SuppressWarnings("unused")
+////	@OnMessage
+//    public void onMessage(String message, Session session) {
+//        System.out.println("来自客户端的消息:" + message);
+////        session.get
+//        //群发消息
+//        if (1 < 2) {
+//            sendAll(message);
+//        } else {
+//            //给指定的人发消息
+//            sendToUser(message);
+//        }
+//    }
+//
+//
+//    /**
+//     * 给指定的人发送消息
+//     * @param message
+//     */
+//    @OnMessage
+//    public void sendToUser(String message) {
+//        String sendfarmCode = message.split(",")[1];
+//        String sendMessage = message.split(",")[0];
+//        String now = getNowTime();
+//        try {
+//            if (webSocketSet.get(sendfarmCode) != null) {
+//                webSocketSet.get(sendfarmCode).sendMessage(now + "用户" + farmCode + "发来消息:" + " <br/> " + sendMessage);
+//            } else {
+//                System.out.println("当前用户不在线");
+//            }
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+//    }
+//
+//
+//    /**
+//     * 给所有人发消息
+//     * @param message
+//     */
+//    private void sendAll(String message) {
+//        String now = getNowTime();
+//        String sendMessage = message.split("[|]")[0];
+//        //遍历HashMap
+//        for (String key : webSocketSet.keySet()) {
+//            try {
+//                //判断接收用户是否是当前发消息的用户
+//                if (!farmCode.equals(key)) {
+//                    webSocketSet.get(key).sendMessage(now + "用户" + farmCode + "发来消息:" + " <br/> " + sendMessage);
+//                    System.out.println("key = " + key);
+//                }
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+//    }
+//
+//
+//
+//
+//    /**
+//     * 获取当前时间
+//     *
+//     * @return
+//     */
+//    private String getNowTime() {
+//        Date date = new Date();
+//        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String time = format.format(date);
+//        return time;
+//    }
+//    /**
+//     * 发生错误时调用
+//     *
+//     * @param session
+//     * @param error
+//     */
+//    @OnError
+//    public void onError(Session session, Throwable error) {
+//        System.out.println("发生错误");
+//        error.printStackTrace();
+//    }
+//
+//
+//    /**
+//     * 这个方法与上面几个方法不一样。没有用注解,是根据自己需要添加的方法。
+//     *
+//     * @param message
+//     * @throws IOException
+//     */
+//    public void sendMessage(String message) throws IOException {
+//        this.WebSocketsession.getBasicRemote().sendText(message);
+//        //this.session.getAsyncRemote().sendText(message);
+//    }
+//
+//
+//    public static synchronized int getOnlineCount() {
+//        return onlineCount;
+//    }
+//
+//
+//    public static synchronized void addOnlineCount() {
+//        WebSocket.onlineCount++;
+//    }
+//
+//
+//    public static synchronized void subOnlineCount() {
+//        WebSocket.onlineCount--;
+//    }
+//
+//
+//
+//
+//}

+ 45 - 45
huimv-env-device/src/main/java/com/huimv/env/device/producer/Producer.java

@@ -1,45 +1,45 @@
-package com.huimv.env.device.producer;
-
-import com.alibaba.fastjson.JSONObject;
-import com.huimv.env.common.utils.Const;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-@Component
-@Slf4j
-public class Producer {
-    @Autowired
-    RabbitTemplate rabbitTemplate;  //使用RabbitTemplate,这提供了接收/发送等等方法
-
-    /**
-     * @Method      : sendTempAskToMQ
-     * @Description : 
-     * @Params      : [askText]
-     * @Return      : java.lang.String
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/8/17       
-     * @Time        : 19:29
-     */
-//    public String sendSensorAskToMQ(JSONObject sensorJo){
-//        Map map = new HashMap();
-//        map.put("sensor",sensorJo);
-//        rabbitTemplate.convertAndSend(Const.EXCHANGE_SENSOR, Const.ROUTING_KEY_SENSOR, map);
-//        return "ok";
-//    }
-
-
-}
+//package com.huimv.env.device.producer;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.huimv.env.common.utils.Const;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.HashMap;
+//import java.util.Map;
+//
+///**
+// * @Project : huimv.shiwan
+// * @Package : com.huimv.biosafety.uface.controller
+// * @Description : TODO
+// * @Version : 1.0
+// * @Author : ZhuoNing
+// * @Create : 2020-12-25
+// **/
+//@Component
+//@Slf4j
+//public class Producer {
+//    @Autowired
+//    RabbitTemplate rabbitTemplate;  //使用RabbitTemplate,这提供了接收/发送等等方法
+//
+//    /**
+//     * @Method      : sendTempAskToMQ
+//     * @Description :
+//     * @Params      : [askText]
+//     * @Return      : java.lang.String
+//     *
+//     * @Author      : ZhuoNing
+//     * @Date        : 2022/8/17
+//     * @Time        : 19:29
+//     */
+////    public String sendSensorAskToMQ(JSONObject sensorJo){
+////        Map map = new HashMap();
+////        map.put("sensor",sensorJo);
+////        rabbitTemplate.convertAndSend(Const.EXCHANGE_SENSOR, Const.ROUTING_KEY_SENSOR, map);
+////        return "ok";
+////    }
+//
+//
+//}

+ 18 - 8
huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DataServiceImpl.java

@@ -5,8 +5,10 @@ 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.EnergyEnvDevice;
 import com.huimv.env.common.entity.EnergyWater;
 import com.huimv.env.common.service.IEnergyElectricityService;
+import com.huimv.env.common.service.IEnergyEnvDeviceService;
 import com.huimv.env.common.service.IEnergyWaterService;
 import com.huimv.env.device.service.DataService;
 import org.checkerframework.checker.units.qual.A;
@@ -26,6 +28,9 @@ public class DataServiceImpl implements DataService {
 
     @Autowired
     private IEnergyWaterService energyWaterService ;
+
+    @Autowired
+    private IEnergyEnvDeviceService energyEnvDeviceService ;
     @Override
     public void saveData(String payload, String timestamp, String nodeEui) throws ParseException {
        // 4823290F01000000 01016B13
@@ -37,17 +42,22 @@ public class DataServiceImpl implements DataService {
         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);
+        EnergyEnvDevice deviceCode = energyEnvDeviceService.getOne(new QueryWrapper<EnergyEnvDevice>().eq("device_code", nodeEui));
+        if (ObjectUtil.isNotEmpty(deviceCode)){
+            Integer farmId = deviceCode.getFarmId();
+            if ("01".equals(devType)){
+                saveShui(voltage,originalData,timestamp,nodeEui,payload,farmId);
+            }
+            if ("02".equals(devType)){
+                saveDian(voltage,originalData,timestamp,nodeEui,payload,farmId);
+            }
         }
+
     }
 
 
 
-    private void saveDian(String voltage, Integer originalData, String timestamp, String nodeEui,String payload) throws ParseException {
+    private void saveDian(String voltage, Integer originalData, String timestamp, String nodeEui,String payload,Integer farmId) 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)){
@@ -61,7 +71,7 @@ public class DataServiceImpl implements DataService {
         Date date = new Date();
         envWater.setCreateDate(date);
         envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
-        envWater.setFarmId(21);
+        envWater.setFarmId(farmId);
         envWater.setOriginalValue(originalData+"");
         envWater.setChipCode(nodeEui);
         envWater.setOriginalDate(payload);
@@ -74,7 +84,7 @@ public class DataServiceImpl implements DataService {
         energyElectricityService.save(envWater);
     }
 
-    private void saveShui(String voltage, Integer originalData, String timestamp, String nodeEui,String payload) throws ParseException {
+    private void saveShui(String voltage, Integer originalData, String timestamp, String nodeEui,String payload,Integer farmId) 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)){

+ 4 - 20
huimv-env-device/src/main/resources/application-prod.yml

@@ -41,26 +41,10 @@ spring:
     #确认消息已发送到队列(Queue)
     publisher-returns: true
 
-  #redis
-#  redis:
-#    database: 0
-#    host: 192.168.1.68
-#    port: 6379
-#    password: hm123456
-#    timeout: 5000ms
-#    jedis:
-#      pool:
-#        max-active: 20
-#        max-wait: -1
-#        max-idle: 10
-#        min-idle: 0
-#    lettuce:
-#      pool:
-#        max-active: 3
-#        min-idle: 2
-#        max-idle: 3
-#        max-wait: 1
-#      shutdown-timeout: 100
+  redis:
+    host: 122.112.224.199
+    port: 6379
+    password: hm123456
 
 #  data:
 #    redis:

+ 0 - 61
huimv-env-device/src/test/java/com/huimv/env/device/service/DeviceTest.java

@@ -1,61 +0,0 @@
-package com.huimv.env.device.service;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.huimv.env.device.config.ConfigBean;
-//import com.huimv.env.device.listener.DeviceListener;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import javax.annotation.security.RunAs;
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-@SpringBootTest
-@RunWith(SpringRunner.class)
-public class DeviceTest {
-//    @Autowired
-//    private Show show;
-    @Autowired
-    private ConfigBean configBean;
-
-//    @Test
-//    public void test1(){
-//        show.show1();
-//
-//        JSONArray testJa = new JSONArray();
-//        JSONObject testJo = new JSONObject();
-//        testJa.add(testJo);
-//        testJo.put("id",0);
-//        testJo.put("fault","初始化");
-//        JSONObject testJo2 = new JSONObject();
-//        testJa.add(testJo2);
-//        testJo2.put("id",0);
-//        testJo2.put("fault","初始化");
-//        System.out.println("testJa="+testJa.toJSONString());
-//    }
-
-//    @Test
-//    public void test2() {
-//        show.show2();
-//    }
-
-    @Test
-    public void test3(){
-        String act = configBean.getAct();
-        String fault = configBean.getFault();
-        System.out.println("act="+act);
-        System.out.println("fault="+fault);
-    }
-}

+ 1 - 1
huimv-env-input/pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>huimv-env-input</artifactId>
+    <artifactId>huimv-data-env-input</artifactId>
     <version>0.0.1-SNAPSHOT</version>
 
     <dependencies>

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

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