Bladeren bron

拓扑索尔水表数据解析

hanzhengyi 8 maanden geleden
bovenliggende
commit
24e23ca4bf
26 gewijzigde bestanden met toevoegingen van 1174 en 0 verwijderingen
  1. 104 0
      agbox-topsail/pom.xml
  2. 44 0
      agbox-topsail/src/main/java/com/usky/topsail/Application.java
  3. 108 0
      agbox-topsail/src/main/java/com/usky/topsail/controller/MybatisGeneratorUtils.java
  4. 21 0
      agbox-topsail/src/main/java/com/usky/topsail/controller/web/AaController.java
  5. 47 0
      agbox-topsail/src/main/java/com/usky/topsail/controller/web/SpOwnerController.java
  6. 21 0
      agbox-topsail/src/main/java/com/usky/topsail/controller/web/SpSj2017Controller.java
  7. 32 0
      agbox-topsail/src/main/java/com/usky/topsail/domain/Aa.java
  8. 171 0
      agbox-topsail/src/main/java/com/usky/topsail/domain/SpOwner.java
  9. 119 0
      agbox-topsail/src/main/java/com/usky/topsail/domain/SpSj2017.java
  10. 16 0
      agbox-topsail/src/main/java/com/usky/topsail/mapper/AaMapper.java
  11. 16 0
      agbox-topsail/src/main/java/com/usky/topsail/mapper/SpOwnerMapper.java
  12. 16 0
      agbox-topsail/src/main/java/com/usky/topsail/mapper/SpSj2017Mapper.java
  13. 16 0
      agbox-topsail/src/main/java/com/usky/topsail/service/AaService.java
  14. 19 0
      agbox-topsail/src/main/java/com/usky/topsail/service/SpOwnerService.java
  15. 16 0
      agbox-topsail/src/main/java/com/usky/topsail/service/SpSj2017Service.java
  16. 20 0
      agbox-topsail/src/main/java/com/usky/topsail/service/impl/AaServiceImpl.java
  17. 87 0
      agbox-topsail/src/main/java/com/usky/topsail/service/impl/SpOwnerServiceImpl.java
  18. 20 0
      agbox-topsail/src/main/java/com/usky/topsail/service/impl/SpSj2017ServiceImpl.java
  19. 21 0
      agbox-topsail/src/main/java/com/usky/topsail/service/util/DynamicTableDataInsertion.java
  20. 51 0
      agbox-topsail/src/main/java/com/usky/topsail/service/util/HttpClientUtil.java
  21. 42 0
      agbox-topsail/src/main/java/com/usky/topsail/service/util/SSLClient.java
  22. 83 0
      agbox-topsail/src/main/resources/application.yml
  23. 12 0
      agbox-topsail/src/main/resources/mapper/topsail/AaMapper.xml
  24. 40 0
      agbox-topsail/src/main/resources/mapper/topsail/SpOwnerMapper.xml
  25. 30 0
      agbox-topsail/src/main/resources/mapper/topsail/SpSj2017Mapper.xml
  26. 2 0
      pom.xml

+ 104 - 0
agbox-topsail/pom.xml

@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-agbox-java</artifactId>
+        <groupId>com.usky</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>agbox-topsail</artifactId>
+
+    <dependencies>
+        <!--MQTT依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-integration</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-mqtt</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis-spring</artifactId>
+            <version>2.0.7</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-openfeign-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>usky-common-core</artifactId>
+        </dependency>
+
+        <!-- SpringBoot Actuator -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Mysql Connector -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.0.18.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.7</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>1.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>usky-common-mybatis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.13</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 44 - 0
agbox-topsail/src/main/java/com/usky/topsail/Application.java

