Newspaper 2 лет назад
Родитель
Сommit
5ac586cb90

+ 30 - 0
huimv-farm-device/huimv-farm-environ/pom.xml

@@ -39,12 +39,42 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-undertow</artifactId>
         </dependency>
+        <!-- mysql -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>com.baomidou</groupId>-->
+        <!--            <artifactId>mybatis-plus-extension</artifactId>-->
+        <!--            <version>3.4.2</version>-->
+        <!--        </dependency>-->
+        <!--hutool-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>LATEST</version>
+        </dependency>
         <!-- netty -->
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-all</artifactId>
             <version>4.1.45.Final</version>
         </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 4 - 1
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/server/HuimvEnvironInputApplication.java

@@ -1,5 +1,7 @@
-package com.huimv.environ.server;
+package com.huimv.environ;
 
+import com.huimv.environ.server.EartagServer2;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.ApplicationContext;
@@ -13,6 +15,7 @@ import org.springframework.context.ApplicationContext;
  * @Create : 2022/11/30
  **/
 @SpringBootApplication
+@MapperScan("com.huimv.environ.mapper")
 public class HuimvEnvironInputApplication {
     public static void main(String[] args) throws InterruptedException {
         ApplicationContext applicationContext = SpringApplication.run(HuimvEnvironInputApplication.class, args);

+ 48 - 0
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/entity/EcoDeviceFlow.java

@@ -0,0 +1,48 @@
+package com.huimv.environ.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EcoDeviceFlow implements Serializable {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    private String deviceName;
+
+    private Integer deviceStatus;
+
+    private Boolean deviceOpen;
+
+    private String id1Name;
+
+    private String id1Value;
+
+    private Boolean id1AlarmStatus;
+
+    private String id1AlarmMsg;
+
+    private String id2Name;
+
+    private String id2Value;
+
+    private Boolean id2AlarmStatus;
+
+    private String id2AlarmMsg;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date addTime;
+
+    private Integer dryId;
+}

+ 10 - 0
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/mapper/EnvironMapper.java

@@ -0,0 +1,10 @@
+package com.huimv.environ.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.environ.entity.EcoDeviceFlow;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface EnvironMapper extends BaseMapper<EcoDeviceFlow> {
+
+}

+ 43 - 3
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/server/EartagServerHandler2.java

@@ -1,12 +1,23 @@
 package com.huimv.environ.server;
 
+import com.huimv.environ.entity.EcoDeviceFlow;
+import com.huimv.environ.mapper.EnvironMapper;
+import com.huimv.environ.utils.DateUtil;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.util.CharsetUtil;
+import io.undertow.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.unit.DataUnit;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * @Project : huimv.shiwan
@@ -21,7 +32,8 @@ import org.springframework.stereotype.Component;
 public class EartagServerHandler2 extends ChannelInboundHandlerAdapter {
     private StringBuilder askTextSb = null;
     private int num = 0;
-
+    @Resource
+    private EnvironMapper environMapper;
     //
     public void appendClientAsk(String text) {
         if (this.askTextSb == null) {
@@ -46,7 +58,7 @@ public class EartagServerHandler2 extends ChannelInboundHandlerAdapter {
 //        writeTxt(clientAskText,"all");
     }
 
-    private void handleClientAskMessage(String clientAskText, ChannelHandlerContext ctx) {
+    private void handleClientAskMessage(String clientAskText, ChannelHandlerContext ctx) throws ParseException {
         System.out.println("clientAskText=" + clientAskText);
         String answerText = "";
         if (clientAskText.length() == 12) {
@@ -60,8 +72,36 @@ public class EartagServerHandler2 extends ChannelInboundHandlerAdapter {
         answerCmd(answerText, ctx);
     }
 
-    private void saveEnvDeviceData(String clientAskText) {
+    private void saveEnvDeviceData(String clientAskText) throws ParseException {
         String[] askDataArray = clientAskText.split("\\,");
+        //tem
+        String temText = askDataArray[0];
+        String tem = temText.substring(temText.indexOf('*')+2);
+
+        //hum
+        String humText = askDataArray[1];
+        String hum = humText.substring(humText.indexOf('*')+1);
+
+        //deviceCode
+        String deviceCodeText = askDataArray[2];
+        String deviceCode = deviceCodeText.substring(deviceCodeText.indexOf('*')+1);
+
+        //addTime
+        DateUtil dateUtil = new DateUtil();
+        Date addTime = dateUtil.getTodayDatetime();
+
+        EcoDeviceFlow ecoDeviceFlow = new EcoDeviceFlow();
+        ecoDeviceFlow.setDeviceCode(deviceCode);
+        ecoDeviceFlow.setDeviceName("温度/湿度");
+        ecoDeviceFlow.setDeviceStatus(1);
+        ecoDeviceFlow.setId1Name("温度(℃)");
+        ecoDeviceFlow.setId1Value(tem);
+        ecoDeviceFlow.setId2Name("湿度(%)");
+        ecoDeviceFlow.setId2Value(hum);
+        ecoDeviceFlow.setAddTime(addTime);
+
+        environMapper.insert(ecoDeviceFlow);
+
         System.out.println("askDataArray.length=" + askDataArray.length);
 
     }

+ 8 - 0
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/service/IEnviron.java

@@ -0,0 +1,8 @@
+package com.huimv.environ.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.environ.entity.EcoDeviceFlow;
+
+public interface IEnviron extends IService<EcoDeviceFlow> {
+
+}

+ 12 - 0
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/service/impl/EnvironImpl.java

@@ -0,0 +1,12 @@
+package com.huimv.environ.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.environ.entity.EcoDeviceFlow;
+import com.huimv.environ.mapper.EnvironMapper;
+import com.huimv.environ.service.IEnviron;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EnvironImpl extends ServiceImpl<EnvironMapper, EcoDeviceFlow> implements IEnviron {
+
+}

+ 168 - 0
huimv-farm-device/huimv-farm-environ/src/main/java/com/huimv/environ/utils/DateUtil.java

@@ -0,0 +1,168 @@
+package com.huimv.environ.utils;
+
+import cn.hutool.core.date.DateTime;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class DateUtil {
+
+    //格式化本年
+    public String getThisYear(){
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        return String.valueOf(year);
+    }
+
+    //格式化本月
+    public String getThisMonth(){
+        Calendar cal = Calendar.getInstance();
+        int month = cal.get(Calendar.MONTH) + 1;
+        if(String.valueOf(month).length()==1)
+        {
+            return "0"+String.valueOf(month);
+        }else{
+            return String.valueOf(month);
+        }
+    }
+
+    //格式化日期时间
+    public String formatDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+
+    public Date parseDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(dateText);
+    }
+
+    public Long parseDateTimeLong(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return date.getTime();
+    }
+
+    //
+    public Date getTodayDate() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public Date getTodayDatetime() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public String getTodayDateText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayMissionText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+        return sdf.format(new Date());
+    }
+
+    public String getStartDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (cn.hutool.core.date.DateUtil.beginOfMonth(date) + "").substring(0, 10);
+    }
+
+    public String getEndDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (date + "").substring(0, 10);
+    }
+
+    /**
+     * 获取过去或者未来 任意天内的日期数组
+     * @param intervals      intervals天内
+     * @return              日期数组
+     */
+    public ArrayList<String> test(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        ArrayList<String> fetureDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+            fetureDaysList.add(getFetureDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * 获取过去第几天的日期
+     *
+     * @param past
+     * @return
+     */
+    public String getPastDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    /**
+     * 获取未来 第 past 天的日期
+     * @param past
+     * @return
+     */
+    public String getFetureDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    //重新构建日期
+    public String rebuildDateTime(String text){
+        return text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+    }
+
+    public static void main(String[] args){
+        DateUtil du = new DateUtil();
+        //
+        du.test1();
+    }
+
+    private void test1() {
+        String text = "20211201104300";
+//        String text = "1234567890abcd";
+        String date = text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+        System.out.println("date="+date);
+    }
+}

+ 6 - 0
huimv-farm-device/huimv-farm-environ/src/main/resources/application-dev.yml

@@ -5,6 +5,12 @@ spring:
   application:
     name: huimv-farm-environ-input
 
+  datasource:
+    url: jdbc:mysql://122.112.224.199:3306/huimv-lishui?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: hm123456
+    driver-class-name: com.mysql.cj.jdbc.Driver
+
 management:
   endpoints:
     web: