Explorar o código

Merge branch 'master' of https://mc.cloudpure.cn/mjava/cont

wzy hai 2 meses
pai
achega
0bccad9de8

+ 95 - 0
mjava-tonglibo/pom.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.malk</groupId>
+    <artifactId>tonglibo</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>mjava-tonglibo</name>
+    <description>mjava-tonglibo</description>
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring-boot.version>2.6.13</spring-boot.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.33</version>  <!-- 必须 >= 8.0 -->
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.3.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.malk</groupId>
+            <artifactId>base</artifactId>
+            <version>1.3</version>
+        </dependency>
+    </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <finalName>tonglibo</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <configuration>
+                    <mainClass>com.malk.tonglibo.MjavaTongliboApplication</mainClass>
+<!--                    <skip>true</skip>-->
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>repackage</id>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 9 - 0
mjava-tonglibo/src/main/java/com/malk/tonglibo/Mapper/MachineDataMapper.java

@@ -0,0 +1,9 @@
+package com.malk.tonglibo.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.malk.tonglibo.entity.MachineData;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MachineDataMapper extends BaseMapper<MachineData> {
+}

+ 19 - 0
mjava-tonglibo/src/main/java/com/malk/tonglibo/MjavaTongliboApplication.java

@@ -0,0 +1,19 @@
+package com.malk.tonglibo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication(scanBasePackages = {"com.malk"})
+public class MjavaTongliboApplication {
+
+    public static void main(String[] args) {
+
+        try {
+            SpringApplication.run(MjavaTongliboApplication.class, args);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+    }
+
+}

+ 124 - 0
mjava-tonglibo/src/main/java/com/malk/tonglibo/controller/machineController.java

@@ -0,0 +1,124 @@
+package com.malk.tonglibo.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.malk.tonglibo.Mapper.MachineDataMapper;
+import com.malk.tonglibo.entity.MachineData;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.catalina.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+/**
+ * 功能:
+ * 作者:hanxue
+ * 日期:2025/9/15 11:35
+ */
+@RestController
+@RequestMapping
+@Slf4j
+public class machineController {
+
+    @Autowired
+    private MachineDataMapper machineDataMapper;
+    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    /**
+     * 同步设备数据
+     * @param params
+     */
+
+    @PostMapping("/device/data")
+    public void deviceData(@RequestBody String paramsStr){
+        try {
+            log.info("设备数据paramsStr:{}",paramsStr);
+            JSONObject params = JSONObject.parseObject(paramsStr);
+            log.info("设备数据JSON:{}",params);
+            // 创建请求记录对象
+            LocalDateTime time = LocalDateTime.parse((String) params.get("time"), FORMATTER);
+
+            // 正则:匹配 k 后跟数字的字符串
+            Pattern kPattern = Pattern.compile("^k\\d+$");
+            for (Map.Entry<String, Object> entry : params.entrySet()) {
+                String key = entry.getKey();
+                // 判断是否是 k 字段:以 'k' 开头,后面是数字
+                if (kPattern.matcher(key).matches()) {
+                    Object dataObj = entry.getValue();
+                    if (dataObj instanceof List) {
+                        List<String> data = new ArrayList<>();
+                        MachineData machineData = new MachineData();
+                        for (Object item : (List<?>) dataObj) {
+                            String strValue;
+                            if (item instanceof Number) {
+                                // 所有数字类型(Integer, Double, Float, Long)直接转字符串
+                                strValue = item.toString();
+                            } else if (item == null) {
+                                strValue = "null"; // 或者跳过、用 "" 代替
+                            } else {
+                                // 兜底:调用 toString()
+                                strValue = item.toString();
+                            }
+                            data.add(strValue); // 存入字符串
+                        }
+
+                        System.out.println("数据:" + data);
+                        machineData.setParamId(params.get("id").toString());
+                        machineData.setTime(time);
+                        machineData.setMachineNo(key);
+                        machineData.setJqyxsh(data.get(0));
+                        machineData.setZcn(data.get(2));
+                        machineData.setZqsj(data.get(4));
+                        machineData.setSgdyl(data.get(6));
+                        machineData.setXgdyl(data.get(8));
+                        machineData.setYskqyl1(data.get(10));
+                        machineData.setYskqyl2(data.get(12));
+                        machineData.setZymwd1(data.get(14));
+                        machineData.setZymwd2(data.get(16));
+                        machineData.setZymwd3(data.get(18));
+                        machineData.setZymwd4(data.get(20));
+                        machineData.setSmwd1(data.get(22));
+                        machineData.setSmwd2(data.get(24));
+                        machineData.setSmwd3(data.get(26));
+                        machineData.setSmwd4(data.get(28));
+                        machineData.setXmwd1(data.get(30));
+                        machineData.setXmwd2(data.get(32));
+                        machineData.setXmwd3(data.get(34));
+                        machineData.setXmwd4(data.get(36));
+                        machineData.setXjsj(data.get(38));
+                        machineData.setTssj(data.get(40));
+                        machineData.setZysj(data.get(42));
+                        machineDataMapper.insert(machineData);
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("设备数据同步异常:{}",e);
+        }
+
+    }
+
+    /**
+     * 宜搭获取设备数据
+     * @param params
+     */
+    @PostMapping("/device/getData")
+    public List<MachineData> deviceHeartbeat(@RequestBody Map params){
+        QueryWrapper<MachineData> queryWrapper = new QueryWrapper<>();
+
+        List<MachineData> machineDatas = machineDataMapper.selectList(queryWrapper);
+        return null;
+
+    }
+
+
+
+}

+ 46 - 0
mjava-tonglibo/src/main/java/com/malk/tonglibo/entity/MachineData.java

@@ -0,0 +1,46 @@
+package com.malk.tonglibo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName("T_TLB_MACHINEDATA")
+public class MachineData {
+    @TableId(type= IdType.AUTO)
+    private Long id;
+    @TableField("paramId")
+    private String paramId;
+    private LocalDateTime time;
+    private String jqyxsh;
+    private String zcn;
+    private String zqsj;
+    private String sgdyl;
+    private String xgdyl;
+    private String yskqyl1;
+    private String yskqyl2;
+    private String zymwd1;
+    private String zymwd2;
+    private String zymwd3;
+    private String zymwd4;
+    private String smwd1;
+    private String smwd2;
+    private String smwd3;
+    private String smwd4;
+    private String xmwd1;
+    private String xmwd2;
+    private String xmwd3;
+    private String xmwd4;
+    private String xjsj;
+    private String tssj;
+    private String zysj;
+    @TableField("machineNo")
+    private String machineNo;
+
+
+}

+ 36 - 0
mjava-tonglibo/src/main/resources/application-dev.yml

@@ -0,0 +1,36 @@
+server:
+  port: 9033
+  servlet:
+    context-path: /api/tlb
+spring:
+  datasource:
+    url: jdbc:mysql://120.55.113.155:3306/tonglibo?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
+    username: root
+    password: cloudPoc@2025++
+    driver-class-name: com.mysql.cj.jdbc.Driver
+#    driver-class-name: com.mysql.cj.jdbc.Driver
+
+
+
+
+enable:
+  scheduling: false
+logging:
+  config: classpath:logback-spring.xml
+  path: /home/server/tonglibo/log/
+  level:
+    com.malk.*: debug
+
+# dingtalk
+dingtalk:
+  agentId: 3914874648
+  appKey: dingyedbqoqricilvyog
+  appSecret: CAPT0hNRO5y-rHp81fmzMHz4LXYJhzkHqG1kh1L6OdM_LQPANR9IOoLtJrNLPVCc
+  corpId: dingf11f7d6ff834577b
+  aesKey: UqJRA1RTxarywiIWOK76BN8BSLfAN4gTDo6nEco4sqG
+  token: CpR7AsWa026FQV5VBNU5YrO5
+
+aliwork:
+  appType: APP_HJJ3X3QN4WEWDHU2BJR2
+  systemToken: 7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1
+

+ 31 - 0
mjava-tonglibo/src/main/resources/application-prod.yml

@@ -0,0 +1,31 @@
+server:
+  port: 9033
+  servlet:
+    context-path: /api/tlb
+spring:
+  datasource:
+    url: jdbc:mysql://120.55.113.155:3306/tonglibo?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
+    username: root
+    password: cloudPoc@2025++
+    driver-class-name: com.mysql.cj.jdbc.Driver
+enable:
+  scheduling: false
+logging:
+  config: classpath:logback-spring.xml
+  path: /home/server/tonglibo/log/
+  level:
+    com.malk.*: info
+
+# dingtalk
+dingtalk:
+  agentId: 3914874648
+  appKey: dingyedbqoqricilvyog
+  appSecret: CAPT0hNRO5y-rHp81fmzMHz4LXYJhzkHqG1kh1L6OdM_LQPANR9IOoLtJrNLPVCc
+  corpId: dingf11f7d6ff834577b
+  aesKey: UqJRA1RTxarywiIWOK76BN8BSLfAN4gTDo6nEco4sqG
+  token: CpR7AsWa026FQV5VBNU5YrO5
+
+aliwork:
+  appType: APP_HJJ3X3QN4WEWDHU2BJR2
+  systemToken: 7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1
+

+ 15 - 0
mjava-tonglibo/src/main/resources/application.yml

@@ -0,0 +1,15 @@
+spring:
+  profiles:
+    active: prod
+  servlet:
+    multipart:
+      max-file-size: 100MB
+      max-request-size: 100MB
+  http:
+    enabled: false
+
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  global-config:
+    db-config:
+      id-type: auto

+ 65 - 0
mjava-tonglibo/src/main/resources/logback-spring.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false" scan="false" scanPeriod="60 seconds">
+    <springProperty scope="context" name="LOG_HOME" source="logging.path" defaultValue="/home/server/log/"/>
+    <property name="FileNamePattern" value="${LOG_HOME}%d{yyyyMM}/%d{dd}"/>
+
+    <!-- 定义控制台输出 -->
+    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] - %-5level - %logger{50} - %msg%n</pattern>
+        </layout>
+    </appender>
+
+    <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 指定日志文件的名称 -->
+        <!--<file>${FileNamePattern}/info.log</file>-->
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${FileNamePattern}/info-%i.log</fileNamePattern>
+            <MaxHistory>30</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <MaxFileSize>30MB</MaxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
+        </layout>
+    </appender>
+
+    <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
+        <discriminator>
+            <Key>processid</Key>
+            <DefaultValue>sys</DefaultValue>
+        </discriminator>
+        <sift>
+            <appender name="FILE-${processid}"
+                      class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                    <FileNamePattern>
+                        ${FileNamePattern}/${processid}.log
+                    </FileNamePattern>
+                </rollingPolicy>
+                <layout class="ch.qos.logback.classic.PatternLayout">
+                    <Pattern>
+                        %d{yyyyMMdd:HH:mm:ss.SSS} [%thread] %-5level %msg%n
+                    </Pattern>
+                </layout>
+            </appender>
+        </sift>
+    </appender>
+
+
+    <!-- 日志输出级别 -->
+    <logger name="org.springframework" level="debug"  additivity="false"/>
+    <logger name="com.malk.connecter" level="debug"/>
+    <!-- 新增:抑制JSON解析错误日志 -->
+    <logger name="com.malk.filter.CatchException" level="WARN"/>
+    <logger name="org.springframework.http.converter" level="WARN"/>
+    <logger name="com.fasterxml.jackson" level="WARN"/>
+    <root level="INFO">
+        <appender-ref ref="stdout"/>
+        <appender-ref ref="appLogAppender"/>
+        <appender-ref ref="SIFT"/>
+    </root>
+</configuration>

+ 13 - 0
mjava-tonglibo/src/test/java/com/malk/tonglibo/MjavaTongliboApplicationTests.java

@@ -0,0 +1,13 @@
+package com.malk.tonglibo;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class MjavaTongliboApplicationTests {
+
+    @Test
+    void contextLoads() {
+    }
+
+}