@@ -0,0 +1,44 @@
+package com.usky.topsail;
+
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.core.env.Environment;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * 系统模块
+ *
+ * @author ruoyi
+ */
+
+@EnableFeignClients(basePackages = "com.usky")
+@MapperScan(value = "com.usky.topsail.mapper")
+@ComponentScan("com.usky")
+@SpringBootApplication
+public class Application
+{
+    private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
+
+    public static void main(String[] args) throws UnknownHostException {
+        ConfigurableApplicationContext application = SpringApplication.run(Application.class, args);
+        Environment env = application.getEnvironment();
+        String ip = InetAddress.getLocalHost().getHostAddress();
+        String port = env.getProperty("server.port");
+        String path = env.getProperty("server.servlet.context-path");
+        LOGGER.info("\n----------------------------------------------------------\n\t" +
+                "Application is running! Access URLs:\n\t" +
+                "Local: \t\thttp://localhost:" + port + (null==path?"":path) + "/\n\t" +
+                "External: \thttp://" + ip + ":" + port + (null==path?"":path) + "/\n\t" +
+                "----------------------------------------------------------");
+    }
+}
+

+ 108 - 0
agbox-topsail/src/main/java/com/usky/topsail/controller/MybatisGeneratorUtils.java

@@ -0,0 +1,108 @@
+package com.usky.topsail.controller;
+
+
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author yq
+ * @date 2021/7/6 11:42
+ */
+public class MybatisGeneratorUtils {
+    public static void main(String[] args) {
+
+        shell("agbox-topsail");
+    }
+
+    private static void shell(String model) {
+
+        AutoGenerator mpg = new AutoGenerator();
+        //1、全局配置
+        GlobalConfig gc = new GlobalConfig();
+//        File file = new File(model);
+//        String path = file.getAbsolutePath();
+        String projectPath = System.getProperty("user.dir");
+        projectPath+="/"+model;
+        gc.setOutputDir(projectPath+ "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
+        //修改为自己的名字
+        gc.setAuthor("han"); //设置作者
+        gc.setOpen(false);
+        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
+        gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
+        gc.setBaseResultMap(true); //生成resultMap
+        mpg.setGlobalConfig(gc);
+
+        //2、数据源配置
+        //修改数据源
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://47.98.201.187:3306/jdxf?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+        dsc.setDriverName("com.mysql.jdbc.Driver");
+        dsc.setUsername("root");
+        dsc.setPassword("Yt2018IoT");
+        mpg.setDataSource(dsc);
+
+        // 3、包配置
+        PackageConfig pc = new PackageConfig();
+        pc.setParent("com.usky.topsail");
+        pc.setController("controller.web");
+        pc.setEntity("domain");
+        pc.setMapper("mapper");
+        pc.setService("service");
+        pc.setServiceImpl("service.impl");
+//        pc.setXml("mapper.demo");
+        //pc.setModuleName("test");
+        mpg.setPackageInfo(pc);
+
+        // 4、策略配置
+        StrategyConfig strategy = new StrategyConfig();
+        strategy.setNaming(NamingStrategy.underline_to_camel);
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+        strategy.setSuperMapperClass("com.usky.common.mybatis.core.CrudMapper");
+        strategy.setSuperServiceClass("com.usky.common.mybatis.core.CrudService");
+        strategy.setSuperServiceImplClass("com.usky.common.mybatis.core.AbstractCrudService");
+        // strategy.setTablePrefix("t_"); // 表名前缀
+        strategy.setEntityLombokModel(true); //使用lombok
+        //修改自己想要生成的表
+        strategy.setInclude("aa");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        mpg.setStrategy(strategy);
+
+        // 关闭默认 xml 生成,调整生成 至 根目录
+        //修改对应的模块名称
+        TemplateConfig tc = new TemplateConfig();
+        // 自定义配置
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                // to do nothing
+            }
+        };
+        //如果模板引擎是 velocity
+        String templatePath = "/templates/mapper.xml.vm";
+        // 自定义输出配置
+        List<FileOutConfig> focList = new ArrayList<>();
+        // 自定义配置会被优先输出
+        String finalProjectPath = projectPath;
+        focList.add(new FileOutConfig(templatePath) {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+                return finalProjectPath + "/src/main/resources/mapper/topsail" + "/"
+                        + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+            }
+        });
+        cfg.setFileOutConfigList(focList);
+        mpg.setCfg(cfg);
+        tc.setXml(null);
+        mpg.setTemplate(tc);
+        //5、执行
+        mpg.execute();
+    }
+}
+

