From 36932edefdbd9c48db4b99256c94c28f5f3f8a92 Mon Sep 17 00:00:00 2001
From: 张晓波 <bingbo1993@126.com>
Date: 星期三, 18 十月 2023 17:15:49 +0800
Subject: [PATCH] Merge branch 'master' of http://111.30.93.211:10101/r/supipe

---
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/impl/HelmetServiceImpl.java |    6 
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/HelmetService.java          |    3 
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/utils/ApplicationContextUtil.java          |   61 ++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/MaterialsApplication.java                                        |   15 +
 hd/pipe/materialsManage/src/main/resources/mapping/THelmetDeviceMapper.xml                                      |  131 ++++++++++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/entity/TDataSmock.java              |  122 +++++++++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeMessage.java             |   91 ++++++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/mapper/HelmetMapper.java            |    4 
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeServer.java              |   75 ++++++++
 9 files changed, 506 insertions(+), 2 deletions(-)

diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/MaterialsApplication.java b/hd/pipe/materialsManage/src/main/java/com/thhy/MaterialsApplication.java
index 9fb0f51..fe1fda3 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/MaterialsApplication.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/MaterialsApplication.java
@@ -1,18 +1,31 @@
 package com.thhy;
 
+import com.thhy.materials.modules.biz.helmet.smoke.SmokeServer;
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
+import javax.annotation.Resource;
+
 @SpringBootApplication
 @MapperScan(basePackages = {"com.thhy.materials.modules.*.*.mapper"})
 @EnableFeignClients
 @EnableScheduling
-public class MaterialsApplication {
+public class MaterialsApplication implements CommandLineRunner {
+
+    @Resource
+    private SmokeServer smokeServer;
 
     public static void main(String[] args) {
         SpringApplication.run(MaterialsApplication.class,args);
     }
+
+    @Override
+    public void run(String... args) throws Exception {
+        smokeServer.run(8973);
+    }
+
 }
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/entity/TDataSmock.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/entity/TDataSmock.java
new file mode 100644
index 0000000..7cdc954
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/entity/TDataSmock.java
@@ -0,0 +1,122 @@
+package com.thhy.materials.modules.biz.helmet.entity;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+@Data
+@Getter
+@Setter
+@ToString
+public class TDataSmock implements Serializable {
+    /**
+     * 
+     */
+    private Integer smokeId;
+
+    /**
+     * 
+     */
+    private String gatewayCyc;
+
+    /**
+     * 
+     */
+    private String fans;
+
+    /**
+     * 
+     */
+    private String v1run;
+
+    /**
+     * 
+     */
+    private String uv1run;
+
+    /**
+     * 
+     */
+    private String fanrun;
+
+    /**
+     * 
+     */
+    private String uv2run;
+
+    /**
+     * 
+     */
+    private String ssvrun;
+
+    /**
+     * 
+     */
+    private String dp;
+
+    /**
+     * 
+     */
+    private String t;
+
+    /**
+     * 
+     */
+    private String oc;
+
+    /**
+     * 
+     */
+    private String gatew;
+
+    /**
+     * 
+     */
+    private String nxrun;
+
+    /**
+     * 
+     */
+    private String alarm;
+
+    /**
+     * 
+     */
+    private String times;
+
+    /**
+     * 
+     */
+    private String rtcVolt;
+
+    /**
+     * 
+     */
+    private String v2run;
+
+    /**
+     * 
+     */
+    private String dxqvrun;
+
+    /**
+     * 
+     */
+    private String press;
+
+    /**
+     * 
+     */
+    private String dc;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_data_smock
+     *
+     * @mbg.generated Wed Oct 18 15:12:02 CST 2023
+     */
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/mapper/HelmetMapper.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/mapper/HelmetMapper.java
index 0fcdf46..5303370 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/mapper/HelmetMapper.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/mapper/HelmetMapper.java
@@ -5,6 +5,7 @@
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -46,4 +47,7 @@
     List<ReportNumDto> helmetReportTotal(Map<String, Object> values);
 
     List<THelmetReport> helmetReportUser(Map<String, Object> values);
+
+    void smockInsert(TDataSmock tDataSmock);
+
 }
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/HelmetService.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/HelmetService.java
index 30a5717..9c5497b 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/HelmetService.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/HelmetService.java
@@ -3,6 +3,7 @@
 import com.thhy.general.common.BasicResult;
 import com.thhy.materials.modules.biz.helmet.entity.*;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -40,4 +41,6 @@
     BasicResult helmetReportTotal(Map<String, Object> values);
 
     BasicResult helmetReportUser(Map<String, Object> values);
+
+    void smockInsert(TDataSmock tDataSmock);
 }
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/impl/HelmetServiceImpl.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/impl/HelmetServiceImpl.java
index 4309279..eb38b37 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/impl/HelmetServiceImpl.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/service/impl/HelmetServiceImpl.java
@@ -132,4 +132,10 @@
         List<THelmetReport> helmetReports =  helmetMapper.helmetReportUser(values);
         return BasicResult.success(helmetReports);
     }
