From f7ecb62a4fcfc86893458f1298995692315ff79f Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 06 三月 2024 10:31:45 +0800
Subject: [PATCH] 更新
---
UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java | 127 +++
UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java | 60
UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst | 45 +
UnLoadGlassModule/target/maven-archiver/pom.properties | 3
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java | 124 +++
UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | 46 +
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java | 202 +++++
UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java | 28
UnLoadGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml | 65 +
UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst | 1
CacheGlassModule/src/main/java/com/mes/MesApplication.java | 4
UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java | 25
UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java | 17
UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java | 15
UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageMapper.java | 16
UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java | 19
UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageDetailsMapper.java | 16
UnLoadGlassModule/src/main/java/com/mes/service/ServiceContextHolder.java | 14
UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java | 19
UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java | 27
UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java | 108 +++
UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java | 31
UnLoadGlassModule/src/main/java/com/mes/MesApplication.java | 17
UnLoadGlassModule/target/MES-UnLoadGlassModule-0.0.1-SNAPSHOT.jar.original | 0
UnLoadGlassModule/src/main/java/com/mes/service/ThreadExample.java | 25
UnLoadGlassModule/pom.xml | 44 +
UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java | 18
UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java | 26
UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java | 259 +++++++
UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java | 35 +
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java | 142 ++++
UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java | 16
UnLoadGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt | 4
/dev/null | 29
UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst | 1
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java | 75 ++
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java | 71 +
UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java | 65 +
UnLoadGlassModule/src/main/resources/application.yml | 20
CacheGlassModule/MES-Module.iml | 133 +++
UnLoadGlassModule/MES-Module.iml | 49 +
UnLoadGlassModule/target/classes/application.yml | 20
UI-Project/vite.config.js | 7
43 files changed, 1,907 insertions(+), 161 deletions(-)
diff --git a/CacheGlassModule/MES-Module.iml b/CacheGlassModule/MES-Module.iml
new file mode 100644
index 0000000..1069076
--- /dev/null
+++ b/CacheGlassModule/MES-Module.iml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="web" name="Web">
+ <configuration>
+ <webroots />
+ <sourceRoots>
+ <root url="file://$MODULE_DIR$/src/main/java" />
+ <root url="file://$MODULE_DIR$/src/main/resources" />
+ </sourceRoots>
+ </configuration>
+ </facet>
+ <facet type="Spring" name="Spring">
+ <configuration />
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <output-test url="file://$MODULE_DIR$/target/test-classes" />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.10" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.10" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.1" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.33" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+ <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.6" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.6" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.6" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.56" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.56" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.56" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
+ <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
+ <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.70" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.1.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.33" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.20" level="project" />
+ <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.9" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.5.9" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.5.9" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.5.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.7" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.7" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:9.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
+ <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.22" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.9.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.15" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.4" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.3.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-test-autoconfigure:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.10.3" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.6" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.6" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.6" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: commons-codec:commons-codec:1.15" level="project" />
+ <orderEntry type="library" name="Maven: org.assertj:assertj-core:3.19.0" level="project" />
+ <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.0" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.3" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.5.1" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.36.Final" level="project" />
+ </component>
+</module>
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/MesApplication.java b/CacheGlassModule/src/main/java/com/mes/MesApplication.java
index 9cc84b5..991a752 100644
--- a/CacheGlassModule/src/main/java/com/mes/MesApplication.java
+++ b/CacheGlassModule/src/main/java/com/mes/MesApplication.java
@@ -1,6 +1,9 @@
package com.mes;
import com.mes.common.PlcTools.S7object;
+import com.mes.mapper.SelectInfo;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@@ -21,4 +24,5 @@
throw new RuntimeException(e);
}
}
+
}
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index b27e7e0..c5cc368 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -29,7 +29,12 @@
// '^/api': ''
// }
// rewrite: (path) => path.replace(/^\/api/, "/mesModuleTools"), //閲嶅啓鐪熷疄璺緞,鏇挎崲/api
- }
+ },
+ '/api2': {
+ target: 'localhost:8080/mesModuleTools',
+ changeOrigin: true,
+ rewrite: (path) => path.replace(/^\/api2/, ""),
+ },
}
}
})
diff --git a/UnLoadGlassModule/MES-Module.iml b/UnLoadGlassModule/MES-Module.iml
index 7d58678..debbce9 100644
--- a/UnLoadGlassModule/MES-Module.iml
+++ b/UnLoadGlassModule/MES-Module.iml
@@ -13,6 +13,16 @@
<facet type="Spring" name="Spring">
<configuration />
</facet>
+ <facet type="jpa" name="JPA">
+ <configuration>
+ <setting name="validation-enabled" value="true" />
+ <setting name="provider-name" value="Hibernate" />
+ <datasource-mapping>
+ <factory-entry name="entityManagerFactory" />
+ </datasource-mapping>
+ <naming-strategy-map />
+ </configuration>
+ </facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
@@ -25,6 +35,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="Java EE 6-Java EE 6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.9" level="project" />
@@ -32,7 +43,6 @@
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.10" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.10" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.1" level="project" />
- <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.33" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
@@ -71,8 +81,8 @@
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.7" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.7" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:9.1" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2" level="project" />
@@ -95,7 +105,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-test-autoconfigure:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.15" level="project" />
<orderEntry type="library" name="Maven: com.auth0:java-jwt:3.10.3" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="Maven: commons-codec:commons-codec:1.15" level="project" />
+ <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
<orderEntry type="library" name="Maven: org.assertj:assertj-core:3.19.0" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.1" level="project" />
@@ -135,6 +145,37 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.13.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.13.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.0" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.9" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
+ <orderEntry type="library" name="Maven: commons-io:commons-io:2.13.0" level="project" />
+ <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.24.0" level="project" />
+ <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.08" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-all:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.5.9" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.33" level="project" />
+ <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.3.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.javassist:javassist:3.27.0-GA" level="project" />
+ <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
+ <orderEntry type="library" name="Maven: org.jboss:jandex:2.2.3.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.5" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.5" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.5.8" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.3.15" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.15" level="project" />
</component>
</module>
\ No newline at end of file
diff --git a/UnLoadGlassModule/pom.xml b/UnLoadGlassModule/pom.xml
index dcc9ef3..66013a9 100644
--- a/UnLoadGlassModule/pom.xml
+++ b/UnLoadGlassModule/pom.xml
@@ -9,9 +9,9 @@
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.MES-Module</groupId>
- <artifactId>MES-Module</artifactId>
+ <artifactId>MES-UnLoadGlassModule</artifactId>
<version>0.0.1-SNAPSHOT</version>
- <name>MES-Module</name>
+ <name>MES-UnLoadGlassModule</name>
<description>project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
@@ -115,7 +115,7 @@
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
-
+ <!-- rabbitmq -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
@@ -148,7 +148,39 @@
<version>2.13.0</version>
</dependency>
-<!--websocket-->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-websocket</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.xingshuangs</groupId>
+ <artifactId>iot-communication</artifactId>
+ <version>1.4.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-websocket</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.8.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>5.2.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>5.2.4</version>
+ </dependency>
+
+ <!--websocket-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-websocket</artifactId>-->
@@ -159,6 +191,10 @@
<artifactId>netty-all</artifactId>
<version>4.1.36.Final</version>
</dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
</dependencies>
diff --git a/UnLoadGlassModule/src/main/java/com/mes/MesApplication.java b/UnLoadGlassModule/src/main/java/com/mes/MesApplication.java
index 9cc84b5..c438a67 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/MesApplication.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/MesApplication.java
@@ -1,24 +1,19 @@
package com.mes;
-import com.mes.common.PlcTools.S7object;
+import com.mes.tools.WebSocketServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.springframework.transaction.annotation.Transactional;
-//springboot 鍚姩鍏ュ彛
@SpringBootApplication
@EnableCaching
-@EnableTransactionManagement//浜嬪姟娉ㄨВ
-//@Transactional//鍦╯ervice閲岄潰鏈夊琛ㄦ搷浣滐紝寮�鍚簨鍔℃敞瑙�
+@EnableTransactionManagement
public class MesApplication {
public static void main(String[] args) {
- SpringApplication.run(MesApplication.class, args);
- try {
- //new NettyServer(12345).start();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ SpringApplication springApplication = new SpringApplication(MesApplication.class);
+ ConfigurableApplicationContext applicationContext = springApplication.run(args);
+ WebSocketServer.setApplicationContext(applicationContext);
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
index 9cc9e37..d62cad3 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
@@ -1,23 +1,39 @@
package com.mes.common.PlcTools;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
import com.google.common.primitives.Bytes;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
public class S7control {
S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-
- public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+ private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+ private String ip = "192.168.10.1"; // plc ip鍦板潃
+ private int port = 102; // plc 绔彛鍙�
+
+ private static volatile S7control instance = null;
+
+ private S7control() {
if (s7PLC == null)
s7PLC = new S7PLC(plcType, ip, port,0,0);
- }
+ }
+
+ // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+ public static S7control getinstance() {
+ if (instance == null) {
+ synchronized (S7control.class) {
+ if (instance == null)
+ instance = new S7control();
+ }
+ }
+ return instance;
+ }
+
/**
* 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
*/
@@ -33,7 +49,7 @@
public boolean CheckConnected() {
return s7PLC.checkConnected();
}
-
+
/**
* 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
*
@@ -269,6 +285,41 @@
}
+
+
+
+ public List<String> readStringsandword(List<String> addressList) {
+ if (s7PLC == null) {
+ return null;
+ }
+ List<String> result = new ArrayList<>();
+ for (String address : addressList) {
+ try {
+ if (address.contains("-")) {
+ address = address.substring(0, address.indexOf("-"));
+
+ byte[] bytes = s7PLC.readByte(address, 14);
+ if (bytes != null) {
+ String str = new String(bytes, StandardCharsets.UTF_8);
+ result.add(str);
+ }
+
+ } else {
+ Short value = s7PLC.readInt16(address);
+ result.add(value.toString());
+
+ }
+ } catch (Exception e) {
+ System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+ result.add(null);
+ }
+ }
+
+ return result;
+ }
+
+
+
//涓嶈繛缁湴鍧�鍐欏叆Word
public void WriteWord(List<String> address, List<Short> datas) {
if (s7PLC == null)
@@ -300,7 +351,7 @@
glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
}
byte[] bytes = Bytes.toArray(glassidlist);
- WriteByte(addr, bytes);
+ S7control.getinstance().WriteByte(addr, bytes);
}
//璇诲彇涓嶈繛缁瓀ord
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object.java
deleted file mode 100644
index 16bd1de..0000000
--- a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.mes.common.PlcTools;
-
-import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
-import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
-
-public class S7object {
- public S7control plccontrol; // PLC閫氳绫诲疄渚�
- private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
- private String ip = "192.168.10.1"; // plc ip鍦板潃
- private int port = 102; // plc 绔彛鍙�
-
- private static volatile S7object instance = null;
-
- private S7object() {
- if (plccontrol == null)
- plccontrol = new S7control(plcType, ip, port,0,0);
- }
-
- // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
- public static S7object getinstance() {
- if (instance == null) {
- synchronized (S7object.class) {
- if (instance == null)
- instance = new S7object();
- }
- }
- return instance;
- }
-}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object2.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object2.java
deleted file mode 100644
index 4ed72d6..0000000
--- a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/S7object2.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.mes.common.PlcTools;
-
-import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
-import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
-
-public class S7object2 {
- public S7control plccontrol; // PLC閫氳绫诲疄渚�
- private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
- private String ip = "192.168.10.2"; // plc ip鍦板潃
- private int port = 102; // plc 绔彛鍙�
-
- private static volatile S7object2 instance = null;
-
- private S7object2() {
- if (plccontrol == null)
- plccontrol = new S7control(plcType, ip, port,0,0);
- }
-
- // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
- public static S7object2 getinstance() {
- if (instance == null) {
- synchronized (S7object2.class) {
- if (instance == null)
- instance = new S7object2();
- }
- }
- return instance;
- }
-}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java b/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
new file mode 100644
index 0000000..1da8717
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
@@ -0,0 +1,259 @@
+package com.mes.common;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.rabbitmq.client.*;
+
+import java.util.*;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+
+public class RabbitMQUtils {
+ // ObjectMapper瀵硅薄锛岀敤浜庡簭鍒楀寲鍜屽弽搴忓垪鍖朖SON
+ private static ObjectMapper objectMapper = new ObjectMapper();
+ private static String host = "10.153.19.150"; // RabbitMQ 涓绘満鍚�
+ private static Map<String, Object> args = new HashMap<>(); // 闃熷垪鍙傛暟
+
+ static {
+ // 璁剧疆闃熷垪鍙傛暟
+ args.put("x-max-length-bytes", 1024 * 1024);
+ }
+
+ // private static Map<String, Object> args = new HashMap<>();
+// args.put("x-max-length-bytes",1024 * 1024);
+ // 鍙戦�佹秷鎭埌 RabbitMQ 闃熷垪涓�
+ public String sendMessage(String message, String queueName) throws Exception {
+ // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�佹秷鎭�
+ try (Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel()) {
+ // 澹版槑闃熷垪
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ // 鍙戝竷娑堟伅鍒伴槦鍒�
+ channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
+ System.out.println(" [x] Sent '" + message + "' to queue '" + queueName + "'");
+ }
+
+ return message;
+ }
+
+
+ // 浠� RabbitMQ 闃熷垪涓帴鏀舵秷鎭�
+ public String receiveMessage(String queueName) throws Exception {
+ // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ // 鍒涘缓闃诲闃熷垪
+ BlockingQueue<String> messageQueue = new ArrayBlockingQueue<>(1);
+
+ // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹娑堟伅
+ try (Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel()) {
+ // 澹版槑闃熷垪
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ // 璁剧疆娑堟伅鎺ユ敹鍥炶皟
+ DeliverCallback deliverCallback = (consumerTag, delivery) -> {
+ String receivedMessage = new String(delivery.getBody(), "UTF-8");
+ // System.out.println(" [x] Received '" + receivedMessage + "'");
+
+ // 灏嗘帴鏀跺埌鐨勬秷鎭斁鍏ラ樆濉為槦鍒�
+ try {
+ messageQueue.put(receivedMessage);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ };
+
+ // 娑堣垂闃熷垪涓殑娑堟伅
+ channel.basicConsume(queueName, true, deliverCallback, consumerTag -> {
+
+ });
+
+ // 闃诲骞剁瓑寰呰幏鍙栨秷鎭�
+ return messageQueue.take();
+ }
+ }
+
+
+//娑堣垂娑堟伅
+ public List<String> readMessages(String queueName,boolean is) throws Exception {
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+ List<String> messages = new ArrayList<>();
+ try (Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel()) {
+ boolean autoAck = false;
+
+ GetResponse response = channel.basicGet(queueName, autoAck);
+ if (response != null) {
+ String message = new String(response.getBody(), "UTF-8");
+ messages.add(message);
+ // 鎵嬪姩纭娑堟伅澶勭悊瀹屾垚
+ if(is){
+ long deliveryTag = response.getEnvelope().getDeliveryTag();
+ channel.basicAck(deliveryTag, false);
+ }
+
+ }
+ }
+
+ return messages;
+ }
+
+
+
+ private static Set<String> sentMessageIds = new HashSet<>();
+//鏍规嵁id鍙戦�佹秷鎭�
+ public static boolean sendMessageWithId(String queueName, String message, String messageId) throws Exception {
+ if (sentMessageIds.contains(messageId)) {
+ System.err.println("Message with ID " + messageId + " has already been sent.");
+ return false; // 娑堟伅閲嶅锛屽彂閫佸け璐�
+ }
+
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ AMQP.BasicProperties properties = new AMQP.BasicProperties.Builder()
+ .messageId(messageId)
+ .build();
+
+ channel.basicPublish("", queueName, properties, message.getBytes("UTF-8"));
+ System.out.println("Sent message with ID: " + messageId);
+
+ sentMessageIds.add(messageId); // 灏� messageId 娣诲姞鍒板凡鍙戦�侀泦鍚堜腑
+
+ return true; // 娑堟伅鎴愬姛鍙戦��
+ } catch (Exception e) {
+ System.err.println("Failed to send message: " + e.getMessage());
+ return false; // 娑堟伅鍙戦�佸け璐�
+ }
+ }
+//鏍规嵁id娑堣垂娑堟伅
+ public static String consumeMessageById( String messageId,String queueName) throws Exception {
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ GetResponse response;
+ while ((response = channel.basicGet(queueName, false)) != null) {
+ String receivedMessage = new String(response.getBody(), "UTF-8");
+ if (response.getProps().getMessageId().equals(messageId)) {
+ long deliveryTag = response.getEnvelope().getDeliveryTag();
+ channel.basicAck(deliveryTag, false);
+ System.out.println("Selected message: "+messageId+ receivedMessage);
+ return receivedMessage; // 杩斿洖閫夊畾鐨勬秷鎭唴瀹�
+ } else {
+ // 瀵逛簬涓嶇鍚堟潯浠剁殑娑堟伅锛岃繘琛� Nack 鎿嶄綔
+// long deliveryTag = response.getEnvelope().getDeliveryTag();
+// channel.basicNack(deliveryTag, false, true);
+ return "Specified message not found in the queue.";
+ }
+ }
+
+ return "Specified message not found in the queue.";
+ }
+ }
+
+//娑堣垂鎸囧畾娑堟伅
+ public static String consumeSelectedMessage(int messageToConsume, String queueName) throws Exception {
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ for (int i = 0; i < messageToConsume; i++) {
+ GetResponse response = channel.basicGet(queueName, false);
+ if (response == null) {
+ return "Queue does not have enough messages.";
+ }
+// long deliveryTag = response.getEnvelope().getDeliveryTag();
+// channel.basicAck(deliveryTag, false);
+ }
+
+ GetResponse selectedResponse = channel.basicGet(queueName, false);
+ if (selectedResponse != null) {
+ byte[] body = selectedResponse.getBody();
+ String selectedMessage = new String(body, "UTF-8");
+ long deliveryTag = selectedResponse.getEnvelope().getDeliveryTag();
+ channel.basicAck(deliveryTag, false);
+ return selectedMessage;
+ } else {
+ return "Specified message not found in the queue.";
+ }
+ }
+ }
+
+ // 鍙戦�� JSON 娑堟伅鍒伴槦鍒�
+ public static boolean sendJsonMessage(Object message, String queueName) throws Exception {
+ // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�� JSON 娑堟伅
+ try (Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel()) {
+ // 澹版槑闃熷垪
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ // 灏嗗璞¤浆鎹负 JSON 瀛楃涓�
+ String jsonMessage = objectMapper.writeValueAsString(message);
+
+ // 鍙戝竷 JSON 娑堟伅鍒伴槦鍒�
+ channel.basicPublish("", queueName, null, jsonMessage.getBytes());
+ System.out.println(" [x] Sent JSON message: '" + jsonMessage + "' to queue '" + queueName + "'");
+
+ return true; // 鍙戦�佹秷鎭垚鍔�
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false; // 鍙戦�佹秷鎭け璐�
+ }
+ }
+
+ // 鎺ユ敹 JSON 娑堟伅骞惰浆鎹负瀵硅薄
+ public static <T> T receiveJsonMessage(Class<T> valueType, String queueName) throws Exception {
+ // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(host);
+
+ // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹 JSON 娑堟伅
+ try (Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel()) {
+ // 澹版槑闃熷垪
+ channel.queueDeclare(queueName, false, false, false, args);
+
+ // 鑾峰彇闃熷垪涓殑娑堟伅
+ GetResponse response = channel.basicGet(queueName, true);
+ if (response != null) {
+ byte[] body = response.getBody();
+ String jsonMessage = new String(body, "UTF-8");
+ System.out.println(" [x] Received JSON message: '" + jsonMessage + "' from queue '" + queueName + "'");
+
+ // 灏� JSON 娑堟伅杞崲涓哄璞�
+ return objectMapper.readValue(jsonMessage, valueType);
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null; // 鎺ユ敹娑堟伅澶辫触
+ }
+ }
+
+}
+
+// RabbitMQUtils.sendMessage("Hello, world!", "module_queue");
+//RabbitMQUtils.receiveMessage("module_queue");
+//RabbitMQUtils.sendJsonMessage(someObject, "another_queue");
+//RabbitMQUtils.receiveJsonMessage(SomeClass.class, "another_queue");
+// 闇�瑕佸皢 someObject 鏇挎崲涓轰綘瑕佸彂閫佺殑瀵硅薄锛屽苟灏� SomeClass 鏇挎崲涓轰綘瑕佹帴鏀跺苟杞崲鐨勫璞$被鍨嬨��
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
index 1e45c2c..f6ecf3f 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -1,23 +1,23 @@
package com.mes.config;
-
-import com.mes.*;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.core.annotation.Order;
+import com.mes.service.Plcaction;
+import com.mes.service.DownGlassInfoService;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
@Component
-@Order(1)
+class AppStartup implements ApplicationListener<ContextRefreshedEvent> {
-public class AppRunnerConfig implements ApplicationRunner {
+ private final DownGlassInfoService downGlassInfoService;
+
+ public AppStartup(DownGlassInfoService downGlassInfoService) {
+ this.downGlassInfoService = downGlassInfoService;
+ }
@Override
- public void run(ApplicationArguments args) throws Exception {
- // TODO Auto-generated method stub
- //
- System.out.println("鍚姩瀹屾垚");
-
-
+ public void onApplicationEvent(ContextRefreshedEvent event) {
+ Plcaction.setDownGlassInfoService(downGlassInfoService);
+ new Plcaction().start();
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
new file mode 100644
index 0000000..6630735
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
@@ -0,0 +1,19 @@
+package com.mes.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class DownGlassInfo {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id; // 涓嬬墖鐜荤拑淇℃伅琛╥d
+
+ private String flowCardId; // 娴佺▼鍗″彿
+ private Integer sequence; // 椤哄簭
+ private Double width; // 瀹�
+ private Double height; // 楂�
+ private Double thickness; // 鍘氬害
+
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
new file mode 100644
index 0000000..d917446
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
@@ -0,0 +1,18 @@
+package com.mes.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+ import com.baomidou.mybatisplus.annotation.TableId;
+ import lombok.Data;
+
+@Data
+public class DownStorageCage {
+
+ @TableId(type = IdType.AUTO)
+ private int id; // 涓嬬墖鍓嶇悊鐗囩琛╥d
+ private int deviceId; // 璁惧id
+ private String slot; // 鏍呮牸鍙�
+ private String enableState; // 鍚敤鐘舵��
+ private int remainWidth; // 鍓╀綑
+
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java
new file mode 100644
index 0000000..8e6b6a7
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java
@@ -0,0 +1,25 @@
+package com.mes.entity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class DownStorageCageDetails {
+
+ @TableId(type = IdType.AUTO)
+ private int id; // 涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d
+
+ private int deviceId; // 璁惧id
+ private int slot; // 鏍呮牸鍙�
+ private int glassId; // 鐜荤拑id
+ private int sequence; // 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+ private String flowCardId; // 娴佺▼鍗″彿
+ private int glassType; // 鐜荤拑绫诲瀷
+ private double width; // 瀹�
+ private double height; // 楂�
+ private double thickness; // 鍘氬害
+ private int temperingLayoutId; // 閽㈠寲鐗堝浘id
+ private int temperingFeedSequence; // 閽㈠寲鐗堝浘鐗囧簭
+ private int state; // 鐘舵��
+ private int gap; // 鐜荤拑闂撮殭
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
new file mode 100644
index 0000000..d9a2dfd
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
@@ -0,0 +1,17 @@
+package com.mes.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+ import com.baomidou.mybatisplus.annotation.TableId;
+ import lombok.Data;
+
+@Data
+public class DownWorkstation {
+
+ @TableId(type = IdType.AUTO)
+ private int id; // 涓嬬墖宸ヤ綅琛╥d
+ private Integer workstationId; // 宸ヤ綅id
+ private String flowCardId; // 娴佺▼鍗″彿
+ private Integer deviceId; // 璁惧id
+ private Integer enableState; // 鍚敤鐘舵��
+ private Integer workState; // 宸ヤ綔鐘舵��
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
new file mode 100644
index 0000000..686752f
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
@@ -0,0 +1,75 @@
+package com.mes.entity.device;
+
+public class PlcBitInfo {
+
+ public PlcBitInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private Boolean value;
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Boolean getValue() {
+ return this.value;
+ }
+
+ public void setValue(Boolean value) {
+ this.value = value;
+ }
+
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ if (stringdatas.length < 2 )
+ return null;
+ int dbwindex = 0;
+ int bitindex = 0;
+ if (stringdatas.length == 3) {
+ dbwindex = Integer.parseInt(stringdatas[1]);
+ bitindex = Integer.parseInt(stringdatas[2]);
+ } else
+ return null;
+ dbwindex+=index/8;
+ bitindex+=index%8;
+ return stringdatas[0]+"."+dbwindex+"."+bitindex;
+ }
+
+
+
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+ }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
new file mode 100644
index 0000000..977a13c
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.entity.device;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcBitObject {
+
+ // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+ private String plcAddressBegin;
+ // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+ private int plcAddressLength;
+ private ArrayList<PlcBitInfo> plcBitList;
+
+ /**
+ * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public String getPlcAddressBegin() {
+ return plcAddressBegin;
+ }
+
+ /**
+ * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public void setPlcAddressBegin(String plcAddressBegin) {
+ this.plcAddressBegin = plcAddressBegin;
+ }
+
+ /**
+ * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public int getPlcAddressLength() {
+ return plcAddressLength;
+ }
+
+ /**
+ * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public void setPlcAddressLength(int plcAddressLength) {
+ this.plcAddressLength = plcAddressLength;
+ }
+
+ /**
+ * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+ */
+ public ArrayList<PlcBitInfo> getBitList() {
+ return plcBitList;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public PlcBitInfo getPlcBit(String codeid) {
+ if (plcBitList != null) {
+ for (PlcBitInfo plcbitInfo : plcBitList) {
+ if (plcbitInfo.getCodeId().equals(codeid))
+ return plcbitInfo;
+ }
+ return null;
+ } else
+ return null;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public List<Boolean> getPlcBitValues(List<String> codeids) {
+ List<Boolean> arrayList = new ArrayList<>();
+ if (plcBitList != null) {
+ Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+ for (PlcBitInfo plcBitInfo : plcBitList) {
+ if (codeids.contains(plcBitInfo.getCodeId().toString())) {
+ resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
+ }
+ }
+ for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+ Boolean value = resultMap.get(codeId);
+ if (value != null) {
+ arrayList.add(value);
+ } else {
+ arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+ }
+ }
+ }
+ return arrayList;
+ }
+
+
+ public List<String> getAddressListByCodeId(List<String> codeIdList) {
+ List<String> addressList = new ArrayList<>();
+ for (String codeId : codeIdList) {
+ for (PlcBitInfo plcBitInfo : plcBitList) {
+ if (plcBitInfo.getCodeId().equals(codeId)) {
+ int index = plcBitInfo.getAddressIndex();
+ String address = plcBitInfo.getAddress(index);
+ if (address != null) {
+ addressList.add(address);
+ }
+ }
+ }
+ }
+ return addressList;
+ }
+
+
+ /**
+ * 娣诲姞鍙傛暟瀹炰緥
+ *
+ * @param param 鍙傛暟瀹炰緥
+ */
+ public void addPlcBit(PlcBitInfo param) {
+ if (plcBitList != null)
+ plcBitList.add(param);
+ else {
+ plcBitList = new ArrayList<PlcBitInfo>();
+ plcBitList.add(param);
+ }
+ }
+
+ /**
+ * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+ *
+ * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+ */
+ public void setPlcBitList(List<Boolean> plcValueArray) {
+ if (plcBitList != null) {
+ for (PlcBitInfo plcbitInfo : plcBitList) {
+ plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+ }
+ }
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
new file mode 100644
index 0000000..0cc7116
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
@@ -0,0 +1,124 @@
+package com.mes.entity.device;
+public class PlcParameterInfo {
+ public PlcParameterInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private String value;
+
+ // // 鍐欏叆 鍙傛暟鍊�
+ // private String writeValue;
+
+ // 鍙傛暟鍗曚綅
+ private String unit;
+
+ // 鍙傛暟鍊艰浆鎹㈢郴鏁�
+ private int ratio;
+
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ // 鍙傛暟鍦板潃浣嶉暱搴�
+ private int addressLength;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return this.value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ // public String getWriteValue() {
+ // return this.writeValue;
+ // }
+
+ // public void setWriteValue(String writeValue) {
+ // this.writeValue = writeValue;
+ // }
+
+ public String getUnit() {
+ return this.unit;
+ }
+
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+
+ public int getAddressLength() {
+ return this.addressLength;
+ }
+
+ public void setAddressLength(int addresslength) {
+ this.addressLength = addresslength;
+ }
+
+ public int getRatio() {
+ return this.ratio;
+ }
+
+ public void setRatio(int ratio) {
+ this.ratio = ratio;
+ }
+
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ int addressLength=this.addressLength;
+ if (addressLength < 2 ){
+ return null;
+ }
+
+ if (addressLength == 2 ) {
+ int wordindex = index;
+
+ return stringdatas[0] + "." + wordindex;
+ }
+ if (addressLength == 14 ) {
+ int wordindex = index;
+ int newIndex = wordindex + 13;
+ return stringdatas[0] + "." + wordindex +"-" + newIndex;
+ }
+ return null;
+ }
+
+ public int getPlcAddress() {
+
+ return addressIndex;
+ }
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
new file mode 100644
index 0000000..5355db5
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.entity.device;
+
+import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcParameterObject {
+
+ // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+ private String plcAddressBegin;
+ // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+ private int plcAddressLength;
+ private ArrayList<PlcParameterInfo> plcParameterList;
+
+ /**
+ * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public String getPlcAddressBegin() {
+ return plcAddressBegin;
+ }
+
+ /**
+ * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public void setPlcAddressBegin(String plcAddressBegin) {
+ this.plcAddressBegin = plcAddressBegin;
+ }
+
+ /**
+ * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public int getPlcAddressLength() {
+ return plcAddressLength;
+ }
+
+ /**
+ * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public void setPlcAddressLength(int plcAddressLength) {
+ this.plcAddressLength = plcAddressLength;
+ }
+
+ /**
+ * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+ */
+ public ArrayList<PlcParameterInfo> getPlcParameterList() {
+ return plcParameterList;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public PlcParameterInfo getPlcParameter(String codeid) {
+ if (plcParameterList != null) {
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (plcParameterInfo.getCodeId().equals(codeid))
+ return plcParameterInfo;
+ }
+ return null;
+ } else
+ return null;
+ }
+
+
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeids 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public List<String> getPlcParameterValues(List<String> codeids) {
+ List<String> arrayList = new ArrayList<>();
+ if (plcParameterList != null) {
+ Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (codeids.contains(plcParameterInfo.getCodeId())) {
+ resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
+ }
+ }
+ for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+ PlcParameterInfo plcParameterInfo = resultMap.get(codeId);
+ if (plcParameterInfo != null) {
+ arrayList.add(plcParameterInfo.getValue());
+ } else {
+ arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+ }
+ }
+ }
+ return arrayList;
+ }
+
+
+ public List<String> getAddressListByCodeId(List<String> codeIdList) {
+ List<String> addressList = new ArrayList<>();
+ for (String codeId : codeIdList) {
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (plcParameterInfo.getCodeId().equals(codeId)) {
+ int index = plcParameterInfo.getAddressIndex();
+ String address = plcParameterInfo.getAddress(index);
+ if (address != null) {
+ addressList.add(address);
+ }
+ }
+ }
+ }
+ return addressList;
+ }
+
+
+
+
+
+
+ /**
+ * 娣诲姞鍙傛暟瀹炰緥
+ *
+ * @param param 鍙傛暟瀹炰緥
+ */
+ public void addPlcParameter(PlcParameterInfo param) {
+ if (plcParameterList != null)
+ plcParameterList.add(param);
+ else {
+ plcParameterList = new ArrayList<PlcParameterInfo>();
+ plcParameterList.add(param);
+ }
+ }
+
+ /**
+ * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+ *
+ * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+ */
+ public void setPlcParameterList(byte[] plcValueArray) {
+ if (plcParameterList != null) {
+
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+
+ byte[] valueList = new byte[plcParameterInfo.getAddressLength()];
+
+// System.out.println(plcParameterInfo.getAddressLength());
+
+ for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) {
+ Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]);
+
+ }
+ if (plcParameterInfo.getAddressLength()==2) {
+ plcParameterInfo.setValue(String.valueOf(byte2short(valueList)));
+ }
+ else if (plcParameterInfo.getAddressLength()==14) {
+ plcParameterInfo.setValue((byteToHexString(valueList)));
+ }
+
+ else
+ {
+ String valuestr = new String(valueList);
+ plcParameterInfo.setValue(valuestr);
+ }
+ }
+ }
+ }
+ /**
+ * short绫诲瀷杞琤yte[]
+ *
+ * @param s short绫诲瀷鍊�
+ */
+ public static byte[] short2byte(short s){
+ byte[] b = new byte[2];
+ for(int i = 0; i < 2; i++){
+ int offset = 16 - (i+1)*8; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+ b[i] = (byte)((s >> offset)&0xff); //鎶�16浣嶅垎涓�2涓�8浣嶈繘琛屽垎鍒瓨鍌�
+ }
+ return b;
+ }
+ /**
+ * byte[]绫诲瀷杞瑂hort
+ *
+ * @param b byte[]绫诲瀷鍊�
+ */
+ public static short byte2short(byte[] b){
+ short l = 0;
+ for (int i = 0; i < 2; i++) {
+ l<<=8; //<<=鍜屾垜浠殑 +=鏄竴鏍风殑锛屾剰鎬濆氨鏄� l = l << 8
+ l |= (b[i] & 0xff); //鍜屼笂闈篃鏄竴鏍风殑 l = l | (b[i]&0xff)
+ }
+ return l;
+ }
+
+ public static String byteToHexString(byte[] bytes) {
+
+ String str = new String(bytes, StandardCharsets.UTF_8);
+ return str;
+ }
+
+
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
new file mode 100644
index 0000000..95ef927
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
@@ -0,0 +1,15 @@
+package com.mes.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.DownGlassInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
+public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageDetailsMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageDetailsMapper.java
new file mode 100644
index 0000000..e48f35c
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageDetailsMapper.java
@@ -0,0 +1,16 @@
+package com.mes.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.DownStorageCageDetails;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
+public interface DownStorageCageDetailsMapper extends BaseMapper<DownStorageCageDetails> {
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageMapper.java
new file mode 100644
index 0000000..5c67a01
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownStorageCageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.DownStorageCage;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
+public interface DownStorageCageMapper extends BaseMapper<DownStorageCage> {
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
new file mode 100644
index 0000000..c48a549
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
@@ -0,0 +1,16 @@
+package com.mes.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.DownWorkstation;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
+public interface DownWorkstationMapper extends BaseMapper<DownWorkstation> {
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
new file mode 100644
index 0000000..5f69be8
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
@@ -0,0 +1,19 @@
+package com.mes.service;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.entity.DownGlassInfo;
+import com.mes.mapper.DownGlassInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+@DS("hangzhoumes")
+public class DownGlassInfoService {
+
+ @Autowired
+ private DownGlassInfoMapper downGlassInfoMapper;
+
+ public DownGlassInfo getDownGlassInfoById(Integer id) {
+ return downGlassInfoMapper.selectById(id);
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java b/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
new file mode 100644
index 0000000..0909523
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
@@ -0,0 +1,65 @@
+package com.mes.service;
+
+import com.mes.entity.DownGlassInfo;
+import com.mes.entity.DownStorageCageDetails;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class GlassHandler {
+
+ private List<DownGlassInfo> glassList; // 瀛樻斁寰呭鐞嗙殑鐜荤拑淇℃伅
+ private List<DownStorageCageDetails> cageDetailsList; // 瀛樻斁鐜荤拑鏀剧疆鍦ㄧ紦瀛樼涓殑璇︾粏淇℃伅
+
+ public void processGlass() {
+ // 鍒濆鍖栦袱涓満鍣ㄦ墜
+ MachineHand hand1 = new MachineHand();
+ MachineHand hand2 = new MachineHand();
+
+ for (DownGlassInfo glass : glassList) {
+ // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
+ DownStorageCageDetails cageDetails = findCageDetailsByGlassSpec(glass);
+
+ if (cageDetails != null) {
+ // 浠庣紦瀛樼涓彇鍑虹幓鐠冩斁鍒版満鍣ㄦ墜涓�
+ hand1.placeGlass(cageDetails);
+ hand2.placeGlass(cageDetails);
+ }
+
+ // 鍒ゆ柇涓や釜鏈哄櫒鎵嬫槸鍚﹂兘宸茬粡鎽嗘弧
+ if (hand1.isFull() && hand2.isFull()) {
+ // 鎵ц鍏朵粬鎿嶄綔锛屾瘮濡傚彂閫佹寚浠ょ瓑
+ break;
+ }
+ }
+ }
+
+ private DownStorageCageDetails findCageDetailsByGlassSpec(DownGlassInfo glass) {
+ // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
+ for (DownStorageCageDetails details : cageDetailsList) {
+ if (details.getWidth() == glass.getWidth() &&
+ details.getHeight() == glass.getHeight() &&
+ details.getThickness() == glass.getThickness()) {
+ return details;
+ }
+ }
+ return null;
+ }
+
+ private class MachineHand {
+ private List<DownStorageCageDetails> rack; // 瀛樻斁鐜荤拑鐨勬灦瀛�
+
+ public MachineHand() {
+ rack = new ArrayList<>();
+ }
+
+ public void placeGlass(DownStorageCageDetails details) {
+ rack.add(details);
+ }
+
+ public boolean isFull() {
+ return rack.size() >= 50; // 鍒ゆ柇鏋跺瓙鏄惁宸茬粡鏀炬弧
+ }
+ }
+}
+
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
index 950c35d..889bd32 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
@@ -1,26 +1,25 @@
package com.mes.service;
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-
-import java.util.HashMap;
-import java.util.Map;
+import com.mes.common.RabbitMQUtils;
public class ModuleA {
private static String QUEUE_NAME = "hangzhou2";
+ private static RabbitMQUtils receiver;
- public ModuleA(String QUEUENAME){
- QUEUE_NAME=QUEUENAME;
+ public ModuleA(String QUEUENAME) {
+ QUEUE_NAME = QUEUENAME;
+ receiver = new RabbitMQUtils(); // 瀹炰緥鍖� RabbitMQUtils 瀵硅薄
}
+ public static void main(String[] argv) throws Exception {
+// ModuleA moduleA = new ModuleA("hangzhou2"); // 瀹炰緥鍖� ModuleA 瀵硅薄
+// String message = "Your message to send666";
+// String messageId = "5"; // 娑堟伅ID
+// receiver.sendMessageWithId(QUEUE_NAME, message, messageId); // 璋冪敤 sendMessageWithId 鏂规硶鍙戦�佹秷鎭�
+ receiver.sendMessageWithId("hangzhou2", "Hello RabbitMQ!", "1");
+ receiver.sendMessageWithId("hangzhou2", "Another message", "2");
+ receiver.sendMessageWithId("hangzhou2", "Yet another message", "1"); // 杩欐潯娑堟伅浼氭墦鍗伴噸澶嶆秷鎭殑閿欒淇℃伅
- public static void main(String[] argv) throws Exception {
- // 鍒涘缓杩炴帴宸ュ巶
-
- }
- public void f(){
-
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
index 85c07da..75c2e16 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
@@ -1,38 +1,46 @@
package com.mes.service;
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-import com.rabbitmq.client.DeliverCallback;
-
-import java.util.HashMap;
-import java.util.Map;
+import com.mes.common.RabbitMQUtils;
public class ModuleB {
private final static String QUEUE_NAME = "hangzhou2";
public static void main(String[] argv) throws Exception {
- // 鍒涘缓杩炴帴宸ュ巶
- ConnectionFactory factory = new ConnectionFactory();
- factory.setHost("10.153.19.150");
- //factory.setHost("localhost");
- try (Connection connection = factory.newConnection();
- Channel channel = connection.createChannel()) {
- // 澹版槑闃熷垪
- Map<String, Object> args = new HashMap<>();
- args.put("x-max-length-bytes",20000);
-// args.put("x-max-length",5000);
- channel.queueDeclare(QUEUE_NAME, false, false, false, args);
- // 鍒涘缓娑堣垂鑰�
- DeliverCallback deliverCallback = (consumerTag, delivery) -> {
- String receivedMessage = new String(delivery.getBody(), "UTF-8");
- System.out.println(" [x] Received '" + receivedMessage + "'");
- };
- // 寮�濮嬫秷璐规秷鎭�
- channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
- });
+
+
+ RabbitMQUtils receiver = new RabbitMQUtils();
+
+ try {
+
+ receiver.consumeMessageById("2",QUEUE_NAME);
+ // String receivedMessage = receiver.consumeSelectedMessage(1,QUEUE_NAME);
+// String receivedMessage = String.valueOf(receiver.readMessages(QUEUE_NAME,false));
+ // System.out.println("Received message: " + receivedMessage);
+ } catch (Exception e) {
+ e.printStackTrace();
}
+// // 鍒涘缓杩炴帴宸ュ巶
+// ConnectionFactory factory = new ConnectionFactory();
+// factory.setHost("10.153.19.150");
+// //factory.setHost("localhost");
+// try (Connection connection = factory.newConnection();
+// Channel channel = connection.createChannel()) {
+// // 澹版槑闃熷垪
+// Map<String, Object> args = new HashMap<>();
+// args.put("x-max-length-bytes",1024 * 1024);
+//// args.put("x-max-length",5000);
+// channel.queueDeclare(QUEUE_NAME, false, false, false, args);
+//
+// // 鍒涘缓娑堣垂鑰�
+// DeliverCallback deliverCallback = (consumerTag, delivery) -> {
+// String receivedMessage = new String(delivery.getBody(), "UTF-8");
+// System.out.println(" [x] Received '" + receivedMessage + "'");
+// };
+// // 寮�濮嬫秷璐规秷鎭�
+// channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
+// });
+// }
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
new file mode 100644
index 0000000..5c39775
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
@@ -0,0 +1,35 @@
+package com.mes.service;
+
+import com.mes.entity.DownGlassInfo;
+
+import java.util.Collections;
+import java.util.List;
+
+public class Plcaction extends Thread {
+
+ private static DownGlassInfoService downGlassInfoService; // 闈欐�佸彉閲�
+
+ public static void setDownGlassInfoService(DownGlassInfoService service) {
+ downGlassInfoService = service;
+ }
+
+ private List<DownGlassInfo> downGlassInfo; //
+ private int i =1; //
+ @Override
+ public void run() {
+ while (!Thread.currentThread().isInterrupted()) {
+ try {
+ i++;
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ e.printStackTrace();
+ }
+
+
+
+ downGlassInfo = Collections.singletonList(downGlassInfoService.getDownGlassInfoById(1)); // 璁剧疆闇�瑕佹煡璇㈢殑id
+ System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
+ }
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ServiceContextHolder.java b/UnLoadGlassModule/src/main/java/com/mes/service/ServiceContextHolder.java
new file mode 100644
index 0000000..b05b2fd
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ServiceContextHolder.java
@@ -0,0 +1,14 @@
+package com.mes.service;
+
+public class ServiceContextHolder {
+
+ private static final ThreadLocal<DownGlassInfoService> downGlassInfoServiceThreadLocal = new ThreadLocal<>();
+
+ public static void setDownGlassInfoService(DownGlassInfoService service) {
+ downGlassInfoServiceThreadLocal.set(service);
+ }
+
+ public static DownGlassInfoService getDownGlassInfoService() {
+ return downGlassInfoServiceThreadLocal.get();
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ThreadExample.java b/UnLoadGlassModule/src/main/java/com/mes/service/ThreadExample.java
new file mode 100644
index 0000000..ef49205
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ThreadExample.java
@@ -0,0 +1,25 @@
+package com.mes.service;
+
+import com.mes.entity.DownGlassInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ThreadExample implements ApplicationRunner {
+
+ @Autowired
+ private DownGlassInfoService downGlassInfoService;
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ Thread thread = new Thread(() -> {
+ DownGlassInfo downGlassInfo = downGlassInfoService.getDownGlassInfoById(1); // 璁剧疆闇�瑕佹煡璇㈢殑id
+ System.out.println("Down Glass Info in new thread: " + downGlassInfo);
+ });
+ thread.start();
+ }
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java b/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
new file mode 100644
index 0000000..0b4ac1a
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
@@ -0,0 +1,28 @@
+package com.mes.tools;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+// Configuration 绫荤敤浜庡姞杞介厤缃枃浠跺苟鎻愪緵璁块棶閰嶇疆椤圭殑鏂规硶銆�
+public class Configuration {
+ private Properties properties; // Properties 瀵硅薄锛岀敤浜庡瓨鍌ㄩ厤缃枃浠朵腑鐨勯敭鍊煎銆�
+
+ // 鏋勯�犲嚱鏁帮紝鏍规嵁浼犲叆鐨勬枃浠跺悕鍔犺浇閰嶇疆鏂囦欢銆�
+ public Configuration(String fileName) throws IOException {
+ // 浣跨敤绫诲姞杞藉櫒鑾峰彇璧勬簮鏂囦欢鐨勮緭鍏ユ祦銆�
+ InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fileName);
+ // 濡傛灉杈撳叆娴佷负null锛岃〃绀烘湭鎵惧埌鏂囦欢锛屾姏鍑篎ileNotFoundException銆�
+ if (inputStream == null) {
+ throw new FileNotFoundException("Property file '" + fileName + "' not found in the classpath");
+ }
+ properties = new Properties(); // 瀹炰緥鍖朠roperties瀵硅薄銆�
+ properties.load(inputStream); // 浠庤緭鍏ユ祦鍔犺浇閰嶇疆椤广��
+ }
+
+ // 鏍规嵁閰嶇疆椤圭殑閿幏鍙栧叾瀵瑰簲鐨勫�笺��
+ public String getProperty(String key) {
+ return properties.getProperty(key);
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java b/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
new file mode 100644
index 0000000..e1ad35c
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
@@ -0,0 +1,108 @@
+package com.mes.tools;
+
+import com.google.gson.Gson;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+public class ExcelToJsonConverter {
+
+ public static void main(String[] args) {
+ String excelFilePath = "src/main/resources/JsonFile/alarm.xlsx";
+ String sheetName = "Sheet1";
+ int addressColumnIndex = 0;
+ int nameColumnIndex = 1;
+
+ //int unitColumnIndex = 2;
+ String outputFilePath = "src/main/resources/JsonFile/PlcAlarm.json";
+
+ try (Workbook workbook = new XSSFWorkbook(new FileInputStream(excelFilePath))) {
+ Sheet sheet = workbook.getSheet(sheetName);
+
+ List<LinkedHashMap<String, Object>> jsonList = new ArrayList<>();
+
+ Iterator<Row> rowIterator = sheet.iterator();
+ // Skip the header row
+ if (rowIterator.hasNext()) {
+ rowIterator.next();
+ }
+
+ int plcAddressLength = 0; // 璁板綍鎵�鏈� addressLenght 鐨勫拰
+ int addressIndex = 0; // 鑷鐨勫湴鍧�绱㈠紩
+ while (rowIterator.hasNext()) {
+ Row row = rowIterator.next();
+
+ Cell nameCell = row.getCell(nameColumnIndex);
+ Cell addressCell = row.getCell(addressColumnIndex);
+ // Cell unitCell = row.getCell(unitColumnIndex);
+
+ String name = nameCell.getStringCellValue();
+ String address = addressCell.getStringCellValue();
+ // String unit = unitCell.getStringCellValue();
+
+ // String addressIndex = extractAddressIndex(address);
+
+ LinkedHashMap<String, Object> jsonObject = new LinkedHashMap<>();
+ jsonObject.put("codeId", name);
+ jsonObject.put("addressIndex", addressIndex);
+
+ int addressLength = 0;
+ if (address.contains("~")) {
+ addressLength = 14;
+ } else {
+ addressLength = 2;
+ }
+ // jsonObject.put("addressLenght", String.valueOf(addressLength));
+
+ //jsonObject.put("unit", unit);
+
+ plcAddressLength += addressLength;
+
+ jsonList.add(jsonObject);
+ addressIndex++;
+ }
+
+ LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>();
+ resultObject.put("plcAddressBegin", "DB100.0");
+ resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength));
+ // resultObject.put("dataType", "word");
+ resultObject.put("dataType", "bit");
+ resultObject.put("parameteInfor", jsonList);
+
+ Gson gson = new Gson();
+ String jsonOutput = gson.toJson(resultObject);
+
+ try (FileWriter fileWriter = new FileWriter(outputFilePath)) {
+ fileWriter.write(jsonOutput);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
+ private static String extractAddressIndex(String address) {
+ // Assuming the address format is "DB103.DBW0" or "DB103.DBB100~DBB113"
+ if (address.startsWith("DB") && address.contains(".DBW")) {
+ int startIndex = address.indexOf(".DBW") + 4;
+ int endIndex = address.length();
+ return address.substring(startIndex, endIndex);
+ } else if (address.startsWith("DB") && address.contains(".DBB")) {
+ int startIndex2 = address.indexOf(".DBB") + 4;
+ int endIndex2 = address.indexOf("~");
+ return address.substring(startIndex2, endIndex2);
+ }
+ return "";
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java b/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
new file mode 100644
index 0000000..90c8a30
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
@@ -0,0 +1,127 @@
+package com.mes.tools;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.mes.common.PlcTools.S7control;
+import com.mes.entity.device.PlcBitInfo;
+import com.mes.entity.device.PlcBitObject;
+import com.mes.entity.device.PlcParameterInfo;
+import com.mes.entity.device.PlcParameterObject;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.List;
+
+public class InitUtil {
+ //鍒濆鍖杦ord
+ public static PlcParameterObject initword(String jsonFilePath) {
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ PlcParameterObject plcParameterObject = new PlcParameterObject();
+ plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+ PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcParameterInfo.setCodeId(codeid);
+ plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+ //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+ plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+ plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+ plcParameterObject.addPlcParameter(plcParameterInfo);
+ }
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ // plcParameterObject.setPlcParameterList(getplcvlues);
+
+ return plcParameterObject;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //鍒濆鍖朾it
+ public static PlcBitObject initbit(String jsonFilePath) {
+ PlcBitObject plcBitObject = new PlcBitObject();
+
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+ PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcBitInfo.setCodeId(codeid);
+ plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+ plcBitObject.addPlcBit(plcBitInfo);
+ }
+ System.out.println("");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ // false, true ,true };
+ // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+// plcBitObject.setPlcBitList(getplcvlues);
+ return plcBitObject;
+ }
+
+//
+ public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+// Boolean[] values1 = { false, true, true, true, false, false, true, false,
+// false, true ,true };
+// List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+ List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+ plcBitObject.setPlcBitList(getplcvlues);
+ }
+
+
+ public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java b/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
index c14c54f..aa4b161 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
@@ -1,35 +1,28 @@
package com.mes.tools;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.websocket.OnClose;
-import javax.websocket.OnError;
-import javax.websocket.OnMessage;
-import javax.websocket.OnOpen;
-import javax.websocket.Session;
-import javax.websocket.server.PathParam;
-import javax.websocket.server.ServerEndpoint;
-
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.stereotype.Component;
-
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-
@ServerEndpoint(value = "/api/talk/{username}")
-@Component
+@Component("webSocketServer")
public class WebSocketServer {
// @Autowired
// HomeMapper homeMapper;
- static ConfigurableApplicationContext applicationContext;
+ public static ConfigurableApplicationContext applicationContext;
// 瑙e喅鏃犳硶娉ㄥ叆mapper闂 //浣跨敤鏂规硶
// homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
diff --git a/UnLoadGlassModule/src/main/resources/application.yml b/UnLoadGlassModule/src/main/resources/application.yml
index d74069d..7a2e2be 100644
--- a/UnLoadGlassModule/src/main/resources/application.yml
+++ b/UnLoadGlassModule/src/main/resources/application.yml
@@ -15,18 +15,8 @@
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
- sd:
- url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
- mm:
- url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
- pp:
- url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
+ hangzhoumes:
+ url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/MES-UnLoadGlassModule-0.0.1-SNAPSHOT.jar.original b/UnLoadGlassModule/target/MES-UnLoadGlassModule-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 0000000..2be3c8d
--- /dev/null
+++ b/UnLoadGlassModule/target/MES-UnLoadGlassModule-0.0.1-SNAPSHOT.jar.original
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/application.yml b/UnLoadGlassModule/target/classes/application.yml
index d74069d..7a2e2be 100644
--- a/UnLoadGlassModule/target/classes/application.yml
+++ b/UnLoadGlassModule/target/classes/application.yml
@@ -15,18 +15,8 @@
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
- sd:
- url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
- mm:
- url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
- pp:
- url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
- username: root
- password: beibo.123/
- driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
+ hangzhoumes:
+ url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/maven-archiver/pom.properties b/UnLoadGlassModule/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..91a82d4
--- /dev/null
+++ b/UnLoadGlassModule/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=MES-UnLoadGlassModule
+groupId=com.MES-Module
+version=0.0.1-SNAPSHOT
diff --git a/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..ac32ba0
--- /dev/null
+++ b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,46 @@
+com\mes\controller\OrderTestController.class
+com\mes\service\ModuleB.class
+com\mes\common\PlcTools\S7object2.class
+com\mes\entity\userInfo\SysMenuItem.class
+com\mes\entity\userInfo\User.class
+com\mes\config\MyCorsConfig.class
+com\mes\MesApplication.class
+com\mes\tools\TokenTools.class
+com\mes\controller\userInfo\SysMenuItemController.class
+com\mes\exception\ServiceException.class
+com\mes\service\impl\OrderServiceImpl.class
+com\mes\exception\GlobalExceptionHandle.class
+com\mes\service\userInfo\SysMenuService.class
+com\mes\service\userInfo\SysErrorService.class
+com\mes\tools\WebSocketServer.class
+com\mes\config\MyCorsConfig$1.class
+com\mes\common\Result.class
+com\mes\controller\userInfo\SysMenuController.class
+com\mes\common\PlcTools\S7control.class
+com\mes\service\IOrderService.class
+com\mes\mapper\userInfo\UserMapper.class
+com\mes\common\Constants.class
+com\mes\entity\DownWorkstation.class
+com\mes\entity\userInfo\SysMenu.class
+com\mes\config\AppRunnerConfig.class
+com\mes\entity\DownStorageCageDetails.class
+com\mes\entity\DownStorageCage.class
+com\mes\config\MybatisPlusConfig.class
+com\mes\mapper\userInfo\SysMenuItemMapper.class
+com\mes\controller\dto\UserDTO.class
+com\mes\common\CacheUtil.class
+com\mes\common\PlcTools\S7object.class
+com\mes\service\userInfo\UserService.class
+com\mes\entity\DownGlassInfo.class
+com\mes\config\InterceptorConfig.class
+com\mes\entity\userInfo\SysError.class
+com\mes\service\ModuleA.class
+com\mes\config\WebSocketConfig.class
+com\mes\service\userInfo\SysMenuItemService.class
+com\mes\config\SwaggerConfig.class
+com\mes\controller\userInfo\UserController.class
+com\mes\mapper\userInfo\SysMenuMapper.class
+com\mes\entity\OrderTest.class
+com\mes\mapper\OrderTestMapper.class
+com\mes\mapper\userInfo\SysErrorMapper.class
+com\mes\common\interceptor\JwtInterceptor.class
diff --git a/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..ae89025
--- /dev/null
+++ b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,45 @@
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\userInfo\User.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\MesApplication.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\SwaggerConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\DownStorageCage.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\CacheUtil.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\interceptor\JwtInterceptor.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\PlcTools\S7control.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\MybatisPlusConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\WebSocketConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\userInfo\SysMenu.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\PlcTools\S7object.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuController.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\exception\ServiceException.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\mapper\userInfo\SysErrorMapper.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\InterceptorConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\AppRunnerConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuItemMapper.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuMapper.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\userInfo\SysMenuItemService.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\Result.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\DownWorkstation.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\userInfo\SysError.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\tools\WebSocketServer.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\PlcTools\S7object2.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\ModuleA.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\userInfo\SysErrorService.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\config\MyCorsConfig.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\OrderTest.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\userInfo\UserService.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuItemController.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\IOrderService.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\common\Constants.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\controller\OrderTestController.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\exception\GlobalExceptionHandle.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\tools\TokenTools.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\ModuleB.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\mapper\userInfo\UserMapper.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\DownGlassInfo.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\controller\userInfo\UserController.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\DownStorageCageDetails.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\userInfo\SysMenuService.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\entity\userInfo\SysMenuItem.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\service\impl\OrderServiceImpl.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\controller\dto\UserDTO.java
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\main\java\com\mes\mapper\OrderTestMapper.java
diff --git a/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..9c25a83
--- /dev/null
+++ b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+com\mes\MesApplicationTests.class
diff --git a/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..2feec22
--- /dev/null
+++ b/UnLoadGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+D:\xm4\HangZhouMes\UnLoadGlassModule\src\test\java\com\mes\MesApplicationTests.java
diff --git a/UnLoadGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml b/UnLoadGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
new file mode 100644
index 0000000..0a62c8b
--- /dev/null
+++ b/UnLoadGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.mes.MesApplicationTests" time="7.757" tests="1" errors="0" skipped="0" failures="0">
+ <properties>
+ <property name="sun.desktop" value="windows"/>
+ <property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
+ <property name="file.encoding.pkg" value="sun.io"/>
+ <property name="java.specification.version" value="1.8"/>
+ <property name="sun.cpu.isalist" value="amd64"/>
+ <property name="sun.jnu.encoding" value="GBK"/>
+ <property name="java.class.path" value="D:\xm4\HangZhouMes\UnLoadGlassModule\target\test-classes;D:\xm4\HangZhouMes\UnLoadGlassModule\target\classes;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.5.9\spring-boot-starter-web-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter\2.5.9\spring-boot-starter-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot\2.5.9\spring-boot-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.5.9\spring-boot-starter-logging-2.5.9.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-classic\1.2.10\logback-classic-1.2.10.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.1\log4j-to-slf4j-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\jul-to-slf4j\1.7.33\jul-to-slf4j-1.7.33.jar;C:\Users\SNG-012\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\SNG-012\.m2\repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.5.9\spring-boot-starter-json-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.6\jackson-datatype-jdk8-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.6\jackson-datatype-jsr310-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.6\jackson-module-parameter-names-2.12.6.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.9\spring-boot-starter-tomcat-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.56\tomcat-embed-core-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.56\tomcat-embed-el-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.56\tomcat-embed-websocket-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.3.1\mybatis-spring-boot-starter-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.5.9\spring-boot-starter-jdbc-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.3.1\mybatis-spring-boot-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis-spring\2.1.1\mybatis-spring-2.1.1.jar;C:\Users\SNG-012\.m2\repository\com\alibaba\fastjson\1.2.70\fastjson-1.2.70.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-commons\2.3.1.RELEASE\spring-data-commons-2.3.1.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\slf4j-api\1.7.33\slf4j-api-1.7.33.jar;C:\Users\SNG-012\.m2\repository\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar;C:\Users\SNG-012\.m2\repository\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.5.9\spring-boot-starter-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test\2.5.9\spring-boot-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.5.9\spring-boot-test-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;C:\Users\SNG-012\.m2\repository\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\net\minidev\accessors-smart\2.4.7\accessors-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;C:\Users\SNG-012\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\SNG-012\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;C:\Users\SNG-012\.m2\repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;C:\Users\SNG-012\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\SNG-012\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-test\5.3.15\spring-test-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\xmlunit\xmlunit-core\2.8.4\xmlunit-core-2.8.4.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter-test\2.3.1\mybatis-spring-boot-starter-test-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-test-autoconfigure\2.3.1\mybatis-spring-boot-test-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\auth0\java-jwt\3.10.3\java-jwt-3.10.3.jar;C:\Users\SNG-012\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\SNG-012\.m2\repository\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;C:\Users\SNG-012\.m2\repository\cn\hutool\hutool-all\5.4.0\hutool-all-5.4.0.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-boot-starter\3.5.1\mybatis-plus-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus\3.5.1\mybatis-plus-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.1\mybatis-plus-extension-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-core\3.5.1\mybatis-plus-core-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.1\mybatis-plus-annotation-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\github\jsqlparser\jsqlparser\4.3\jsqlparser-4.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.5.9\spring-boot-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\dynamic-datasource-spring-boot-starter\3.5.1\dynamic-datasource-spring-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.5.9\spring-boot-starter-aop-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\SNG-012\.m2\repository\com\google\guava\guava\20.0\guava-20.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\SNG-012\.m2\repository\com\github\xingshuangs\iot-communication\1.4.2\iot-communication-1.4.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.5.9\spring-boot-starter-cache-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context-support\5.3.15\spring-context-support-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\rabbitmq\amqp-client\5.13.1\amqp-client-5.13.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-amqp\2.5.9\spring-boot-starter-amqp-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-messaging\5.3.15\spring-messaging-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\amqp\spring-rabbit\2.3.14\spring-rabbit-2.3.14.jar;C:\Users\SNG-012\.m2\repository\org\springframework\amqp\spring-amqp\2.3.14\spring-amqp-2.3.14.jar;C:\Users\SNG-012\.m2\repository\org\springframework\retry\spring-retry\1.3.1\spring-retry-1.3.1.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.0\jackson-databind-2.13.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.0\jackson-core-2.13.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.0\jackson-annotations-2.13.0.jar;C:\Users\SNG-012\.m2\repository\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.5.9\spring-boot-starter-data-jpa-2.5.9.jar;C:\Users\SNG-012\.m2\repository\jakarta\transaction\jakarta.transaction-api\1.3.3\jakarta.transaction-api-1.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\persistence\jakarta.persistence-api\2.2.3\jakarta.persistence-api-2.2.3.jar;C:\Users\SNG-012\.m2\repository\org\hibernate\hibernate-core\5.4.33\hibernate-core-5.4.33.jar;C:\Users\SNG-012\.m2\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;C:\Users\SNG-012\.m2\repository\org\javassist\javassist\3.27.0-GA\javassist-3.27.0-GA.jar;C:\Users\SNG-012\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\SNG-012\.m2\repository\org\jboss\jandex\2.2.3.Final\jandex-2.2.3.Final.jar;C:\Users\SNG-012\.m2\repository\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;C:\Users\SNG-012\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.2.Final\hibernate-commons-annotations-5.1.2.Final.jar;C:\Users\SNG-012\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.5\jaxb-runtime-2.3.5.jar;C:\Users\SNG-012\.m2\repository\org\glassfish\jaxb\txw2\2.3.5\txw2-2.3.5.jar;C:\Users\SNG-012\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;C:\Users\SNG-012\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-jpa\2.5.8\spring-data-jpa-2.5.8.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-orm\5.3.15\spring-orm-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aspects\5.3.15\spring-aspects-5.3.15.jar;"/>
+ <property name="java.vm.vendor" value="Oracle Corporation"/>
+ <property name="sun.arch.data.model" value="64"/>
+ <property name="user.variant" value=""/>
+ <property name="java.vendor.url" value="http://java.oracle.com/"/>
+ <property name="user.timezone" value="Asia/Shanghai"/>
+ <property name="java.vm.specification.version" value="1.8"/>
+ <property name="os.name" value="Windows 10"/>
+ <property name="user.country" value="CN"/>
+ <property name="sun.java.launcher" value="SUN_STANDARD"/>
+ <property name="sun.boot.library.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\bin"/>
+ <property name="sun.java.command" value="C:\Users\SNG-012\AppData\Local\Temp\surefire6753504794343487260\surefirebooter2512628117312458217.jar C:\Users\SNG-012\AppData\Local\Temp\surefire6753504794343487260 2024-02-26T10-31-20_305-jvmRun1 surefire218270707117368528tmp surefire_05038678481118318350tmp"/>
+ <property name="surefire.test.class.path" value="D:\xm4\HangZhouMes\UnLoadGlassModule\target\test-classes;D:\xm4\HangZhouMes\UnLoadGlassModule\target\classes;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.5.9\spring-boot-starter-web-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter\2.5.9\spring-boot-starter-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot\2.5.9\spring-boot-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.5.9\spring-boot-starter-logging-2.5.9.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-classic\1.2.10\logback-classic-1.2.10.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.1\log4j-to-slf4j-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\jul-to-slf4j\1.7.33\jul-to-slf4j-1.7.33.jar;C:\Users\SNG-012\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\SNG-012\.m2\repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.5.9\spring-boot-starter-json-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.6\jackson-datatype-jdk8-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.6\jackson-datatype-jsr310-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.6\jackson-module-parameter-names-2.12.6.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.9\spring-boot-starter-tomcat-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.56\tomcat-embed-core-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.56\tomcat-embed-el-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.56\tomcat-embed-websocket-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.3.1\mybatis-spring-boot-starter-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.5.9\spring-boot-starter-jdbc-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.3.1\mybatis-spring-boot-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis-spring\2.1.1\mybatis-spring-2.1.1.jar;C:\Users\SNG-012\.m2\repository\com\alibaba\fastjson\1.2.70\fastjson-1.2.70.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-commons\2.3.1.RELEASE\spring-data-commons-2.3.1.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\slf4j-api\1.7.33\slf4j-api-1.7.33.jar;C:\Users\SNG-012\.m2\repository\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar;C:\Users\SNG-012\.m2\repository\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.5.9\spring-boot-starter-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test\2.5.9\spring-boot-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.5.9\spring-boot-test-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;C:\Users\SNG-012\.m2\repository\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\net\minidev\accessors-smart\2.4.7\accessors-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;C:\Users\SNG-012\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\SNG-012\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;C:\Users\SNG-012\.m2\repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;C:\Users\SNG-012\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\SNG-012\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-test\5.3.15\spring-test-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\xmlunit\xmlunit-core\2.8.4\xmlunit-core-2.8.4.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter-test\2.3.1\mybatis-spring-boot-starter-test-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-test-autoconfigure\2.3.1\mybatis-spring-boot-test-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\auth0\java-jwt\3.10.3\java-jwt-3.10.3.jar;C:\Users\SNG-012\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\SNG-012\.m2\repository\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;C:\Users\SNG-012\.m2\repository\cn\hutool\hutool-all\5.4.0\hutool-all-5.4.0.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-boot-starter\3.5.1\mybatis-plus-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus\3.5.1\mybatis-plus-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.1\mybatis-plus-extension-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-core\3.5.1\mybatis-plus-core-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.1\mybatis-plus-annotation-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\github\jsqlparser\jsqlparser\4.3\jsqlparser-4.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.5.9\spring-boot-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\dynamic-datasource-spring-boot-starter\3.5.1\dynamic-datasource-spring-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.5.9\spring-boot-starter-aop-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\SNG-012\.m2\repository\com\google\guava\guava\20.0\guava-20.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\SNG-012\.m2\repository\com\github\xingshuangs\iot-communication\1.4.2\iot-communication-1.4.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.5.9\spring-boot-starter-cache-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context-support\5.3.15\spring-context-support-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\rabbitmq\amqp-client\5.13.1\amqp-client-5.13.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-amqp\2.5.9\spring-boot-starter-amqp-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-messaging\5.3.15\spring-messaging-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\amqp\spring-rabbit\2.3.14\spring-rabbit-2.3.14.jar;C:\Users\SNG-012\.m2\repository\org\springframework\amqp\spring-amqp\2.3.14\spring-amqp-2.3.14.jar;C:\Users\SNG-012\.m2\repository\org\springframework\retry\spring-retry\1.3.1\spring-retry-1.3.1.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.0\jackson-databind-2.13.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.0\jackson-core-2.13.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.0\jackson-annotations-2.13.0.jar;C:\Users\SNG-012\.m2\repository\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.5.9\spring-boot-starter-data-jpa-2.5.9.jar;C:\Users\SNG-012\.m2\repository\jakarta\transaction\jakarta.transaction-api\1.3.3\jakarta.transaction-api-1.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\persistence\jakarta.persistence-api\2.2.3\jakarta.persistence-api-2.2.3.jar;C:\Users\SNG-012\.m2\repository\org\hibernate\hibernate-core\5.4.33\hibernate-core-5.4.33.jar;C:\Users\SNG-012\.m2\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;C:\Users\SNG-012\.m2\repository\org\javassist\javassist\3.27.0-GA\javassist-3.27.0-GA.jar;C:\Users\SNG-012\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\SNG-012\.m2\repository\org\jboss\jandex\2.2.3.Final\jandex-2.2.3.Final.jar;C:\Users\SNG-012\.m2\repository\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;C:\Users\SNG-012\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.2.Final\hibernate-commons-annotations-5.1.2.Final.jar;C:\Users\SNG-012\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.5\jaxb-runtime-2.3.5.jar;C:\Users\SNG-012\.m2\repository\org\glassfish\jaxb\txw2\2.3.5\txw2-2.3.5.jar;C:\Users\SNG-012\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;C:\Users\SNG-012\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-jpa\2.5.8\spring-data-jpa-2.5.8.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-orm\5.3.15\spring-orm-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aspects\5.3.15\spring-aspects-5.3.15.jar;"/>
+ <property name="sun.cpu.endian" value="little"/>
+ <property name="user.home" value="C:\Users\SNG-012"/>
+ <property name="user.language" value="zh"/>
+ <property name="java.specification.vendor" value="Oracle Corporation"/>
+ <property name="java.home" value="C:\Program Files\Java\jdk1.8.0_121\jre"/>
+ <property name="basedir" value="D:\xm4\HangZhouMes\UnLoadGlassModule"/>
+ <property name="file.separator" value="\"/>
+ <property name="line.separator" value=" "/>
+ <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+ <property name="java.specification.name" value="Java Platform API Specification"/>
+ <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/>
+ <property name="surefire.real.class.path" value="C:\Users\SNG-012\AppData\Local\Temp\surefire6753504794343487260\surefirebooter2512628117312458217.jar"/>
+ <property name="sun.boot.class.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\classes"/>
+ <property name="user.script" value=""/>
+ <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+ <property name="java.runtime.version" value="1.8.0_121-b13"/>
+ <property name="user.name" value="SNG-012"/>
+ <property name="path.separator" value=";"/>
+ <property name="os.version" value="10.0"/>
+ <property name="java.endorsed.dirs" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\endorsed"/>
+ <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
+ <property name="file.encoding" value="GBK"/>
+ <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
+ <property name="localRepository" value="C:\Users\SNG-012\.m2\repository"/>
+ <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
+ <property name="java.io.tmpdir" value="C:\Users\SNG-012\AppData\Local\Temp\"/>
+ <property name="idea.version" value="2021.1.3"/>
+ <property name="java.version" value="1.8.0_121"/>
+ <property name="user.dir" value="D:\xm4\HangZhouMes\UnLoadGlassModule"/>
+ <property name="os.arch" value="amd64"/>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+ <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/>
+ <property name="sun.os.patch.level" value=""/>
+ <property name="java.library.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\vm\bin\;D:\jdk17.0.8\bin;D:\apache-jmeter-5.4.1\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:/benxiaohai/mysql8/mysql8/mysql8\bin;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\Tomcat\apache-tomcat-8.0.39\bin;D:\涓嬭浇\ADB;D;\github\platform-tools;C:\Program Files\python;C:\Program Files\python\Scripts;D:\BtSoft\panel\script;C:\Program Files\Google\Chrome\Application;C:\Program Files\apache-maven-3.9.1\bin;D:\寰俊web寮�鍙戣�呭伐鍏穃dll;C:\Pro;ram Files (x86)\NetSarang\Xshell 7\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\宸ヤ綔\apache-ant-1.9.16-bin\apache-ant-1.9.16\bin;D:\宸ヤ綔\Microsoft VS Code\bin;C:\Program Files (x86)\nodejs\;C:\Program Files\Tomcat2\apache-tomcat2\bin;C:\Program Files\Docker;C:\Program Files\Docker\Docker\resources\bin;D:\Erlang OTP\bin;D:\MQ\rabbitmq_server-3.12.12\sbin;D:\python\Scripts\;D:\python\;C:\Users\SNG-012\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Google\Chrome\Application;C:\Users\SNG-012\AppData\Roaming\npm;."/>
+ <property name="java.vm.info" value="mixed mode"/>
+ <property name="java.vendor" value="Oracle Corporation"/>
+ <property name="java.vm.version" value="25.121-b13"/>
+ <property name="java.ext.dirs" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext;C:\Windows\Sun\Java\lib\ext"/>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
+ <property name="java.class.version" value="52.0"/>
+ </properties>
+ <testcase name="contextLoads" classname="com.mes.MesApplicationTests" time="0.09"/>
+</testsuite>
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt b/UnLoadGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
new file mode 100644
index 0000000..92fc39e
--- /dev/null
+++ b/UnLoadGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.mes.MesApplicationTests
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.757 s - in com.mes.MesApplicationTests
--
Gitblit v1.8.0