+ 21 - 0
agbox-topsail/src/main/java/com/usky/topsail/controller/web/AaController.java

@@ -0,0 +1,21 @@
+package com.usky.topsail.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-28
+ */
+@Controller
+@RequestMapping("/aa")
+public class AaController {
+
+}
+

+ 47 - 0
agbox-topsail/src/main/java/com/usky/topsail/controller/web/SpOwnerController.java

@@ -0,0 +1,47 @@
+package com.usky.topsail.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.topsail.domain.SpOwner;
+import com.usky.topsail.service.SpOwnerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@RestController
+@RequestMapping("/spOwner")
+public class SpOwnerController {
+    @Autowired
+    private SpOwnerService spOwnerService;
+
+    /**
+     * 查询设备
+     * @param deviceType  设备类型
+     * @return
+     */
+    @GetMapping("/deviceInfo")
+    public ApiResult<List<SpOwner>> deviceInfo(@RequestParam(value = "deviceType") Integer deviceType)
+    {
+        return ApiResult.success(spOwnerService.deviceInfo(deviceType));
+    }
+
+    /**
+     * 新增
+     * @return
+     */
+    @PostMapping("/alarmInfo")
+    ApiResult<Void> add(@RequestBody String requestBody){
+        spOwnerService.add(requestBody);
+        return ApiResult.success();
+    }
+}
+

+ 21 - 0
agbox-topsail/src/main/java/com/usky/topsail/controller/web/SpSj2017Controller.java

@@ -0,0 +1,21 @@
+package com.usky.topsail.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * asf 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@Controller
+@RequestMapping("/spSj2017")
+public class SpSj2017Controller {
+
+}
+

+ 32 - 0
agbox-topsail/src/main/java/com/usky/topsail/domain/Aa.java

@@ -0,0 +1,32 @@
+package com.usky.topsail.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Aa implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String data;
+
+    private LocalDateTime time;
+
+
+}

+ 171 - 0
agbox-topsail/src/main/java/com/usky/topsail/domain/SpOwner.java

@@ -0,0 +1,171 @@
+package com.usky.topsail.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SpOwner implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 单位编号
+     */
+    private String ownerCode;
+
+    /**
+     * 单位名称
+     */
+    private String ownerName;
+
+    /**
+     * 单元地址
+     */
+    private String unitinfo;
+
+    /**
+     * 楼层
+     */
+    private String louyu;
+
+    /**
+     * sim卡
+     */
+    private String sim;
+
+    /**
+     * 维保时间
+     */
+    @TableField("maintainTime")
+    private String maintainTime;
+
+    /**
+     * 对应方法
+     */
+    private Integer destAddress;
+
+    /**
+     * 省
+     */
+    private String addr1;
+
+    /**
+     * 市
+     */
+    private String addr2;
+
+    /**
+     * 区、县
+     */
+    private String addr3;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 位置
+     */
+    private String posistion;
+
+    /**
+     * 安装时间
+     */
+    private LocalDateTime installTime;
+
+    /**
+     * 安装人
+     */
+    private String installMan;
+
+    /**
+     * 1火系统  2水系统 3烟感系统 4消防栓,5液位 6rtu 7电气火灾 8防火门 9气体灭火 10人脸识别 16视频监控 128井盖 
+     */
+    private Integer dwtype;
+
+    /**
+     * 型号 id,方法
+     */
+    private String ownerXh;
+
+    /**
+     * 间隔时间
+     */
+    private Integer sInterval;
+
+    /**
+     * 社区
+     */
+    private String community;
+
+    /**
+     * 所属单位
+     */
+    private String company;
+
+    private String rtmp;
+
+    private String hls;
+
+    private String html5;
+
+    private String danwei;
+
+    /**
+     * 倍率
+     */
+    private String ownerBl;
+
+    /**
+     * 报告推送参数1
+     */
+    private Integer pushParam1;
+
+    /**
+     * 报告推送参数2
+     */
+    private Integer pushParam2;
+
+    /**
+     * 报告推送参数3
+     */
+    private Integer pushParam3;
+
+    /**
+     * 报告推送参数4
+     */
+    private Integer pushParam4;
+
+    /**
+     * 登录参数Json格式存储
+     */
+    private String loginParam;
+
+    /**
+     * 传输类型
+     */
+    private String transferType;
+
+
+}