+
+    @Override
+    public void smockInsert(TDataSmock tDataSmock) {
+        System.out.println("参数为---"+tDataSmock.toString());
+        helmetMapper.smockInsert(tDataSmock);
+    }
 }
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeMessage.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeMessage.java
new file mode 100644
index 0000000..45069df
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeMessage.java
@@ -0,0 +1,91 @@
+package com.thhy.materials.modules.biz.helmet.smoke;
+import com.alibaba.fastjson.JSONObject;
+import com.thhy.materials.modules.biz.helmet.entity.TDataSmock;
+import com.thhy.materials.modules.biz.helmet.mapper.HelmetMapper;
+import com.thhy.materials.modules.biz.helmet.service.HelmetService;
+import com.thhy.materials.modules.biz.utils.ApplicationContextUtil;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.util.CharsetUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class SmokeMessage extends SimpleChannelInboundHandler<ByteBuf>{
+
+    @Autowired
+    public HelmetService helmetService;
+
+    private static String[] alphabets = {"A", "B", "C", "D", "E", "F", "G", "H", "I",
+            "J", "K", "L", "M", "N", "O", "P"};
+
+    @Override
+    public void channelActive(ChannelHandlerContext ctx) {
+        for(int i=0; i<10; i++) {
+            StringBuilder builder = new StringBuilder();
+            builder.append("这是第");
+            builder.append(i);
+            builder.append("条消息, 内容是:");
+            for(int j=0; j<100; j++) {
+                builder.append(alphabets[i]);
+            }
+            builder.append("......");
+            builder.append("#");
+
+
+            System.out.println(builder.toString().getBytes().length);
+
+            ctx.writeAndFlush(Unpooled.copiedBuffer(builder.toString(),
+                    CharsetUtil.UTF_8));
+        }
+    }
+
+    @Override
+    public void channelRead0(ChannelHandlerContext ctx, ByteBuf in) {
+        System.out.println("客户端接收到消息: " + in.toString(CharsetUtil.UTF_8));
+        JSONObject jsonObject11 = JSONObject.parseObject(in.toString(CharsetUtil.UTF_8));
+        System.out.println("客户端接收到消息: " + jsonObject11);
+        TDataSmock tDataSmock = new TDataSmock();
+        tDataSmock.setGatewayCyc(jsonObject11.get("gateway_cyc").toString());
+        tDataSmock.setFans(jsonObject11.get("FanS").toString());
+        tDataSmock.setV1run(jsonObject11.get("V1Run").toString());
+        tDataSmock.setUv1run(jsonObject11.get("UV1Run").toString());
+        tDataSmock.setFanrun(jsonObject11.get("FanRun").toString());
+        tDataSmock.setUv2run(jsonObject11.get("UV2Run").toString());
+        tDataSmock.setSsvrun(jsonObject11.get("SSVRun").toString());
+        tDataSmock.setDp(jsonObject11.get("DP").toString());
+        tDataSmock.setT(jsonObject11.get("T").toString());
+        tDataSmock.setOc(jsonObject11.get("OC").toString());
+        tDataSmock.setGatew(jsonObject11.get("gatew").toString());
+        tDataSmock.setNxrun(jsonObject11.get("NXRun").toString());
+        tDataSmock.setTimes(jsonObject11.get("time").toString());
+        tDataSmock.setRtcVolt(jsonObject11.get("RTC_VOLT").toString());
+        tDataSmock.setV2run(jsonObject11.get("V2Run").toString());
+        tDataSmock.setDxqvrun(jsonObject11.get("DXQVRun").toString());
+        tDataSmock.setPress(jsonObject11.get("Press").toString());
+        tDataSmock.setDc(jsonObject11.get("Dc").toString());
+        System.out.println("-------"+tDataSmock);
+        getUserService().smockInsert(tDataSmock);
+    }
+    @Override
+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
+        cause.printStackTrace();
+        ctx.close();
+    }
+
+
+    public static HelmetService getUserService(){
+        ApplicationContext ac = ApplicationContextUtil.getApplicationContext();
+        HelmetService userService = (HelmetService) ac.getBean("helmetServiceImpl");
+        return userService;
+    }
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeServer.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeServer.java
new file mode 100644
index 0000000..264ba19
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/helmet/smoke/SmokeServer.java
@@ -0,0 +1,75 @@
+package com.thhy.materials.modules.biz.helmet.smoke;
+
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SmokeServer {
+
+//    public static void main(String[] args) throws Exception {
+//        int port = 8084;
+//        if (args != null && args.length > 0) {
+//            try {
+//                port = Integer.valueOf(args[0]);
+//            } catch (NumberFormatException e) {
+//                // 采用默认值
+//            }
+//        }
+//        new Smoke().bind(port);
+//    }
+
+
+    public void run(int port) throws Exception {
+        new SmokeServer().bind(port);
+        System.out.println("服务器启动成功!");
+    }
+
+
+    public void bind(int port) throws Exception {
+        // 第一步:
+        // 配置服务端的NIO线程组
+        // 主线程组, 用于接受客户端的连接,但是不做任何具体业务处理,像老板一样,负责接待客户,不具体服务客户
+        EventLoopGroup bossGroup = new NioEventLoopGroup(1);
+        // 工作线程组, 老板线程组会把任务丢给他,让手下线程组去做任务,服务客户
+        EventLoopGroup workerGroup = new NioEventLoopGroup();
+        try {
+            // 类ServerBootstrap用于配置Server相关参数,并启动Server
+            ServerBootstrap b = new ServerBootstrap();
+
+            // 链式调用
+            // 配置parentGroup和childGroup
+            b.group(bossGroup, workerGroup)
+                    // 配置Server通道
+                    .channel(NioServerSocketChannel.class)
+                    // 配置通道的ChannelPipeline
+                    .childHandler(new ChildChannelHandler());
+
+            // 绑定端口,并启动server,同时设置启动方式为同步
+            ChannelFuture f = b.bind(port).sync();
+
+            System.out.println(
+                    SmokeServer.class.getName() + " 启动成功,在地址[" + f.channel().localAddress() + "]上等待客户请求......");
+
+            // 等待服务端监听端口关闭
+            f.channel().closeFuture().sync();
+        } finally {
+            // 优雅退出,释放线程池资源
+            bossGroup.shutdownGracefully();
+            workerGroup.shutdownGracefully();
+        }
+    }
+
+    private class ChildChannelHandler extends ChannelInitializer<SocketChannel> {
+        @Override
+        protected void initChannel(SocketChannel ch) throws Exception {
+            ch.pipeline().addLast(new SmokeMessage());
+        }
+    }
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/utils/ApplicationContextUtil.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/utils/ApplicationContextUtil.java
new file mode 100644
index 0000000..a135e43
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/utils/ApplicationContextUtil.java
@@ -0,0 +1,61 @@
+package com.thhy.materials.modules.biz.utils;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ApplicationContextUtil implements ApplicationContextAware {
+    /**
+     * 上下文对象实例
+     */
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        ApplicationContextUtil.applicationContext = applicationContext;
+    }
+
+    /**
+     * 获取applicationContext
+     *
+     * @return
+     */
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    /**
+     * 通过name获取 Bean.
+     *
+     * @param name
+     * @return
+     */
+    public static Object getBean(String name) {
+        return getApplicationContext().getBean(name);
+    }
+
+    /**
+     * 通过class获取Bean.
+     *
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> T getBean(Class<T> clazz) {
+        return getApplicationContext().getBean(clazz);
+    }
+
+    /**
+     * 通过name,以及Clazz返回指定的Bean
+     *
+     * @param name
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> T getBean(String name, Class<T> clazz) {
+        return getApplicationContext().getBean(name, clazz);
+    }
+}
diff --git a/hd/pipe/materialsManage/src/main/resources/mapping/THelmetDeviceMapper.xml b/hd/pipe/materialsManage/src/main/resources/mapping/THelmetDeviceMapper.xml
index c8897d0..9690b58 100644
--- a/hd/pipe/materialsManage/src/main/resources/mapping/THelmetDeviceMapper.xml
+++ b/hd/pipe/materialsManage/src/main/resources/mapping/THelmetDeviceMapper.xml
@@ -532,7 +532,7 @@
   WHERE
       user_id = #{userId}
       <if test="strTime!=null and strTime!='' and endTime!=null and endTime!='' ">
-        and sm_time between #{strTime} and #{endTime}
+        and DATE(sm_time) between #{strTime} and #{endTime}
       </if>
   GROUP BY
       DATE( sm_time )
@@ -549,4 +549,133 @@
         user_id=#{userId}
         order by sm_time desc
   </select>
+
+  <insert id="smockInsert" >
+    insert into t_data_smock
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="smokeId != null">
+        smoke_id,
+      </if>
+      <if test="gatewayCyc != null">
+        gateway_cyc,
+      </if>
+      <if test="fans != null">
+        FanS,
+      </if>
+      <if test="v1run != null">
+        V1Run,
+      </if>
+      <if test="uv1run != null">
+        UV1Run,
+      </if>
+      <if test="fanrun != null">
+        FanRun,
+      </if>
+      <if test="uv2run != null">
+        UV2Run,
+      </if>
+      <if test="ssvrun != null">
+        SSVRun,
+      </if>
+      <if test="dp != null">
+        DP,
+      </if>
+      <if test="t != null">
+        T,
+      </if>
+      <if test="oc != null">
+        OC,
+      </if>
+      <if test="gatew != null">
+        gatew,
+      </if>
+      <if test="nxrun != null">
+        NXRun,
+      </if>
+      <if test="alarm != null">
+        Alarm,
+      </if>
+      <if test="times != null">
+        times,
+      </if>
+      <if test="rtcVolt != null">
+        RTC_VOLT,
+      </if>
+      <if test="v2run != null">
+        V2Run,
+      </if>
+      <if test="dxqvrun != null">
+        DXQVRun,
+      </if>
+      <if test="press != null">
+        Press,
+      </if>
+      <if test="dc != null">
+        Dc,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="smokeId != null">
+        #{smokeId,jdbcType=INTEGER},
+      </if>
+      <if test="gatewayCyc != null">
+        #{gatewayCyc,jdbcType=VARCHAR},
+      </if>
+      <if test="fans != null">
+        #{fans,jdbcType=VARCHAR},
+      </if>
+      <if test="v1run != null">
+        #{v1run,jdbcType=VARCHAR},
+      </if>
+      <if test="uv1run != null">
+        #{uv1run,jdbcType=VARCHAR},
+      </if>
+      <if test="fanrun != null">
+        #{fanrun,jdbcType=VARCHAR},
+      </if>
+      <if test="uv2run != null">
+        #{uv2run,jdbcType=VARCHAR},
+      </if>
+      <if test="ssvrun != null">
+        #{ssvrun,jdbcType=VARCHAR},
+      </if>
+      <if test="dp != null">
+        #{dp,jdbcType=VARCHAR},
+      </if>
+      <if test="t != null">
+        #{t,jdbcType=VARCHAR},
+      </if>
+      <if test="oc != null">
+        #{oc,jdbcType=VARCHAR},
+      </if>
+      <if test="gatew != null">
+        #{gatew,jdbcType=VARCHAR},
+      </if>
+      <if test="nxrun != null">
+        #{nxrun,jdbcType=VARCHAR},
+      </if>
+      <if test="alarm != null">
+        #{alarm,jdbcType=VARCHAR},
+      </if>
+      <if test="times != null">
+        #{times,jdbcType=VARCHAR},
+      </if>
+      <if test="rtcVolt != null">
+        #{rtcVolt,jdbcType=VARCHAR},
+      </if>
+      <if test="v2run != null">
+        #{v2run,jdbcType=VARCHAR},
+      </if>
+      <if test="dxqvrun != null">
+        #{dxqvrun,jdbcType=VARCHAR},
+      </if>
+      <if test="press != null">
+        #{press,jdbcType=VARCHAR},
+      </if>
+      <if test="dc != null">
+        #{dc,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3