+ 119 - 0
agbox-topsail/src/main/java/com/usky/topsail/domain/SpSj2017.java

@@ -0,0 +1,119 @@
+package com.usky.topsail.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * asf
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SpSj2017 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String port;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 时间
+     */
+    private LocalDateTime time;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 地址 ip
+     */
+    private String address;
+
+    /**
+     * 命令码
+     */
+    private String ncmd;
+
+    /**
+     * 报警类型0 正常 1 低压 2高压 3故障 4离线
+     */
+    private String data1;
+
+    /**
+     * 电池电量
+     */
+    private String data2;
+
+    /**
+     * 信号强度
+     */
+    private String data3;
+
+    /**
+     * 压力值 mpa
+     */
+    private String data4;
+
+    /**
+     * 物联网卡号
+     */
+    private String data5;
+
+    /**
+     * 联系人
+     */
+    private String cllxr;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime clsj;
+
+    /**
+     * 处理人
+     */
+    private String clr;
+
+    /**
+     * 处理内容
+     */
+    private String clnr;
+
+    private String clwb;
+
+    /**
+     * 联系电话
+     */
+    private String cldh;
+
+    /**
+     * 处理状态
+     */
+    private Integer clzt;
+
+    private String cllx;
+
+    /**
+     * 视频地址
+     */
+    private String video;
+
+
+}

+ 16 - 0
agbox-topsail/src/main/java/com/usky/topsail/mapper/AaMapper.java

@@ -0,0 +1,16 @@
+package com.usky.topsail.mapper;
+
+import com.usky.topsail.domain.Aa;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-28
+ */
+public interface AaMapper extends CrudMapper<Aa> {
+
+}

+ 16 - 0
agbox-topsail/src/main/java/com/usky/topsail/mapper/SpOwnerMapper.java

@@ -0,0 +1,16 @@
+package com.usky.topsail.mapper;
+
+import com.usky.topsail.domain.SpOwner;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+public interface SpOwnerMapper extends CrudMapper<SpOwner> {
+
+}

+ 16 - 0
agbox-topsail/src/main/java/com/usky/topsail/mapper/SpSj2017Mapper.java

@@ -0,0 +1,16 @@
+package com.usky.topsail.mapper;
+
+import com.usky.topsail.domain.SpSj2017;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * asf Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+public interface SpSj2017Mapper extends CrudMapper<SpSj2017> {
+
+}

+ 16 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/AaService.java

@@ -0,0 +1,16 @@
+package com.usky.topsail.service;
+
+import com.usky.topsail.domain.Aa;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-28
+ */
+public interface AaService extends CrudService<Aa> {
+
+}

+ 19 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/SpOwnerService.java

@@ -0,0 +1,19 @@
+package com.usky.topsail.service;
+
+import com.usky.topsail.domain.SpOwner;
+import com.usky.common.mybatis.core.CrudService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+public interface SpOwnerService extends CrudService<SpOwner> {
+    List<SpOwner> deviceInfo(Integer deviceType);
+    boolean add(String requestBody);
+}

+ 16 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/SpSj2017Service.java

@@ -0,0 +1,16 @@
+package com.usky.topsail.service;
+
+import com.usky.topsail.domain.SpSj2017;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * asf 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+public interface SpSj2017Service extends CrudService<SpSj2017> {
+
+}

+ 20 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/impl/AaServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.topsail.service.impl;
+
+import com.usky.topsail.domain.Aa;
+import com.usky.topsail.mapper.AaMapper;
+import com.usky.topsail.service.AaService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-28
+ */
+@Service
+public class AaServiceImpl extends AbstractCrudService<AaMapper, Aa> implements AaService {
+
+}

+ 87 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/impl/SpOwnerServiceImpl.java

@@ -0,0 +1,87 @@
+package com.usky.topsail.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
+import com.usky.topsail.domain.Aa;
+import com.usky.topsail.domain.SpOwner;
+import com.usky.topsail.mapper.SpOwnerMapper;
+import com.usky.topsail.service.AaService;
+import com.usky.topsail.service.SpOwnerService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.topsail.service.util.DynamicTableDataInsertion;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@Service
+public class SpOwnerServiceImpl extends AbstractCrudService<SpOwnerMapper, SpOwner> implements SpOwnerService {
+    @Autowired
+    private AaService aaService;
+
+    public List<SpOwner> deviceInfo(Integer deviceType){
+        LambdaQueryWrapper<SpOwner> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(SpOwner::getOwnerCode);
+        List<SpOwner> records = this.list(queryWrapper);
+        return records;
+    }
+
+    @Override
+    public boolean add(String requestBody){
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String serviceId = requestVO.get("serviceId").toString();
+        if (StringUtils.isNotBlank(serviceId) && serviceId.equals("sensor_dat_report")){
+            String payload = requestVO.get("payload").toString();
+            JSONObject payloadVO = JSONObject.parseObject(payload);
+            String device_code = payloadVO.get("IMEI").toString();
+            Integer bat_level = Integer.parseInt(payloadVO.get("bat_level").toString());
+            Integer CSQ = Integer.parseInt(payloadVO.get("CSQ").toString());
+            Integer alarm = Integer.parseInt(payloadVO.get("alarm").toString());
+            String samp_time = LocalDateTime.now().toString();
+            String sensor_dat = payloadVO.get("sensor_dat").toString();
+            String[] strArray = sensor_dat.split("\\|");
+            String sensor_dat_value = strArray[1];
+            String[] strArray1 = sensor_dat_value.split(",");
+            String device_value = "";
+            if (strArray1.length>=2){
+                device_value = strArray1[1];
+            }else {
+                device_value = strArray1[0];
+            }
+            String device_status = "";
+            if (alarm.equals(0)){
+                device_status = "WP0";
+            }else if (alarm.equals(131072)){
+                device_status = "WP0";
+            }else if (alarm.equals(262144)){
+                device_status = "WP0";
+            }
+            // 构建SQL语句
+            String sql =
+                    "INSERT INTO " + "sp_d"+device_code + "(device_code,port,time,data1,data2," +
+                            "data3,data4,data5) " + "VALUES ("+ "\""+device_code+ "\""+","+"\""+"TSM-10P"+"\""+","+"\""+samp_time+"\""
+                            +","+"\""+device_status+"\""+","+"\""+bat_level+"\""+","+"\""+CSQ+"\""+","+"\""+device_value+"\""+","+"\""+"11111111111"+"\""+")";
+            // 调用JdbcTemplate进行数据库操作
+            SqlRunner.db().insert(sql);
+        }
+        Aa aa = new Aa();
+        aa.setData(requestBody);
+        aa.setTime(LocalDateTime.now());
+        aaService.save(aa);
+        return true;
+    }
+}

+ 20 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/impl/SpSj2017ServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.topsail.service.impl;
+
+import com.usky.topsail.domain.SpSj2017;
+import com.usky.topsail.mapper.SpSj2017Mapper;
+import com.usky.topsail.service.SpSj2017Service;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * asf 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-02-02
+ */
+@Service
+public class SpSj2017ServiceImpl extends AbstractCrudService<SpSj2017Mapper, SpSj2017> implements SpSj2017Service {
+
+}

+ 21 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/util/DynamicTableDataInsertion.java

@@ -0,0 +1,21 @@
+package com.usky.topsail.service.util;
+
+import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class DynamicTableDataInsertion {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    public void insertDynamicTableData(String tableName, String column1Value, String column2Value) {
+        // 构建SQL语句
+        String sql = "INSERT INTO " + tableName + "(data,time) VALUES ("+"\""+column1Value+"\""+","+"\""+column2Value+"\""+")";
+
+        // 调用JdbcTemplate进行数据库操作
+        SqlRunner.db().insert(sql);
+    }
+}

+ 51 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/util/HttpClientUtil.java

@@ -0,0 +1,51 @@
+package com.usky.topsail.service.util;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Repository;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+@Repository
+public class HttpClientUtil {
+    public static String doPost(String url, Map<String, String> map, String charset) {
+        HttpClient httpClient = null;
+        HttpPost httpPost = null;
+        String result = null;
+        try {
+            httpClient = new SSLClient();
+            httpPost = new HttpPost(url);
+            //设置参数
+            List<NameValuePair> list = new ArrayList<NameValuePair>();
+            Iterator iterator = map.entrySet().iterator();
+            while (iterator.hasNext()) {
+                Map.Entry<String, String> elem = (Map.Entry<String, String>) iterator.next();
+                list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
+            }
+            if (list.size() > 0) {
+                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
+                httpPost.setEntity(entity);
+            }
+            HttpResponse response = httpClient.execute(httpPost);
+            System.out.println("HttpPost +++++++++++++++ " + url);
+            if (response != null) {
+                HttpEntity resEntity = response.getEntity();
+                if (resEntity != null) {
+                    result = EntityUtils.toString(resEntity, charset);
+                }
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return result;
+    }
+}

+ 42 - 0
agbox-topsail/src/main/java/com/usky/topsail/service/util/SSLClient.java

@@ -0,0 +1,42 @@
+package com.usky.topsail.service.util;
+
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.scheme.Scheme;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.client.DefaultHttpClient;
+
+//用于进行Https请求的HttpClient
+public class SSLClient extends DefaultHttpClient {
+    public SSLClient() throws Exception {
+        super();
+        SSLContext ctx = SSLContext.getInstance("TLS");
+        X509TrustManager tm = new X509TrustManager() {
+            @Override
+            public void checkClientTrusted(X509Certificate[] chain,
+                                           String authType) throws CertificateException {
+            }
+
+            @Override
+            public void checkServerTrusted(X509Certificate[] chain,
+                                           String authType) throws CertificateException {
+            }
+
+            @Override
+            public X509Certificate[] getAcceptedIssuers() {
+                return null;
+            }
+        };
+        ctx.init(null, new TrustManager[]{tm}, null);
+        SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+        ClientConnectionManager ccm = this.getConnectionManager();
+        SchemeRegistry sr = ccm.getSchemeRegistry();
+        sr.register(new Scheme("https", 443, ssf));
+    }
+}

+ 83 - 0
agbox-topsail/src/main/resources/application.yml

@@ -0,0 +1,83 @@
+# Tomcat
+server:
+  port: 9892
+  servlet:
+    context-path: /agbox-topsail
+mybatis:
+  refresh:
+    delay-seconds: 10
+    enabled: true
+    sleep-seconds: 20
+mybatis-plus:
+  configuration:
+    defaultStatementTimeout: 3
+    lazy-loading-enabled: true
+    map-underscore-to-camel-case: true
+  global-config:
+    db-config:
+      id-type: auto
+    mapperRegistryCache: true
+    enable-sql-runner: true
+  mapper-locations: classpath*:mapper/**/*.xml
+spring:
+  application:
+    # 应用名称
+    name: agbox-topsail
+  cache:
+    ehcache:
+      config: classpath:ehcache.xml
+      enabled: false
+    redis:
+      enabled: true
+  datasource:
+    druid:
+      stat-view-servlet:
+        enabled: true
+        login-password: '@dmin1234'
+        login-username: admin
+        reset-enable: true
+        url-pattern: /druid/*
+    dynamic:
+      datasource:
+        master:
+          password: Yt2018IoT
+          url: jdbc:mysql://47.98.201.187:3306/jdxf?useunicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowMultiQueries=true
+          username: root
+      druid:
+        initial-size: 5
+        min-idle: 5
+        maxActive: 20
+        maxWait: 60000
+        timeBetweenEvictionRunsMillis: 60000
+        minEvictableIdleTimeMillis: 300000
+        validationQuery: SELECT 1 FROM DUAL
+        testWhileIdle: true
+        testOnBorrow: false
+        testOnReturn: false
+        poolPreparedStatements: true
+        maxPoolPreparedStatementPerConnectionSize: 20
+        filters: stat,slf4j
+        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+      primary: master
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    default-property-inclusion: always
+    deserialization:
+      fail-on-unknown-properties: false
+    parser:
+      allow-single-quotes: true
+      allow-unquoted-control-chars: true
+    serialization:
+      fail-on-empty-beans: false
+    time-zone: GMT+8
+#  redis:
+#    host: 172.16.120.165
+#    password: 123456
+#    port: 6379
+#    timeout: 10000
+  tenant:
+    enable: false
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 15MB

+ 12 - 0
agbox-topsail/src/main/resources/mapper/topsail/AaMapper.xml

@@ -0,0 +1,12 @@
+<?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.usky.topsail.mapper.AaMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.topsail.domain.Aa">
+        <id column="id" property="id" />
+        <result column="data" property="data" />
+        <result column="time" property="time" />
+    </resultMap>
+
+</mapper>

+ 40 - 0
agbox-topsail/src/main/resources/mapper/topsail/SpOwnerMapper.xml

@@ -0,0 +1,40 @@
+<?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.usky.topsail.mapper.SpOwnerMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.topsail.domain.SpOwner">
+        <id column="id" property="id" />
+        <result column="owner_code" property="ownerCode" />
+        <result column="owner_name" property="ownerName" />
+        <result column="unitinfo" property="unitinfo" />
+        <result column="louyu" property="louyu" />
+        <result column="sim" property="sim" />
+        <result column="maintainTime" property="maintainTime" />
+        <result column="dest_address" property="destAddress" />
+        <result column="addr1" property="addr1" />
+        <result column="addr2" property="addr2" />
+        <result column="addr3" property="addr3" />
+        <result column="address" property="address" />
+        <result column="posistion" property="posistion" />
+        <result column="install_time" property="installTime" />
+        <result column="install_man" property="installMan" />
+        <result column="dwtype" property="dwtype" />
+        <result column="owner_xh" property="ownerXh" />
+        <result column="s_interval" property="sInterval" />
+        <result column="community" property="community" />
+        <result column="company" property="company" />
+        <result column="rtmp" property="rtmp" />
+        <result column="hls" property="hls" />
+        <result column="html5" property="html5" />
+        <result column="danwei" property="danwei" />
+        <result column="owner_bl" property="ownerBl" />
+        <result column="push_param1" property="pushParam1" />
+        <result column="push_param2" property="pushParam2" />
+        <result column="push_param3" property="pushParam3" />
+        <result column="push_param4" property="pushParam4" />
+        <result column="login_param" property="loginParam" />
+        <result column="transfer_type" property="transferType" />
+    </resultMap>
+
+</mapper>

+ 30 - 0
agbox-topsail/src/main/resources/mapper/topsail/SpSj2017Mapper.xml

@@ -0,0 +1,30 @@
+<?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.usky.topsail.mapper.SpSj2017Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.topsail.domain.SpSj2017">
+        <id column="id" property="id" />
+        <result column="port" property="port" />
+        <result column="device_code" property="deviceCode" />
+        <result column="time" property="time" />
+        <result column="status" property="status" />
+        <result column="address" property="address" />
+        <result column="ncmd" property="ncmd" />
+        <result column="data1" property="data1" />
+        <result column="data2" property="data2" />
+        <result column="data3" property="data3" />
+        <result column="data4" property="data4" />
+        <result column="data5" property="data5" />
+        <result column="cllxr" property="cllxr" />
+        <result column="clsj" property="clsj" />
+        <result column="clr" property="clr" />
+        <result column="clnr" property="clnr" />
+        <result column="clwb" property="clwb" />
+        <result column="cldh" property="cldh" />
+        <result column="clzt" property="clzt" />
+        <result column="cllx" property="cllx" />
+        <result column="video" property="video" />
+    </resultMap>
+
+</mapper>

+ 2 - 0
pom.xml

@@ -33,6 +33,8 @@
 
     <module>agbox-energy</module>
 
+    <module>agbox-topsail</module>
+
   </modules>
 
   <dependencies>