wang
2024-03-28 eb91a871e3a96a04870cfbb56d8f35d8561a1c8d
内容调整
42个文件已添加
33个文件已修改
1个文件已删除
6433 ■■■■■ 已修改文件
CacheGlassModule/src/main/resources/banner.txt 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/MES-Module (1).iml 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/MES-Module.iml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/src/main/resources/application.yml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/maven-archiver/pom.properties 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/config.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package-lock.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/unloadrequest.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/webSocket.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/HomeView.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass.zip 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/vite.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/mockPLCData.properties 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json 371 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json 610 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json 378 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/src/main/resources/application.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json 371 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcMes.json 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json 610 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcRead.json 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcSign.json 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcState.json 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/PlcTest.json 378 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/Plcframe.json 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/sign.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/JsonFile/test.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
UnLoadGlassModule/target/classes/application.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CacheGlassModule/src/main/resources/banner.txt
New file
@@ -0,0 +1,32 @@
________                ________                 ___       _____________   ____
`MMMMMMMb.          68b `MMMMMMMb.               `MMb     dMM'`MMMMMMMMM  6MMMMb\
 MM    `Mb          Y89  MM    `Mb                MMM.   ,PMM  MM      \ 6M'    `
 MM     MM   ____   ___  MM     MM   _____        M`Mb   d'MM  MM        MM
 MM    .M9  6MMMMb  `MM  MM    .M9  6MMMMMb       M YM. ,P MM  MM    ,   YM.
 MMMMMMM(  6M'  `Mb  MM  MMMMMMM(  6M'   `Mb      M `Mb d' MM  MMMMMMM    YMMMMb
 MM    `Mb MM    MM  MM  MM    `Mb MM     MM      M  YM.P  MM  MM    `        `Mb
 MM     MM MMMMMMMM  MM  MM     MM MM     MM      M  `Mb'  MM  MM              MM
 MM     MM MM        MM  MM     MM MM     MM      M   YP   MM  MM              MM
 MM    .M9 YM    d9  MM  MM    .M9 YM.   ,M9 68b  M   `'   MM  MM      / L    ,M9
_MMMMMMM9'  YMMMM9  _MM__MMMMMMM9'  YMMMMM9  Y89 _M_      _MM__MMMMMMMMM MYMMMM9
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机      永无BUG                  //
TemperingGlassModule/MES-Module (1).iml
New file
@@ -0,0 +1,139 @@
<?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="MavenCustomPomFilePath">
    <option name="mavenPomFileUrl" value="file://$MODULE_DIR$/effective-pom.xml" />
  </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$/src/main/java">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
    </content>
    <content url="file://$MODULE_DIR$/src/main/resources">
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
    </content>
    <content url="file://$MODULE_DIR$/src/test/java">
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
    </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>
TemperingGlassModule/MES-Module.iml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <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" />
  </component>
</module>
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
@@ -2,11 +2,13 @@
import com.mes.entity.userInfo.SysMenuItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface SysMenuItemMapper {
     @Select("select  * from sys_menu_item as a where a.state=1 order by a.listSort")
     List<SysMenuItem> findAll() ;
}
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
@@ -16,9 +16,8 @@
    User findOne(Integer id);
    @Select("select user_name FROM `user` where login_name=#{LoginName}  ")
    @Select("select user_name FROM `user` where login_name=#{LoginName}")
    User findOneLoginName(String LoginName);
    @Select("select count(id) FROM `user` where login_name=#{userName} and password=#{password}  ")
    int  checkUser(@Param("userName") String userName,@Param("password") String password);
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
@@ -7,7 +7,7 @@
import org.springframework.stereotype.Service;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysErrorService {
    private final SysErrorMapper sysErrorMapper;
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
@@ -9,7 +9,7 @@
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysMenuItemService {
    @Autowired
    SysMenuItemMapper sysMenuItemMapper;
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
@@ -9,7 +9,7 @@
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysMenuService {
    @Autowired
    private SysMenuMapper sysMenuMapper;
TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
@@ -2,23 +2,18 @@
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.mes.common.CacheUtil;
import com.mes.common.Result;
import com.mes.controller.dto.UserDTO;
import com.mes.entity.userInfo.User;
import com.mes.mapper.userInfo.UserMapper;
import com.mes.controller.dto.UserDTO;
import com.mes.tools.TokenTools;
import org.apache.ibatis.jdbc.Null;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class UserService {
    @Autowired
TemperingGlassModule/src/main/resources/application.yml
@@ -2,31 +2,17 @@
server:
  port: 8080
  servlet:
   context-path: /mesModuleTools
    context-path: /mesModuleTools
spring:
  datasource:
    dynamic:
      primary: user_info #设置默认的数据源或者数据源组,默认值即为master
      primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        user_info:
          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
          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
        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
TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original
Binary files differ
TemperingGlassModule/target/maven-archiver/pom.properties
New file
@@ -0,0 +1,3 @@
artifactId=MES-Module
groupId=com.MES-Module
version=0.0.1-SNAPSHOT
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
New file
@@ -0,0 +1,54 @@
com\mes\controller\OrderTestController.class
com\mes\common\PlcTools\S7object2.class
com\mes\MesApplication.class
com\mes\controller\userInfo\SysMenuItemController.class
com\mes\exception\ServiceException.class
com\mes\entity\UpPattenUsage.class
com\mes\service\userInfo\SysErrorService.class
com\mes\config\MyCorsConfig$1.class
com\mes\common\Result.class
com\mes\entity\Engineering.class
com\mes\common\PlcTools\S7control.class
com\mes\entity\BigStorageCage.class
com\mes\service\IOrderService.class
com\mes\mapper\userInfo\UserMapper.class
com\mes\common\Constants.class
com\mes\entity\GlassFilms.class
com\mes\entity\BigStorageCageDetails.class
com\mes\entity\DownStorageCagedetails.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\config\InterceptorConfig.class
com\mes\service\userInfo\SysMenuItemService.class
com\mes\entity\OrderTest.class
com\mes\entity\UpWorkstation.class
com\mes\entity\userInfo\SysMenuItem.class
com\mes\entity\userInfo\User.class
com\mes\config\MyCorsConfig.class
com\mes\entity\GlassInfo.class
com\mes\tools\TokenTools.class
com\mes\service\impl\OrderServiceImpl.class
com\mes\exception\GlobalExceptionHandle.class
com\mes\service\userInfo\SysMenuService.class
com\mes\tools\WebSocketServer.class
com\mes\controller\userInfo\SysMenuController.class
com\mes\entity\DownWorkstation.class
com\mes\entity\userInfo\SysMenu.class
com\mes\config\AppRunnerConfig.class
com\mes\entity\DownStorageCage.class
com\mes\config\MybatisPlusConfig.class
com\mes\service\userInfo\UserService.class
com\mes\entity\DownGlassInfo.class
com\mes\entity\userInfo\SysError.class
com\mes\entity\EdgStorageCage.class
com\mes\config\WebSocketConfig.class
com\mes\config\SwaggerConfig.class
com\mes\controller\userInfo\UserController.class
com\mes\mapper\userInfo\SysMenuMapper.class
com\mes\entity\Tempering.class
com\mes\mapper\OrderTestMapper.class
com\mes\mapper\userInfo\SysErrorMapper.class
com\mes\entity\EdgStorageCageDetails.class
com\mes\common\interceptor\JwtInterceptor.class
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
New file
@@ -0,0 +1,53 @@
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\Constants.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\UpPattenUsage.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownGlassInfo.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\interceptor\JwtInterceptor.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\Result.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\WebSocketConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysErrorMapper.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\UserMapper.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\UserService.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuMapper.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7object.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7object2.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\AppRunnerConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\Tempering.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\InterceptorConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\SwaggerConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\UpWorkstation.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\User.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\EdgStorageCageDetails.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\OrderTest.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\BigStorageCageDetails.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\dto\UserDTO.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\UserController.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysMenuItemService.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\impl\OrderServiceImpl.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\OrderTestMapper.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\tools\TokenTools.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\BigStorageCage.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysError.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7control.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\EdgStorageCage.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuController.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\Engineering.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\OrderTestController.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownWorkstation.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysMenuService.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\GlassInfo.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysErrorService.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\MesApplication.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownStorageCage.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\exception\GlobalExceptionHandle.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\GlassFilms.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\MybatisPlusConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\MyCorsConfig.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuItemController.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\CacheUtil.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\tools\WebSocketServer.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownStorageCagedetails.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysMenu.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\exception\ServiceException.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysMenuItem.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuItemMapper.java
D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\IOrderService.java
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
New file
@@ -0,0 +1 @@
com\mes\MesApplicationTests.class
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
New file
@@ -0,0 +1 @@
D:\xm4\HangZhouMes\TemperingGlassModule\src\test\java\com\mes\MesApplicationTests.java
TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
New file
@@ -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.389" 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\TemperingGlassModule\target\test-classes;D:\xm4\HangZhouMes\TemperingGlassModule\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\com\fasterxml\jackson\core\jackson-databind\2.12.6\jackson-databind-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.12.6\jackson-annotations-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.12.6\jackson-core-2.12.6.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\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.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\surefire33896117267200105\surefirebooter1902636531692371884.jar C:\Users\SNG-012\AppData\Local\Temp\surefire33896117267200105 2024-03-07T11-50-56_835-jvmRun1 surefire967000318635874576tmp surefire_08363905452971083609tmp"/>
    <property name="surefire.test.class.path" value="D:\xm4\HangZhouMes\TemperingGlassModule\target\test-classes;D:\xm4\HangZhouMes\TemperingGlassModule\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\com\fasterxml\jackson\core\jackson-databind\2.12.6\jackson-databind-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.12.6\jackson-annotations-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.12.6\jackson-core-2.12.6.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\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.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\TemperingGlassModule"/>
    <property name="file.separator" value="\"/>
    <property name="line.separator" value="&#10;"/>
    <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\surefire33896117267200105\surefirebooter1902636531692371884.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\TemperingGlassModule"/>
    <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.225"/>
</testsuite>
TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
New file
@@ -0,0 +1,4 @@
-------------------------------------------------------------------------------
Test set: com.mes.MesApplicationTests
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.389 s - in com.mes.MesApplicationTests
UI-Project/config.js
@@ -1,4 +1,5 @@
export default {
  serverUrl:"localhost:8080/mesModuleTools"
  serverUrl:"localhost:8080/mesModuleTools",
  serverUrl2:"localhost:8081/mesModuleTools"
  //serverUrl:"res.abeim.cn"
}
UI-Project/package-lock.json
@@ -1,11 +1,11 @@
{
  "name": "northglass-erp",
  "name": "northglass-mes",
  "version": "0.0.0",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "name": "northglass-erp",
      "name": "northglass-mes",
      "version": "0.0.0",
      "dependencies": {
        "@element-plus/icons-vue": "^2.1.0",
UI-Project/package.json
@@ -1,5 +1,5 @@
{
  "name": "northglass-erp",
  "name": "northglass-mes",
  "version": "0.0.0",
  "private": true,
  "scripts": {
UI-Project/src/utils/unloadrequest.js
New file
@@ -0,0 +1,49 @@
import axios from 'axios'
import config from '../../config';
import useUserInfoStore from '@/stores/userInfo'
const userStore=useUserInfoStore()
const unloadrequest = axios.create({
    baseURL: `http://${config.serverUrl2}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 5000
})
//
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
unloadrequest.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
    if(userStore.user){
        config.headers['token'] = userStore.user.token;
    }
      // 设置请求头
    return config
}, error => {
    return Promise.reject(error)
});
// response 拦截器
// 可以在接口响应后统一处理结果
unloadrequest.interceptors.response.use(
    response => {
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)
export default unloadrequest
UI-Project/src/utils/webSocket.js
@@ -6,7 +6,7 @@
var serverPort = "/ws"; // webSocket连接端口
var wsuri = "ws://127.0.0.1:12345/ws";
var wsuri = "ws://localhost:8081/mesModuleTools";
function createWebSocket(callback) {
UI-Project/src/views/HomeView.vue
@@ -3,21 +3,21 @@
import { sendSock, createWebSocket, closeSock } from "@/utils/webSocket"
function global_callback(msg) {
  console.log("websocket的回调函数收到服务器信息:" + JSON.stringify(msg));
  // console.log("收到服务器信息:" + msg);
}
function close(){
 closeSock();
// function global_callback(msg) {
//   console.log("websocket的回调函数收到服务器信息:" + JSON.stringify(msg));
//   // console.log("收到服务器信息:" + msg);
// }
// function close(){
//  closeSock();
}
function sendMessage(){
  sendSock("123")
}
function createSocket(){
  createWebSocket(global_callback);
}
</script>
// }
// function sendMessage(){
//   sendSock("123")
// }
// function createSocket(){
//   createWebSocket(global_callback);
// }
// </script>
<template>
UI-Project/src/views/UnLoadGlass.zip
Binary files differ
UI-Project/vite.config.js
@@ -33,7 +33,7 @@
      '/api2': {
        target: 'localhost:8080/mesModuleTools',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api2/, ""),
        rewrite: (path) => path.replace(/^\/api2/, "mesModuleTools"),
      },
    }
  }
UnLoadGlassModule/mockPLCData.properties
New file
@@ -0,0 +1,13 @@
#Mock S7 PLC Data
#Wed Mar 27 10:21:54 CST 2024
DB4.0.0=false
DB4.1.1=false
DB4.1.0=false
DB4.0.7=false
DB4.0.6=false
DB4.0.5=true
DB4.0.4=true
DB4.0.3=true
DB4.0.2=true
DB4.0.1=true
DB101.0=1
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java
New file
@@ -0,0 +1,96 @@
package com.mes.common.PlcTools;
import java.util.HashMap;
import java.util.Map;
/**
 * 模拟S7 PLC的简单实现,用于测试和开发阶段
 */
public class MockS7PLC {
    // 使用Map模拟PLC的内存存储,键是地址,值是存储的数据
    private Map<String, byte[]> memory = new HashMap<>();
    private static volatile MockS7PLC instance; // 单例实例
    public static MockS7PLC getInstance() {
        if (instance == null) {
            synchronized (MockS7PLC.class) {
                if (instance == null)
                    instance = new MockS7PLC();
            }
        }
        return instance;
    }
    /**
     * 模拟写入一个或多个字节到指定地址
     *
     * @param address 地址
     * @param data    要写入的数据
     */
    public void writeByte(String address, byte[] data) {
        memory.put(address, data);
    }
    /**
     * 模拟从指定地址读取一定数量的字节
     *
     * @param address 地址
     * @param count   要读取的字节数
     * @return 读取到的数据
     */
    public byte[] readByte(String address, int count) {
        byte[] bytes = memory.getOrDefault(address, new byte[0]);
        if (count >= 0 && count <= bytes.length) {
            byte[] result = new byte[count];
            System.arraycopy(bytes, 0, result, 0, count);
            return result;
        } else {
            // 如果请求的字节数超出了实际可用的字节数,则返回全部可用的字节
            return bytes;
        }
    }
    /**
     * 模拟写入一个16位整数到指定地址
     *
     * @param address 地址
     * @param data    要写入的数据
     */
    public void writeInt16(String address, short data) {
        memory.put(address, new byte[]{(byte) (data >> 8), (byte) data});
    }
    /**
     * 模拟从指定地址读取一个16位整数
     *
     * @param address 地址
     * @return 读取到的数据
     */
    public short readInt16(String address) {
        byte[] data = memory.getOrDefault(address, new byte[]{0, 0});
        return (short) ((data[0] << 8) | (data[1] & 0xFF));
    }
    /**
     * 模拟写入一个布尔值到指定地址
     *
     * @param address 地址
     * @param data    要写入的数据
     */
    public void writeBoolean(String address, boolean data) {
        memory.put(address, new byte[]{(byte) (data ? 1 : 0)});
    }
    /**
     * 模拟从指定地址读取一个布尔值
     *
     * @param address 地址
     * @return 读取到的数据
     */
    public boolean readBoolean(String address) {
        return memory.getOrDefault(address, new byte[]{0})[0] != 0;
    }
    // 根据需要,您可以添加更多模拟PLC操作的方法
}
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java
New file
@@ -0,0 +1,276 @@
package com.mes.common.PlcTools;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MockS7PLCtwo {
    private static volatile MockS7PLCtwo instance; // 单例实例
    private ConcurrentHashMap<String, String> memory = new ConcurrentHashMap<>();
    private String storageFilePath = "mockPLCData.properties";
    // 私有化构造函数
    private MockS7PLCtwo() {
        // 在构造函数中尝试加载现有的模拟数据
        try (FileInputStream fis = new FileInputStream(storageFilePath)) {
            Properties properties = new Properties();
            properties.load(fis);
            properties.forEach((key, value) -> memory.put(String.valueOf(key), String.valueOf(value)));
        } catch (IOException e) {
            System.out.println("没有找到现有的模拟数据文件,将创建一个新的。");
        }
    }
    // 公共静态方法获取类的唯一实例
    public static MockS7PLCtwo getInstance() {
        if (instance == null) {
            synchronized (MockS7PLCtwo.class) {
                if (instance == null)
                    instance = new MockS7PLCtwo();
            }
        }
        return instance;
    }
    // 修改写入方法以持久化数据
    public void writeByte(String address, byte[] data) {
        memory.put(address, new String(data, StandardCharsets.ISO_8859_1));
        saveMemory();
    }
    // 修改读取方法以从持久化的数据中读取
    public byte[] readByte(String address,int count) {
        String value = memory.getOrDefault(address, "");
        byte[] bytes = value.getBytes(StandardCharsets.ISO_8859_1);
        if (count >= 0 && count <= bytes.length) {
            byte[] result = new byte[count];
            System.arraycopy(bytes, 0, result, 0, count);
            return result;
        } else {
            // 如果请求的字节数超出了实际可用的字节数,则返回全部可用的字节
            return bytes;
        }
    }
    public void writeInt16(String address, short data) {
        memory.put(address, Short.toString(data));
        saveMemory();
    }
    public Short readInt16(String address) {
        String value = memory.get(address);
        return value != null ? Short.parseShort(value) : null;
    }
    public void writeBoolean(String address, boolean data) {
        memory.put(address, Boolean.toString(data));
        saveMemory();
    }
    public Boolean readBoolean(String address) {
        String value = memory.get(address);
        return value != null ? Boolean.parseBoolean(value) : null;
    }
    public void writeString(String address, String data) {
        memory.put(address, data);
        saveMemory();
    }
    public String readString(String address) {
        return memory.getOrDefault(address, "");
    }
    public void writeTime(String address, long data) {
        memory.put(address, Long.toString(data));
        saveMemory();
    }
    public Long readTime(String address) {
        String value = memory.get(address);
        return value != null ? Long.parseLong(value) : null;
    }
    // 添加一个方法来保存数据到文件
    private void saveMemory() {
        Properties properties = new Properties();
        properties.putAll(memory);
        try (FileOutputStream fos = new FileOutputStream(storageFilePath)) {
            properties.store(fos, "Mock S7 PLC Data");
        } catch (IOException e) {
            System.out.println("保存模拟数据失败:" + e.getMessage());
        }
    }
    // 连续写入多个Word
    public void writeword(String address, List<Short> data) {
        for (int i = 0; i < data.size(); i++) {
            String addr = calculateAddress(address, i * 2); // 假设每个word占两个地址单位
            memory.put(addr, Short.toString(data.get(i)));
        }
        saveMemory();
    }
    // 不连续地址word写入多个Word
    public void WriteWords(List<String> addresses, List<Short> datas) {
        if (addresses.size() != datas.size()) {
            throw new IllegalArgumentException("地址列表和数据列表的大小必须相同。");
        }
        for (int i = 0; i < addresses.size(); i++) {
            String addr = addresses.get(i);
            short data = datas.get(i);
            // 假设这里使用内存映射来模拟PLC写入操作
            memory.put(addr, Short.toString(data));
        }
        saveMemory(); // 在所有数据写入后保存更改
    }
    // 连续读取多个Word
    public List<Short> readwords(String address, int count) {
        List<Short> result = new ArrayList<>();
        for (int i = 0; i < count; i++) {
            String addr = calculateAddress(address, i * 2); // 同上,每个word占两个地址单位
            //System.out.println(addr);
            String value = memory.get(addr);
            if (value != null) {
                result.add(Short.parseShort(value));
            } else {
                result.add(null); // 或者考虑抛出异常或其他错误处理
            }
        }
        return result;
    }
    public List<Short> ReadWords(List<String> addresses) {
        List<Short> datas = new ArrayList<>();
        for (String addr : addresses) {
            // 从内存映射中获取数据
            String dataStr = memory.get(addr);
            // 将字符串转换成short类型,并添加到结果列表中
            // 这里假设数据已经以适当的方式存储(例如,作为短整型的字符串表示)
            // 如果读取的数据为空或转换失败,你可能需要处理这些情况
            try {
                short data = Short.parseShort(dataStr);
                datas.add(data);
            } catch (NumberFormatException e) {
                System.err.println("读取地址 " + addr + " 的数据时出错: " + e.getMessage());
            }
        }
        return datas;
    }
    // 连续写入多个Bit
    public void writebits(String address, List<Boolean> data) {
        for (int i = 0; i < data.size(); i++) {
            String addr = calculateAddress(address, i); // 假设每个bit占一个地址单位
            memory.put(addr, Boolean.toString(data.get(i)));
        }
        saveMemory();
    }
//bit分散地址读取
    public List<Boolean> readBits(List<String> addresses) {
        List<Boolean> results = new ArrayList<>();
        for (String address : addresses) {
            // 对于每个地址,直接使用 calculateAddress 来处理可能的位偏移
            // 这里假设 calculateAddress 已经足够智能以处理单个位的偏移
            // 由于我们是逐个读取,每次偏移量都是0
            String addr = calculateAddress(address, 0);
            String value = memory.get(addr);
            if (value != null) {
                results.add(Boolean.parseBoolean(value));
            } else {
                // 如果地址对应的值不存在于内存中,可以选择添加 null 或抛出异常
                // 这里选择添加 null,但在实际应用中应根据具体需求决定
                results.add(null);
            }
        }
        return results;
    }
    // 连续读取多个Bit
    public List<Boolean> readbits(String address, int count) {
        List<Boolean> result = new ArrayList<>();
        for (int i = 0; i < count; i++) {
            String addr = calculateAddress(address, i); // 同上,每个bit占一个地址单位
            String value = memory.get(addr);
            if (value != null) {
                result.add(Boolean.parseBoolean(value));
            } else {
                result.add(null); // 或者考虑抛出异常或其他错误处理
            }
        }
        return result;
    }
    // 计算连续地址
//    private String calculateAddress(String baseAddress, int offset) {
//        // 支持带字母的地址格式
//        Pattern pattern = Pattern.compile("(\\D*)(\\d+)");
//        Matcher matcher = pattern.matcher(baseAddress);
//        if (matcher.find()) {
//            String prefix = matcher.group(1);
//            int address = Integer.parseInt(matcher.group(2));
//            return prefix + (address + offset);
//        } else {
//            throw new IllegalArgumentException("Invalid address format: " + baseAddress);
//        }
//    }
    private String calculateAddress(String baseAddress, int offset) {
        // 分割地址为数据块、字偏移和位偏移(如果有)
        Pattern pattern = Pattern.compile("(DB\\d+)\\.(\\d+)(?:\\.(\\d+))?");
        Matcher matcher = pattern.matcher(baseAddress);
        if (matcher.find()) {
            String dbNumber = matcher.group(1); // 数据块编号,如 "DB100"
            int wordOffset = Integer.parseInt(matcher.group(2)); // 字偏移
            String bitOffsetStr = matcher.group(3); // 位偏移,可能为空
            if (bitOffsetStr != null) {
                // 存在位偏移,进行位操作
                int bitOffset = Integer.parseInt(bitOffsetStr);
                int totalBitOffset = bitOffset + offset;
                // 计算新的字偏移和位偏移
                int newWordOffset = wordOffset + (totalBitOffset / 8);
                int newBitOffset = totalBitOffset % 8;
                return String.format("%s.%d.%d", dbNumber, newWordOffset, newBitOffset);
            } else {
                // 仅存在字偏移,进行字操作
                // 注意:假设每个字占用2个字节
                int newWordOffset = wordOffset + (offset );
                return String.format("%s.%d", dbNumber, newWordOffset);
            }
        } else {
            throw new IllegalArgumentException("Invalid address format: " + baseAddress);
        }
    }
}
UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
@@ -106,6 +106,25 @@
    }
//接收队列中所有消息,不消费
    public static List<String> browseMessages(String queueName) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(host);
        List<String> messages = new ArrayList<>();
        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 message = new String(response.getBody(), "UTF-8");
                messages.add(message);
            }
        }
        return messages;
    }
    private static Set<String> sentMessageIds = new HashSet<>();
//根据id发送消息
@@ -137,32 +156,32 @@
        }
    }
//根据id消费消息
    public static String consumeMessageById( String messageId,String queueName) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(host);
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);
    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.";
                }
        GetResponse response;
        boolean found = false;
        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 {
                // 未找到指定消息,继续查找
                channel.basicReject(response.getEnvelope().getDeliveryTag(), false);
            }
            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 {
UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -1,23 +1,51 @@
package com.mes.config;
import com.mes.service.Plcaction;
import com.mes.service.DownGlassInfoService;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import com.mes.service.PLCAutoMes;
import com.mes.service.Plchome;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
class AppStartup implements ApplicationListener<ContextRefreshedEvent> {
@Order(1)
    private final DownGlassInfoService downGlassInfoService;
    public AppStartup(DownGlassInfoService downGlassInfoService) {
        this.downGlassInfoService = downGlassInfoService;
    }
public class AppRunnerConfig implements ApplicationRunner {
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        Plcaction.setDownGlassInfoService(downGlassInfoService);
        new Plcaction().start();
    public void run(ApplicationArguments args) throws Exception {
        // TODO Auto-generated method stub
        //
        System.out.println("启动完成");
        //  new PlcHold().start();
       new PLCAutoMes().start();
    new Plchome().start();
        //  new PlcLayout().start();
        //  new Plcalarm().start();
        //  new Plcsign().start();
        //  new Plcstate().start();
        //  new PlcPositioning1().start();
        //  new PlcParameter2().start();
        //  new PLCAutomaticParameterSetting().start();
        //  new PlcManualonePosition().start();
        //  new PlcManualonePosition2().start();
        //  new PlcServoManualone().start();
        //  new PLCManualJog().start();
        //  new Plclog().start();
        //  new PlcInteractionState().start();
        //new PlcParameter1Review().start();
        //new PLCAutomaticParameterSettingReview2().start();
    // new PLCManualJogReview().start();
    }
}
}
UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java
New file
@@ -0,0 +1,40 @@
package com.mes.controller;
import com.mes.entity.DownGlassInfo;
import com.mes.service.DownGlassInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/downGlassInfo")
public class DownGlassInfoController {
    @Autowired
    private DownGlassInfoService downGlassInfoService;
    // 获取指定ID的DownGlassInfo信息
    @GetMapping("/{id}")
    public DownGlassInfo getDownGlassInfoById(@PathVariable Integer id) {
        return downGlassInfoService.getDownGlassInfoById(id);
    }
//    @GetMapping("/messages")
//    public String getMessages() throws IOException, TimeoutException {
//        List<String> messages = new ArrayList<>();
//        try {
//            messages = RabbitMQUtils.browseMessages("hangzhou2");
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return messages.toString();  // 返回消息列表的字符串表示形式
//    }
}
UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
@@ -3,7 +3,6 @@
import com.mes.common.CacheUtil;
import com.mes.common.Constants;
import com.mes.common.Result;
import com.mes.controller.dto.UserDTO;
import com.mes.entity.userInfo.User;
import com.mes.exception.ServiceException;
import com.mes.mapper.userInfo.UserMapper;
@@ -31,18 +30,18 @@
        System.out.println(cacheUtil.getCacheData("admin"));
        return userMapper.findAll();
    }
    @ApiOperation("登录")
    @PostMapping("/login")
    public Result login(@RequestBody UserDTO userDTO){
        //UserDTO getUserCacheDTO = cacheUtil.getCacheData(userDTO.getUserId());
        userService.deleteCache(userDTO.getUserId());
        UserDTO getUserDTO=userService.login(userDTO);
        if(getUserDTO!=null){
            return Result.seccess(userDTO);
        }else{
            throw new ServiceException(Constants.Code_600,"用户名或密码错误");
        }
    }
    //@ApiOperation("登录")
   // @PostMapping("/login")
//    public Result login(@RequestBody UserDTO userDTO){
//        //UserDTO getUserCacheDTO = cacheUtil.getCacheData(userDTO.getUserId());
//        userService.deleteCache(userDTO.getUserId());
//        UserDTO getUserDTO=userService.login(userDTO);
//        if(getUserDTO!=null){
//            return Result.seccess(userDTO);
//        }else{
//            throw new ServiceException(Constants.Code_600,"用户名或密码错误");
//        }
//    }
    @ApiOperation("注册")
    @PostMapping("/register")
    public Result register(@RequestBody User user){
UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
@@ -15,5 +15,7 @@
    private Double width; // 宽
    private Double height; // 高
    private Double thickness; // 厚度
    private String filmsid;//膜系
}
UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
@@ -14,4 +14,7 @@
    private Integer deviceId; // 设备id
    private Integer enableState; // 启用状态
    private Integer workState; // 工作状态
    private Integer racks_number; // 已落架数量
    private Integer total_quantity; // 总数量
}
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -15,6 +15,8 @@
    private int plcAddressLength;
    private ArrayList<PlcParameterInfo> plcParameterList;
    /**
     * @return 数据区开始地址
     */
@@ -199,4 +201,5 @@
    }
}
UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
@@ -4,12 +4,27 @@
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.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
@InterceptorIgnore(tenantLine = "true")
@DS("hangzhoumes") // 指定使用 hangzhoumes 数据源
public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
    // 查询下片任务表中状态为1的下片信息
    @Select("SELECT flow_card_id,filmsid,width,height,thickness FROM down_glass_task WHERE state = 1;")
    List<DownGlassInfo> selectunloadingtaskstate();
    @Update("UPDATE down_glass_task SET state = 0 WHERE flow_card_id = #{flowCardId}")
    void updateTaskStateToZero(@Param("flowCardId") String flowCardId);
    @Select("SELECT MAX(sequence) FROM down_glass_info WHERE flow_card_id = #{flowCardId} LIMIT 1")
    Integer getMaxSequenceByFlowCardId(@Param("flowCardId") String flowCardId);
    @Delete("delete  from down_glass_task where flow_card_id = #{flowCardId}")
    void deletetask(@Param("flowCardId") String flowCardId);
}
UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
@@ -3,14 +3,57 @@
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 com.mes.entity.DownWorkstation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Component
@Repository
@InterceptorIgnore(tenantLine = "true")
@DS("hangzhoumes") // 指定使用 hangzhoumes 数据源
public interface DownWorkstationMapper extends BaseMapper<DownWorkstation> {
//根据工位ID和设备ID更新工位状态
    @Update("UPDATE down_workstation SET work_state = #{workState} " +
            "WHERE workstation_id = #{workstationId} AND device_id = #{deviceId}")
    void updateWorkStateByWorkstationIdAndDeviceId(@Param("workstationId") Integer workstationId,
                                                   @Param("deviceId") Integer deviceId,
                                                   @Param("workState") Integer workState);
//工位ID删除信息
    @Delete("DELETE FROM down_workstation WHERE workstation_id = #{workstationId}")
    void deleteByWorkstationId(@Param("workstationId") Integer workstationId);
//落架
    @Insert("INSERT INTO down_workstation (workstation_id, flow_card_id, device_id, enable_state, work_state) " +
            "VALUES (#{workstationId}, #{flowCardId}, #{deviceId}, #{enableState}, #{workState})")
    void insertDownWorkstation(DownWorkstation downWorkstation);
//根据设备ID查询工位信息
    @Select("SELECT * FROM down_workstation WHERE device_id = #{deviceId}")
    List<DownWorkstation> selectByDeviceId(@Param("deviceId") Integer deviceId);
//从机械手任务表查询状态为1的流程卡号
//    @Select("SELECT *  FROM down_workstation_task WHERE state = 1")
//    List<DownWorkstation> selectdownWorkstationstate();
    @Select("SELECT dw.flow_card_id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1")
    List<DownWorkstation> selectdownWorkstationstate();
    @Update("UPDATE down_workstation SET racks_number = #{racksNumber} " +
            "WHERE flow_card_id = #{flowCardId}")
    void  update_racks_number(@Param("flowCardId") String flowCardId,
                                   @Param("racksNumber") Integer racksNumber);
    @Insert("INSERT INTO down_workstation_task (flow_card_id, width, height, thickness, filmsid,state) " +
            "VALUES (#{flowCardId}, #{width}, #{height}, #{thickness}, #{filmsid},1)")
    void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
}
UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
@@ -2,11 +2,12 @@
import com.mes.entity.userInfo.SysMenuItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface SysMenuItemMapper {
     @Select("select  * from sys_menu_item as a where a.state=1 order by a.listSort")
     List<SysMenuItem> findAll() ;
}
UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
@@ -13,7 +13,10 @@
    @Autowired
    private DownGlassInfoMapper downGlassInfoMapper;
    public DownGlassInfo getDownGlassInfoById(Integer id) {
        return downGlassInfoMapper.selectById(id);
    }
}
UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
File was deleted
UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
@@ -18,7 +18,10 @@
//        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"); // 这条消息会打印重复消息的错误信息
        receiver.sendMessageWithId("hangzhou2", "Another message", "3");
        receiver.sendMessageWithId("hangzhou2", "Another message", "4");
        receiver.sendMessageWithId("hangzhou2", "Another message", "5");
      //  receiver.sendMessageWithId("hangzhou2", "Yet another message", "1"); // 这条消息会打印重复消息的错误信息
    }
}
UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
@@ -2,6 +2,8 @@
import com.mes.common.RabbitMQUtils;
import java.util.List;
public class ModuleB {
    private final static String QUEUE_NAME = "hangzhou2";
@@ -13,10 +15,11 @@
        try {
            receiver.consumeMessageById("2",QUEUE_NAME);
            //receiver.consumeMessageById("5",QUEUE_NAME);
           // String receivedMessage = receiver.consumeSelectedMessage(1,QUEUE_NAME);
//            String receivedMessage = String.valueOf(receiver.readMessages(QUEUE_NAME,false));
          // System.out.println("Received message: " + receivedMessage);
        List<String> receivedMessage = receiver.browseMessages(QUEUE_NAME);
          System.out.println("Received message: " + receivedMessage);
        } catch (Exception e) {
            e.printStackTrace();
        }
UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java
New file
@@ -0,0 +1,91 @@
package com.mes.service;
import com.mes.entity.device.PlcParameterObject;
import com.mes.tools.InitUtil;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static com.mes.tools.InitUtil.readAndUpdateWordValues;
public class PLCAutoMes extends Thread {
    // 用于存储应用程序的配置信息
    private Configuration config;
    private static InitUtil initUtil;
    // 单例实例
    private static PLCAutoMes instance;
    private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
    private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
    private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
//    private static String PlcParameter = PLCAutomaticParameterSettingReview2.class
//            .getResource("/JsonFile/PlcParameter.json").getPath();
//    private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json")
//            .getPath();
//    private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json")
//            .getPath();
    private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
   // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
    // 调用initword方法
//
   // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
    public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
    public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
    // 私有构造函数
    public PLCAutoMes() throws IOException {
        initUtil = new InitUtil();
    }
    // 获取单例实例
    public static synchronized PLCAutoMes getInstance() throws IOException {
        if (instance == null) {
            instance = new PLCAutoMes();
        }
        return instance;
    }
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // System.out.println(jsonFilePath);
          // readAndUpdateWordValues(PlcReadObject);
            readAndUpdateWordValues(PlcMesObject);
//      readAndUpdateWordValues(PlcframeObject);
            // readAndUpdateWordValues(PlcframeObject);
            // readAndUpdateWordValues(plcStateObject);
          //  int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
            // System.out.println(index);
          //  PlcMesObject.getPlcParameter("AddStart").getAddress(index);
            // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
            List<String> addresses = new ArrayList<>();
            addresses.add("FeedID");
            addresses.add("AddStart");
            // System.out.println(addresses);
            // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
            List<String> addresses2 = new ArrayList<>();
            addresses2.add("FeedID");
            addresses2.add("FeedCarStatus");
         //   System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
        }
    }
}
UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
New file
@@ -0,0 +1,139 @@
package com.mes.service;
import com.mes.entity.DownGlassInfo;
import com.mes.entity.DownStorageCageDetails;
import com.mes.entity.DownWorkstation;
import com.mes.entity.device.PlcParameterObject;
import com.mes.mapper.DownGlassInfoMapper;
import com.mes.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Data
@Service
public class PlcService {
    @Autowired
    private DownWorkstationMapper downWorkstationMapper;
    private DownGlassInfo downGlassInfo;
    private DownWorkstation downWorkstation;
    private DownGlassInfoMapper downGlassInfoMapper;
    private DownGlassInfoService downGlassInfoService;
    private List<DownGlassInfo> glassList; // 存放待处理的玻璃信息
    private List<DownStorageCageDetails> cageDetailsList; // 存放玻璃放置在缓存笼中的详细信息
    PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
    String Robot1PLCrequestword=plcread.getPlcParameter("A01Position").getValue();// 机械手1PLC请求字
    String Robot2PLCrequestword=plcread.getPlcParameter("A01Position").getValue();// 机械手2PLC请求字
    String GlassID=plcread.getPlcParameter("A01Position").getValue();// 玻璃id
    String Glasswidth=plcread.getPlcParameter("A01Position").getValue();//玻璃宽度
    String Glassheight=plcread.getPlcParameter("A01Position").getValue();//玻璃高度
    String Glassthickness=plcread.getPlcParameter("A01Position").getValue();//厚度
    String PLCwancheng = plcread.getPlcParameter("A01Position").getValue();// plc完成字
    //当下片任务表状态为1时候将数据插入到下片玻璃信息表
    public void insertdownglassinfo() {
        downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
        downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
        downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
        List<DownGlassInfo> taskdownGlassInf = downGlassInfoMapper.selectunloadingtaskstate();
//
        if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
            for (DownGlassInfo downGlassInfo : taskdownGlassInf) {
                // 创建新的 DownGlassInfo 对象并设置相关属性
                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
                Integer maxSequence = downGlassInfoMapper.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
                int sequence = maxSequence != null ? maxSequence + 1 : 1; // 初始化顺序字段值
                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
                newdownGlassInfo.setSequence(sequence); // 设置顺序字段值
                // 插入数据到下片玻璃信息表
                downGlassInfoMapper.insert(newdownGlassInfo);
                //插入数据到机械手任务表
                downWorkstationMapper.insertdownWorkstationtask(newdownGlassInfo);
                //更新任务表状态为0
                downGlassInfoMapper.updateTaskStateToZero(downGlassInfo.getFlowCardId());
                sequence++; // 递增顺序字段值
            }
        }
    }
    //当机械手任务表中状态为1,工位表流程卡绑定了架子 更新已经落架数量,并且把下片任务表的对应记录删掉
    public void down_workstation(){
        //downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
        //downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
        try {
            List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
            if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
                //查询下片工位表中是否绑定了架子是否绑定了流程卡号,如果已经绑定则更新已落架数量,并且删除下片任务表中的记录
                for (DownWorkstation downWorkstation : taskdownWorkstation) {
                    downWorkstationMapper.update_racks_number(downWorkstation.getFlowCardId(),6 );
                    downGlassInfoMapper.deletetask(downWorkstation.getFlowCardId());
                }
            }
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 或者可以进行其他异常处理,比如记录日志或者返回特定的错误信息
        }
    }
    //绑定流程卡号架子
    public void bindingshelf(DownWorkstation downWorkstation){
        String FlowCardId=downWorkstation.getFlowCardId();
        int WorkstationId=downWorkstation.getWorkstationId();
    }
}
UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
@@ -1,20 +1,25 @@
package com.mes.service;
import com.mes.common.PlcTools.MockS7PLCtwo;
import com.mes.entity.DownGlassInfo;
import com.mes.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Arrays;
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; //
  @Autowired
  private DownWorkstationMapper downWorkstationMapper;
  private DownGlassInfo downGlassInfo; //
  private DownGlassInfoService downGlassInfoService;
  private int i =1; //
    //MockS7PLC mockS7PLC=new MockS7PLC();
  @Override
  public void run() {
    while (!Thread.currentThread().isInterrupted()) {
@@ -25,11 +30,74 @@
        Thread.currentThread().interrupt();
        e.printStackTrace();
      }
      downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
      downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
      int workstationId = 1;
      int deviceId = 2;
      int newWorkState = 9;
      downWorkstationMapper.updateWorkStateByWorkstationIdAndDeviceId(workstationId, deviceId, newWorkState);
      downGlassInfo  = downGlassInfoService.getDownGlassInfoById(1); // 设置需要查询的id
//   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
      Boolean[] value4 = { false, true, true, true, true, true, false, false, false,
              false};
     List<Boolean> booldata2 = new ArrayList<>(Arrays.asList(value4));
       // MockS7PLCtwo.getInstance().writeBoolean("DB1.DBX0.0", false);
       // MockS7PLCtwo.getInstance().writebits("DB4.0.0",booldata2);
// 从相同的地址读取布尔值
      boolean value = MockS7PLCtwo.getInstance().readBoolean("DB1.DBX0.0");
      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
      Short[] values2 = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
   List<Short> data = new ArrayList<>(Arrays.asList(values1));
      List<Short> data2 = new ArrayList<>(Arrays.asList(values2));
        List<String> addresses3 = new ArrayList<>();
        addresses3.add("DB1.0.0");
        addresses3.add("DB1.0.3");
        addresses3.add("DB1.0.5");
      List<String> addresses = new ArrayList<>();
      addresses.add("DB100.0");
      addresses.add("DB100.2");
      addresses.add("DB100.4");
      addresses.add("DB100.6");
      addresses.add("DB100.26");
      addresses.add("DB100.28");
      addresses.add("DB100.30");
      addresses.add("DB100.32");
      addresses.add("DB100.34");
      addresses.add("DB100.36");
      downGlassInfo  = Collections.singletonList(downGlassInfoService.getDownGlassInfoById(1)); // 设置需要查询的id
   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
      List<String> addresses2 = new ArrayList<>();
      addresses2.add("DB101.0");
      addresses2.add("DB101.2");
      addresses2.add("DB101.4");
      addresses2.add("DB101.6");
      addresses2.add("DB101.8");
      addresses2.add("DB101.10");
      addresses2.add("DB101.12");
      addresses2.add("DB101.14");
      addresses2.add("DB101.16");
      addresses2.add("DB101.18");
//      mockPLC.writeword("DB100.2",data );
        MockS7PLCtwo.getInstance().WriteWords(addresses, data);
        MockS7PLCtwo.getInstance().WriteWords(addresses2, data2);
  //DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
  List<Short> data5= MockS7PLCtwo.getInstance().readwords("DB104.0", 9);
      List<Short> data3= MockS7PLCtwo.getInstance().ReadWords(addresses);
      List<Boolean> data4= MockS7PLCtwo.getInstance().readbits("DB4.0.0",10);
        List<Boolean> data6= MockS7PLCtwo.getInstance().readBits(addresses3);
    //  System.out.println("读取的布尔值: " + value); // 应该输出 true
     // System.out.println("读取的word值: " + data3);
      System.out.println("读取的word值: " + data4);
//        System.out.println("读取的bit值: " + data4);
//        System.out.println("读取的bit值: " + data6);
     //   System.out.println("读取的word值: " + MockS7PLCtwo.getInstance().readInt16("DB5.0.0"));
    }
  }
}
UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
New file
@@ -0,0 +1,44 @@
package com.mes.service;
import com.mes.tools.WebSocketServer;
import org.springframework.stereotype.Component;
import java.util.function.Supplier;
@Component
public class Plchome extends Thread {
    private int i = 1;
    private final Supplier<PlcService> plcServiceSupplier;
    public Plchome() {
        this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(PlcService.class);
    }
    @Override
    public void run() {
        while (!Thread.currentThread().isInterrupted()) {
            try {
                i++;
                Thread.sleep(100);
                PlcService plcService = plcServiceSupplier.get();
               // plcService.performPlcActions();
                //plcService.unloadpush();
                //当下片任务表状态为1时候将数据插入到下片玻璃信息表
                plcService.insertdownglassinfo();
                //当机械手任务表中状态为1 更新已经落架数量,并且把下片任务表的那条记录删掉 工位表流程卡绑定了架子
                plcService.down_workstation();
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                e.printStackTrace();
            }
        }
    }
}
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
@@ -7,7 +7,7 @@
import org.springframework.stereotype.Service;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysErrorService {
    private final SysErrorMapper sysErrorMapper;
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
@@ -9,7 +9,7 @@
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysMenuItemService {
    @Autowired
    SysMenuItemMapper sysMenuItemMapper;
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
@@ -9,7 +9,7 @@
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class SysMenuService {
    @Autowired
    private SysMenuMapper sysMenuMapper;
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
@@ -2,23 +2,18 @@
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.mes.common.CacheUtil;
import com.mes.common.Result;
import com.mes.controller.dto.UserDTO;
import com.mes.entity.userInfo.User;
import com.mes.mapper.userInfo.UserMapper;
import com.mes.controller.dto.UserDTO;
import com.mes.tools.TokenTools;
import org.apache.ibatis.jdbc.Null;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@DS("user_info")
@DS("hangzhoumes")
public class UserService {
    @Autowired
UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
@@ -2,7 +2,6 @@
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;
@@ -11,6 +10,8 @@
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class InitUtil {
@@ -107,18 +108,18 @@
//
    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());
        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());
         byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03,0x03};
       // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
        plcParameterObject.setPlcParameterList(getplcvlues);
    }
UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
New file
@@ -0,0 +1,371 @@
{
  "plcAddressBegin": "DB104.0.0",
  "plcAddressLenght": "91",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01VFDerror",
      "addressIndex": 0
    },
    {
      "codeId": "D02VFDerror",
      "addressIndex": 1
    },
    {
      "codeId": "D03VFDerror",
      "addressIndex": 2
    },
    {
      "codeId": "D04VFDerror",
      "addressIndex": 3
    },
    {
      "codeId": "D05VFDerror",
      "addressIndex": 4
    },
    {
      "codeId": "D06VFDerror",
      "addressIndex": 5
    },
    {
      "codeId": "B01VFDerror",
      "addressIndex": 6
    },
    {
      "codeId": "B02VFDerror",
      "addressIndex": 7
    },
    {
      "codeId": "A01VFDerror",
      "addressIndex": 8
    },
    {
      "codeId": "A02VFDerror",
      "addressIndex": 9
    },
    {
      "codeId": "A01servoturnerror",
      "addressIndex": 10
    },
    {
      "codeId": "A02servoturnerror",
      "addressIndex": 11
    },
    {
      "codeId": "A01servotravelerror",
      "addressIndex": 12
    },
    {
      "codeId": "A02servotravelerror",
      "addressIndex": 13
    },
    {
      "codeId": "B01servotravelerror",
      "addressIndex": 14
    },
    {
      "codeId": "B02servotravelerror",
      "addressIndex": 15
    },
    {
      "codeId": "D01DECerror",
      "addressIndex": 16
    },
    {
      "codeId": "D01poserror",
      "addressIndex": 17
    },
    {
      "codeId": "D02DECerror",
      "addressIndex": 18
    },
    {
      "codeId": "D02poserror",
      "addressIndex": 19
    },
    {
      "codeId": "D03DECerror",
      "addressIndex": 20
    },
    {
      "codeId": "D03poserror",
      "addressIndex": 21
    },
    {
      "codeId": "D04DECerror",
      "addressIndex": 22
    },
    {
      "codeId": "D04poserror",
      "addressIndex": 23
    },
    {
      "codeId": "D05DECerror",
      "addressIndex": 24
    },
    {
      "codeId": "D05poserror",
      "addressIndex": 25
    },
    {
      "codeId": "D06DECerror",
      "addressIndex": 26
    },
    {
      "codeId": "D06poserror",
      "addressIndex": 27
    },
    {
      "codeId": "A01DECerror",
      "addressIndex": 28
    },
    {
      "codeId": "A01poserror",
      "addressIndex": 29
    },
    {
      "codeId": "A02DECerror",
      "addressIndex": 30
    },
    {
      "codeId": "A02poserror",
      "addressIndex": 31
    },
    {
      "codeId": "B01INDECerror",
      "addressIndex": 32
    },
    {
      "codeId": "B01INposerror",
      "addressIndex": 33
    },
    {
      "codeId": "B01OUTDECerror",
      "addressIndex": 34
    },
    {
      "codeId": "B01OUTposerror",
      "addressIndex": 35
    },
    {
      "codeId": "B02INDECerror",
      "addressIndex": 36
    },
    {
      "codeId": "B02INposerror",
      "addressIndex": 37
    },
    {
      "codeId": "B02OUTDECerror",
      "addressIndex": 38
    },
    {
      "codeId": "B02OUTposerror",
      "addressIndex": 39
    },
    {
      "codeId": "D01Scanglassexceedinglimit",
      "addressIndex": 40
    },
    {
      "codeId": "emergencystopalarm",
      "addressIndex": 41
    },
    {
      "codeId": "Moreglassthanknown",
      "addressIndex": 42
    },
    {
      "codeId": "lessglassthanknown",
      "addressIndex": 43
    },
    {
      "codeId": "D01conveyortimeoutalarm",
      "addressIndex": 44
    },
    {
      "codeId": "D02conveyortimeoutalarm",
      "addressIndex": 45
    },
    {
      "codeId": "D03conveyortimeoutalarm",
      "addressIndex": 46
    },
    {
      "codeId": "D04conveyortimeoutalarm",
      "addressIndex": 47
    },
    {
      "codeId": "D05conveyortimeoutalarm",
      "addressIndex": 48
    },
    {
      "codeId": "D06conveyortimeoutalarm",
      "addressIndex": 49
    },
    {
      "codeId": "A01conveyortimeoutalarm",
      "addressIndex": 50
    },
    {
      "codeId": "A02conveyortimeoutalarm",
      "addressIndex": 51
    },
    {
      "codeId": "B01conveyortimeoutalarm",
      "addressIndex": 52
    },
    {
      "codeId": "B02conveyortimeoutalarm",
      "addressIndex": 53
    },
    {
      "codeId": "A01conveyorLeftsafetyalarm",
      "addressIndex": 54
    },
    {
      "codeId": "A01conveyorrightsafetyalarm",
      "addressIndex": 55
    },
    {
      "codeId": "A02conveyorLeftsafetyalarm",
      "addressIndex": 56
    },
    {
      "codeId": "A02conveyorrightsafetyalarm",
      "addressIndex": 57
    },
    {
      "codeId": "1#buffersafetyalarm",
      "addressIndex": 58
    },
    {
      "codeId": "2#buffersafetyalarm",
      "addressIndex": 59
    },
    {
      "codeId": "3#buffersafetyalarm",
      "addressIndex": 60
    },
    {
      "codeId": "4#buffersafetyalarm",
      "addressIndex": 61
    },
    {
      "codeId": "A01.SRrightinposerror",
      "addressIndex": 62
    },
    {
      "codeId": "A02.SRleftinposerror",
      "addressIndex": 63
    },
    {
      "codeId": "B01.SRleftinposerror",
      "addressIndex": 64
    },
    {
      "codeId": "B01.SRleftdecerror",
      "addressIndex": 65
    },
    {
      "codeId": "B01.SRrightdecerror",
      "addressIndex": 66
    },
    {
      "codeId": "B01.SRrightinposerror",
      "addressIndex": 67
    },
    {
      "codeId": "B02.SRleftinposerror",
      "addressIndex": 68
    },
    {
      "codeId": "B02.SRleftdecerror",
      "addressIndex": 69
    },
    {
      "codeId": "B02.SRrightdecerror",
      "addressIndex": 70
    },
    {
      "codeId": "B02.SRrightinposerror",
      "addressIndex": 71
    },
    {
      "codeId": "A01servoturnhomed",
      "addressIndex": 72
    },
    {
      "codeId": "A02servoturnhomed",
      "addressIndex": 73
    },
    {
      "codeId": "A01servotravelhomed",
      "addressIndex": 74
    },
    {
      "codeId": "A02servotravelhomed",
      "addressIndex": 75
    },
    {
      "codeId": "B01servotravelhomed",
      "addressIndex": 76
    },
    {
      "codeId": "B02servotravelhomed",
      "addressIndex": 77
    },
    {
      "codeId": "resetDelay",
      "addressIndex": 78
    },
    {
      "codeId": "A01travelNegativelimit",
      "addressIndex": 79
    },
    {
      "codeId": "A01travelPositivelimit",
      "addressIndex": 80
    },
    {
      "codeId": "A01turnuplimit",
      "addressIndex": 81
    },
    {
      "codeId": "A01turndownlimit",
      "addressIndex": 82
    },
    {
      "codeId": "A02travelNegativelimit",
      "addressIndex": 83
    },
    {
      "codeId": "A02travelPositivelimit",
      "addressIndex": 84
    },
    {
      "codeId": "A02turnuplimit",
      "addressIndex": 85
    },
    {
      "codeId": "A02turndownlimit",
      "addressIndex": 86
    },
    {
      "codeId": "B01travelNegativelimit",
      "addressIndex": 87
    },
    {
      "codeId": "B01travelPositivelimit",
      "addressIndex": 88
    },
    {
      "codeId": "B02travelNegativelimit",
      "addressIndex": 89
    },
    {
      "codeId": "B02travelPositivelimit",
      "addressIndex": 90
    }
  ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
New file
@@ -0,0 +1,50 @@
{
   "plcAddressBegin":"DB105.0",
   "plcAddressLenght":"12",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "OutActivate",
         "addressIndex":"0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "Addgoal",
          "addressIndex":"2",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "AddLength",
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "AddWidth",
          "addressIndex":"6",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "AddCount",
          "addressIndex":"8",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "OutStart",
          "addressIndex":"10",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
   ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
New file
@@ -0,0 +1,610 @@
{
   "plcAddressBegin":"DB100.0",
   "plcAddressLenght":"198",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "conveyorVelocity(Max)",
         "addressIndex":"0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "conveyorVelocity(AutoFAST)",
          "addressIndex":"2",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "conveyorVelocity(AutoSLOW)",
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "conveyorVelocity(Manual)",
          "addressIndex":"6",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TURNJOGVelocity",
          "addressIndex":"8",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TRAVELJOGVelocity",
          "addressIndex":"10",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "B01B02TRAVELJOGVelocity",
          "addressIndex":"12",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TURNPOSVelocityAUTO",
          "addressIndex":"14",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01TURNPOSVelocitymanual",
          "addressIndex":"16",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
         "codeId": "A01A02TRAVELPOSVelocityAUTO",
         "addressIndex":"18",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },
     {
       "codeId": "A01TRAVELPOSVelocitymanual",
       "addressIndex":"20",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "B01B02TRAVELPOSVelocityAUTO",
       "addressIndex":"22",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "B01TRAVELPOSVelocitymanual",
       "addressIndex":"24",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "A01A02conveyorVelocity(Max)",
       "addressIndex":"26",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "A01A02conveyorVelocity(AutoFAST)",
       "addressIndex":"28",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "A01A02conveyorVelocity(AutoSLOW)",
       "addressIndex":"30",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Manual)",
       "addressIndex":"32",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Max)",
       "addressIndex":"34",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(AutoFAST)",
       "addressIndex":"36",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(AutoSLOW)",
       "addressIndex":"38",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Manual)",
       "addressIndex":"40",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "gridspacing",
       "addressIndex":"42",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01Spliceaddresssetting",
       "addressIndex":"44",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02Spliceaddresssetting",
       "addressIndex":"46",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A011#gridaddress",
       "addressIndex":"48",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0122#gridaddress",
       "addressIndex":"50",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0143#gridaddress",
       "addressIndex":"52",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0164#gridaddress",
       "addressIndex":"54",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0185#gridaddress",
       "addressIndex":"56",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01106#gridaddress",
       "addressIndex":"58",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01127#gridaddress",
       "addressIndex":"60",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01148#gridaddress",
       "addressIndex":"62",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01169#gridaddress",
       "addressIndex":"64",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01190#gridaddress",
       "addressIndex":"66",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A021#gridaddress",
       "addressIndex":"68",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0222#gridaddress",
       "addressIndex":"70",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0243#gridaddress",
       "addressIndex":"72",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0264#gridaddress",
       "addressIndex":"74",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0285#gridaddress",
       "addressIndex":"76",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02106#gridaddress",
       "addressIndex":"78",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02127#gridaddress",
       "addressIndex":"80",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02148#gridaddress",
       "addressIndex":"82",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02169#gridaddress",
       "addressIndex":"84",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02190#gridaddress",
       "addressIndex":"86",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B011#gridaddress",
       "addressIndex":"88",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0122#gridaddress",
       "addressIndex":"90",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0143#gridaddress",
       "addressIndex":"92",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0164#gridaddress",
       "addressIndex":"94",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0185#gridaddress",
       "addressIndex":"96",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02106#gridaddress",
       "addressIndex":"98",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02127#gridaddress",
       "addressIndex":"100",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02148#gridaddress",
       "addressIndex":"102",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02169#gridaddress",
       "addressIndex":"104",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02190#gridaddress",
       "addressIndex":"106",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01Targetgrid(Manual)",
       "addressIndex":"108",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": " A02Targetgrid(Manual)",
       "addressIndex":"110",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B01Targetgrid(Manual)",
       "addressIndex":"112",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B02Targetgrid(Manual)",
       "addressIndex":"114",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01turnTargetAngle(Manual)",
       "addressIndex":"116",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnTargetAngle(Manual)",
       "addressIndex":"118",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle1",
       "addressIndex":"120",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle2",
       "addressIndex":"122",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle3",
       "addressIndex":"124",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle4",
       "addressIndex":"126",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle1",
       "addressIndex":"128",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle2",
       "addressIndex":"130",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle3",
       "addressIndex":"132",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle4",
       "addressIndex":"134",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "Minimumglasslength",
       "addressIndex":"136",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Minimumglassheight",
       "addressIndex":"138",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Maximumglasslength",
       "addressIndex":"140",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Maximumglassheight",
       "addressIndex":"142",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01cellsGlassNum",
       "addressIndex":"144",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A02cellsGlassNum",
       "addressIndex":"146",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01ID",
       "addressIndex":"148",
       "addressLenght":"14",
       "ratio":"1"
     },
     {
       "codeId": "A02ID",
       "addressIndex":"162",
       "addressLenght":"14",
       "ratio":"1"
     },
     {
       "codeId": "A02TRAVELPOSVelocitymanual",
       "addressIndex":"176",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B02TRAVELPOSVelocitymanual",
       "addressIndex":"178",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Startingpositionofthefeedca",
       "addressIndex":"180",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Targetpositionofthefeedcar",
       "addressIndex":"182",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Lengthofincomingglass",
       "addressIndex":"184",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Widthofincomingglass",
       "addressIndex":"186",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Startingpositionoftheexitcar",
       "addressIndex":"188",
       "addressLenght":"2",
       "ratio":"1"
     }, {
       "codeId": "Exitcartargetposition",
       "addressIndex":"190",
       "addressLenght":"2",
       "ratio":"1"
     }
     , {
       "codeId": "A02TURNPOSVelocitymanual",
       "addressIndex":"192",
       "addressLenght":"2",
       "ratio":"1"
     }
     , {
       "codeId": "A01delayTime",
       "addressIndex":"194",
       "addressLenght":"2",
       "ratio":"1"
     }
   ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
New file
@@ -0,0 +1,195 @@
{
   "plcAddressBegin": "DB106.0",
   "plcAddressLenght": "66",
   "dataType": "word",
   "parameteInfor": [{
         "codeId": "A01Position",
         "addressIndex": "0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01FlipPosition",
         "addressIndex": "2",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01QuestStartPosition",
         "addressIndex": "4",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01EndPosition",
         "addressIndex": "6",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedCarStatus",
         "addressIndex": "8",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestOver",
         "addressIndex": "10",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02Position",
         "addressIndex": "12",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02FlipPosition",
         "addressIndex": "14",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestStartPosition",
         "addressIndex": "16",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02EndPosition",
         "addressIndex": "18",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "ExitCarStatus",
         "addressIndex": "20",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestOver",
         "addressIndex": "22",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedRequest",
         "addressIndex": "24",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedID",
         "addressIndex": "26",
         "addressLenght":"14",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01Position",
         "addressIndex": "40",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01QuestPosition",
         "addressIndex": "42",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CurrentTaskMode",
         "addressIndex": "44",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CarStatus",
         "addressIndex": "46",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CarTaskStatus",
         "addressIndex": "48",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02Position",
         "addressIndex": "50",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarCurrentTask",
         "addressIndex": "52",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CurrentTaskMode",
         "addressIndex": "54",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarStatus",
         "addressIndex": "56",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarSaskStatus",
         "addressIndex": "58",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CompleteTheReport",
         "addressIndex": "60",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CompleteTheReport",
         "addressIndex": "62",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "OutRequest",
         "addressIndex": "64",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      }
   ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
New file
@@ -0,0 +1,460 @@
{
  "plcAddressBegin": "DB102.0.0",
  "plcAddressLenght": "112",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01.SRdec",
      "addressIndex": 0
    },
    {
      "codeId": "D01.SRinpos",
      "addressIndex": 1
    },
    {
      "codeId": "D02.SRdec",
      "addressIndex": 2
    },
    {
      "codeId": "D02.SRinpos",
      "addressIndex": 3
    },
    {
      "codeId": "D03.SRinto",
      "addressIndex": 4
    },
    {
      "codeId": "D03.SRdec",
      "addressIndex": 5
    },
    {
      "codeId": "D03.SRinpos",
      "addressIndex": 6
    },
    {
      "codeId": "D04.SRdec",
      "addressIndex": 7
    },
    {
      "codeId": "D04.SRinpos",
      "addressIndex": 8
    },
    {
      "codeId": "D05.SRdec",
      "addressIndex": 9
    },
    {
      "codeId": "D05.SRinpos",
      "addressIndex": 10
    },
    {
      "codeId": "D06.SRdec",
      "addressIndex": 11
    },
    {
      "codeId": "D06.SRinpos",
      "addressIndex": 12
    },
    {
      "codeId": "B01.SRindec",
      "addressIndex": 13
    },
    {
      "codeId": "B01.SRininpos",
      "addressIndex": 14
    },
    {
      "codeId": "B01.SRoutdec",
      "addressIndex": 15
    },
    {
      "codeId": "B01.SRoutinpos",
      "addressIndex": 16
    },
    {
      "codeId": "B01.SRturnon",
      "addressIndex": 17
    },
    {
      "codeId": "B01.SRturnoff",
      "addressIndex": 18
    },
    {
      "codeId": "B01.SRup",
      "addressIndex": 19
    },
    {
      "codeId": "B01.SRdown",
      "addressIndex": 20
    },
    {
      "codeId": "B02.SRoutdec",
      "addressIndex": 21
    },
    {
      "codeId": "B02.SRoutinpos",
      "addressIndex": 22
    },
    {
      "codeId": "B02.SRindec",
      "addressIndex": 23
    },
    {
      "codeId": "B02.SRininpos",
      "addressIndex": 24
    },
    {
      "codeId": "B02.SRturnon",
      "addressIndex": 25
    },
    {
      "codeId": "B02.SRturnoff",
      "addressIndex": 26
    },
    {
      "codeId": "B02.SRup",
      "addressIndex": 27
    },
    {
      "codeId": "B02.SRdown",
      "addressIndex": 28
    },
    {
      "codeId": "B01.SRinsafety",
      "addressIndex": 29
    },
    {
      "codeId": "B01.SRoutsafety",
      "addressIndex": 30
    },
    {
      "codeId": "B02.SRinsafety",
      "addressIndex": 31
    },
    {
      "codeId": "SB.start(+)",
      "addressIndex": 32
    },
    {
      "codeId": "SB.stop(-)",
      "addressIndex": 33
    },
    {
      "codeId": "SB.reset",
      "addressIndex": 34
    },
    {
      "codeId": "SB.auto/manul",
      "addressIndex": 35
    },
    {
      "codeId": "D01.SB.confirm",
      "addressIndex": 36
    },
    {
      "codeId": "SB.emg",
      "addressIndex": 37
    },
    {
      "codeId": "D01.SB.start",
      "addressIndex": 38
    },
    {
      "codeId": "D06.SB.start",
      "addressIndex": 39
    },
    {
      "codeId": "B02.SRoutsafety",
      "addressIndex": 40
    },
    {
      "codeId": "SafetyDoor.requset",
      "addressIndex": 41
    },
    {
      "codeId": "SafetyDoor.confirm",
      "addressIndex": 42
    },
    {
      "codeId": "SafetyDoor.reset",
      "addressIndex": 43
    },
    {
      "codeId": "Sspce",
      "addressIndex": 44
    },
    {
      "codeId": "Sspce",
      "addressIndex": 45
    },
    {
      "codeId": "Sspce",
      "addressIndex": 46
    },
    {
      "codeId": "Sspce",
      "addressIndex": 47
    },
    {
      "codeId": "A01.SRleftdec",
      "addressIndex": 48
    },
    {
      "codeId": "A01.SRleftinpos",
      "addressIndex": 49
    },
    {
      "codeId": "A01.SRleftsafety",
      "addressIndex": 50
    },
    {
      "codeId": "A01.SRrightdec",
      "addressIndex": 51
    },
    {
      "codeId": "A01.SRrightinpos",
      "addressIndex": 52
    },
    {
      "codeId": "A01.SRrightsafety",
      "addressIndex": 53
    },
    {
      "codeId": "A01.SRturnhome",
      "addressIndex": 54
    },
    {
      "codeId": "A01.SRturnup",
      "addressIndex": 55
    },
    {
      "codeId": "A01.SRturndown",
      "addressIndex": 56
    },
    {
      "codeId": "A01.SRtravelhome",
      "addressIndex": 57
    },
    {
      "codeId": "A01.SRtravelleftdec",
      "addressIndex": 58
    },
    {
      "codeId": "A01.SRtravelleftlimit",
      "addressIndex": 59
    },
    {
      "codeId": "A01.SRtravelrightdec",
      "addressIndex": 60
    },
    {
      "codeId": "A01.SRtravelrightlimit",
      "addressIndex": 61
    },
    {
      "codeId": "space",
      "addressIndex": 62
    },
    {
      "codeId": "space",
      "addressIndex": 63
    },
    {
      "codeId": "A02.SRleftdec",
      "addressIndex": 64
    },
    {
      "codeId": "A02.SRleftinpos",
      "addressIndex": 65
    },
    {
      "codeId": "A02.SRleftsafety",
      "addressIndex": 66
    },
    {
      "codeId": "A02.SRrightdec",
      "addressIndex": 67
    },
    {
      "codeId": "A02.SRrightinpos",
      "addressIndex": 68
    },
    {
      "codeId": "A02.SRrightsafety",
      "addressIndex": 69
    },
    {
      "codeId": "A02.SRturnhome",
      "addressIndex": 70
    },
    {
      "codeId": "A02.SRturnup",
      "addressIndex": 71
    },
    {
      "codeId": "A02.SRturndown",
      "addressIndex": 72
    },
    {
      "codeId": "A02.SRtravelhome",
      "addressIndex": 73
    },
    {
      "codeId": "A02.SRtravelleftdec",
      "addressIndex": 74
    },
    {
      "codeId": "A02.SRtravelleftlimit",
      "addressIndex": 75
    },
    {
      "codeId": "A02.SRtravelrightdec",
      "addressIndex": 76
    },
    {
      "codeId": "A02.SRtravelrightlimit",
      "addressIndex": 77
    },
    {
      "codeId": "space",
      "addressIndex": 78
    },
    {
      "codeId": "space",
      "addressIndex": 79
    },
    {
      "codeId": "B01.SRorigin",
      "addressIndex": 80
    },
    {
      "codeId": "B01.SRleftlimit",
      "addressIndex": 81
    },
    {
      "codeId": "B01.SRrightlimit",
      "addressIndex": 82
    },
    {
      "codeId": "B02.SRorigin",
      "addressIndex": 83
    },
    {
      "codeId": "B02.SRleftlimit",
      "addressIndex": 84
    },
    {
      "codeId": "B02.SRrightlimit",
      "addressIndex": 85
    },
    {
      "codeId": "space",
      "addressIndex": 86
    },
    {
      "codeId": "space",
      "addressIndex": 87
    },
    {
      "codeId": "LED.red",
      "addressIndex": 88
    },
    {
      "codeId": "LED.green",
      "addressIndex": 89
    },
    {
      "codeId": "LED.yellow",
      "addressIndex": 90
    },
    {
      "codeId": "D01.LED.green",
      "addressIndex": 91
    },
    {
      "codeId": "D06.LED.green",
      "addressIndex": 92
    },
    {
      "codeId": "B01.YV.turn",
      "addressIndex": 93
    },
    {
      "codeId": "B01.YV.updown",
      "addressIndex": 94
    },
    {
      "codeId": "B01.YV.gassing",
      "addressIndex": 95
    },
    {
      "codeId": "B02.YV.turn",
      "addressIndex": 96
    },
    {
      "codeId": "B02.YV.updown",
      "addressIndex": 97
    },
    {
      "codeId": "B02.YV.gassing",
      "addressIndex": 98
    },
    {
      "codeId": "SafetyDoor.Led",
      "addressIndex": 99
    },
    {
      "codeId": "SafetyDoor.open",
      "addressIndex": 100
    },
    {
      "codeId": "D01SB.confirm",
      "addressIndex": 101
    },
    {
      "codeId": "space",
      "addressIndex": 102
    },
    {
      "codeId": "space",
      "addressIndex": 103
    },
    {
      "codeId": "A01oilPump",
      "addressIndex": 104
    },
    {
      "codeId": "A01motorCtr",
      "addressIndex": 105
    },
    {
      "codeId": "space",
      "addressIndex": 106
    },
    {
      "codeId": "space",
      "addressIndex": 107
    },
    {
      "codeId": "A02oilPump",
      "addressIndex": 108
    },
    {
      "codeId": "A02motorCtr",
      "addressIndex": 109
    },
    {
      "codeId": "space",
      "addressIndex": 110
    },
    {
      "codeId": "space",
      "addressIndex": 111
    }
    ,
    {
      "codeId": "space",
      "addressIndex": 111
    }
  ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
New file
@@ -0,0 +1,285 @@
{
  "plcAddressBegin": "DB103.0",
  "plcAddressLenght": "258",
  "dataType": "word",
  "parameteInfor": [
    {
      "codeId": "D01.State",
      "addressIndex": "0",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D02.State",
      "addressIndex": "2",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01.State",
      "addressIndex": "4",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02.State",
      "addressIndex": "6",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01.State",
      "addressIndex": "8",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02.State",
      "addressIndex": "10",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D03.State",
      "addressIndex": "12",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D04.State",
      "addressIndex": "14",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D05.State",
      "addressIndex": "16",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D06.State",
      "addressIndex": "18",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01tavelActualPosition",
      "addressIndex": "20",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnActualangle",
      "addressIndex": "22",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02tavelActualPosition",
      "addressIndex": "24",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnActualangle",
      "addressIndex": "26",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01tavelActualPosition",
      "addressIndex": "28",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02tavelActualPosition",
      "addressIndex": "30",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01CurrentGrid",
      "addressIndex": "32",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02CurrentGrid",
      "addressIndex": "34",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01CurrentGrid",
      "addressIndex": "36",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01TargetGrid",
      "addressIndex": "38",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02CurrentGrid",
      "addressIndex": "40",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02TargetGrid",
      "addressIndex": "42",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D01ID",
      "addressIndex": "44",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D02ID",
      "addressIndex": "58",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D03ID",
      "addressIndex": "72",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D04ID",
      "addressIndex": "86",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D05ID",
      "addressIndex": "100",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D06ID",
      "addressIndex": "114",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID1",
      "addressIndex": "128",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID2",
      "addressIndex": "142",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID1",
      "addressIndex": "156",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID2",
      "addressIndex": "170",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID1",
      "addressIndex": "184",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID2",
      "addressIndex": "198",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID1",
      "addressIndex": "212",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID2",
      "addressIndex": "226",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01conveyorFaultcodes",
      "addressIndex": "240",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnservoFaultcodes",
      "addressIndex": "242",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01travelservoFaultcodes",
      "addressIndex": "244",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02conveyorFaultcodes",
      "addressIndex": "246",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnservoFaultcodes",
      "addressIndex": "248",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02travelservoFaultcodes",
      "addressIndex": "250",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01travelservoFaultcodes",
      "addressIndex": "252",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02travelservoFaultcodes",
      "addressIndex": "254",
      "addressLenght": "2",
      "unit": ""
    }
    ,
    {
      "codeId": "Scanningguns",
      "addressIndex": "256",
      "addressLenght": "2",
      "unit": ""
    }
    ,
    {
      "codeId": "Frameid",
      "addressIndex": "270",
      "addressLenght": "2",
      "unit": ""
    }
  ]
}
UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
New file
@@ -0,0 +1,378 @@
{
  "plcAddressBegin": "DB101.0.0",
  "plcAddressLenght": "93",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01VFDconveyor",
      "addressIndex": 0
    },
    {
      "codeId": "D02VFDconveyor",
      "addressIndex": 1
    },
    {
      "codeId": "D03VFDconveyor",
      "addressIndex": 2
    },
    {
      "codeId": "D04VFDconveyor",
      "addressIndex": 3
    },
    {
      "codeId": "D05VFDconveyor",
      "addressIndex": 4
    },
    {
      "codeId": "D06VFDconveyor",
      "addressIndex": 5
    },
    {
      "codeId": "A01VFDconveyor",
      "addressIndex": 6
    },
    {
      "codeId": "A02VFDconveyor",
      "addressIndex": 7
    },
    {
      "codeId": "B01VFDconveyor",
      "addressIndex": 8
    },
    {
      "codeId": "B02VFDconveyor",
      "addressIndex": 9
    },
    {
      "codeId": "A01SERVETURN",
      "addressIndex": 10
    },
    {
      "codeId": "A02SERVETURN",
      "addressIndex": 11
    },
    {
      "codeId": "A01SERVETRAVEL",
      "addressIndex": 12
    },
    {
      "codeId": "A02SERVETRAVEL",
      "addressIndex": 13
    },
    {
      "codeId": "B01SERVETRAVEL",
      "addressIndex": 14
    },
    {
      "codeId": "B02SERVETRAVEL",
      "addressIndex": 15
    },
    {
      "codeId": "A01SERVETURNPOS",
      "addressIndex": 16
    },
    {
      "codeId": "A02SERVETURNPOS",
      "addressIndex": 17
    },
    {
      "codeId": "A01SERVETRAVELPOS",
      "addressIndex": 18
    },
    {
      "codeId": "A02SERVETRAVELPOS",
      "addressIndex": 19
    },
    {
      "codeId": "B01SERVETRAVELPOS",
      "addressIndex": 20
    },
    {
      "codeId": "B02SERVETRAVELPOS",
      "addressIndex": 21
    },
    {
      "codeId": "B01YVTURN",
      "addressIndex": 22
    },
    {
      "codeId": "B01YVUPDOWN",
      "addressIndex": 23
    },
    {
      "codeId": "B02YVTURN",
      "addressIndex": 24
    },
    {
      "codeId": "B02YVUPDOWN",
      "addressIndex": 25
    },
    {
      "codeId": "B01YVGassing",
      "addressIndex": 26
    },
    {
      "codeId": "B02YVGassing",
      "addressIndex": 27
    },
    {
      "codeId": "A01VFDconveyorreverse",
      "addressIndex": 28
    },
    {
      "codeId": "A02VFDconveyorreverse",
      "addressIndex": 29
    },
    {
      "codeId": "A01SERVETURNreset",
      "addressIndex": 30
    },
    {
      "codeId": "A01SERVETURNhome",
      "addressIndex": 31
    },
    {
      "codeId": "A01SERVETRAVELreset",
      "addressIndex": 32
    },
    {
      "codeId": "A02SERVETURNreset",
      "addressIndex": 33
    },
    {
      "codeId": "A02SERVETURNhome",
      "addressIndex": 34
    },
    {
      "codeId": "A02SERVETRAVELreset",
      "addressIndex": 35
    },
    {
      "codeId": "B01SERVETRAVELreset",
      "addressIndex": 36
    },
    {
      "codeId": "B01SERVETRAVELhome",
      "addressIndex": 37
    },
    {
      "codeId": "B02SERVETRAVELreset",
      "addressIndex": 38
    },
    {
      "codeId": "B02SERVETRAVELhome",
      "addressIndex": 39
    },
    {
      "codeId": "Manualstoragestartup",
      "addressIndex": 40
    },
    {
      "codeId": "Manualoutputstartup",
      "addressIndex": 41
    },
    {
      "codeId": "A01oilpump",
      "addressIndex": 42
    },
    {
      "codeId": "A02oilpump",
      "addressIndex": 43
    },
    {
      "codeId": "A01get1#gridaddress",
      "addressIndex": 44
    },
    {
      "codeId": "A01get22#gridaddress",
      "addressIndex": 45
    },
    {
      "codeId": "A01get43#gridaddress",
      "addressIndex": 46
    },
    {
      "codeId": "A01get64#gridaddress",
      "addressIndex": 47
    },
    {
      "codeId": "A01get85#gridaddress",
      "addressIndex": 48
    },
    {
      "codeId": "A01get106#gridaddress",
      "addressIndex": 49
    },
    {
      "codeId": "A01get127#gridaddress",
      "addressIndex": 50
    },
    {
      "codeId": "A01get148#gridaddress",
      "addressIndex": 51
    },
    {
      "codeId": "A01get169#gridaddress",
      "addressIndex": 52
    },
    {
      "codeId": "A02get190#gridaddress",
      "addressIndex": 53
    },
    {
      "codeId": "A02get1#gridaddress",
      "addressIndex": 54
    },
    {
      "codeId": "A02get22#gridaddress",
      "addressIndex": 55
    },
    {
      "codeId": "A02get43#gridaddress",
      "addressIndex": 56
    },
    {
      "codeId": "A02get64#gridaddress",
      "addressIndex": 57
    },
    {
      "codeId": "A02get85#gridaddress",
      "addressIndex": 58
    },
    {
      "codeId": "A02get106#gridaddress",
      "addressIndex": 59
    },
    {
      "codeId": "A02get127#gridaddress",
      "addressIndex": 60
    },
    {
      "codeId": "A02get148#gridaddress",
      "addressIndex": 61
    },
    {
      "codeId": "A02get169#gridaddress",
      "addressIndex": 62
    },
    {
      "codeId": "A02get190#gridaddress",
      "addressIndex": 63
    },
    {
      "codeId": "B01get1#gridaddress",
      "addressIndex": 64
    },
    {
      "codeId": "B01get22#gridaddress",
      "addressIndex": 65
    },
    {
      "codeId": "B01get43#gridaddress",
      "addressIndex": 66
    },
    {
      "codeId": "B01get64#gridaddress",
      "addressIndex": 67
    },
    {
      "codeId": "B01get85#gridaddress",
      "addressIndex": 68
    },
    {
      "codeId": "B02get106#gridaddress",
      "addressIndex": 69
    },
    {
      "codeId": "B02get127#gridaddress",
      "addressIndex": 70
    },
    {
      "codeId": "B02get148#gridaddress",
      "addressIndex": 71
    },
    {
      "codeId": "B02get169#gridaddress",
      "addressIndex": 72
    },
    {
      "codeId": "B02get190#gridaddress",
      "addressIndex": 73
    },
    {
      "codeId": "D01IDClean",
      "addressIndex": 74
    },
    {
      "codeId": "D02IDClean",
      "addressIndex": 75
    },
    {
      "codeId": "D03IDClean",
      "addressIndex": 76
    },
    {
      "codeId": "D04IDClean",
      "addressIndex": 77
    },
    {
      "codeId": "D05IDClean",
      "addressIndex": 78
    },
    {
      "codeId": "D06IDClean",
      "addressIndex": 79
    },
    {
      "codeId": "A01IDClean",
      "addressIndex": 80
    },
    {
      "codeId": "A02IDClean",
      "addressIndex": 81
    },
    {
      "codeId": "B01IDClean",
      "addressIndex": 82
    },
    {
      "codeId": "B02IDClean",
      "addressIndex": 83
    },
    {
      "codeId": "abort/resumeTasks",
      "addressIndex": 84
    },
    {
      "codeId": "A01SERVETRAVELhome",
      "addressIndex": 85
    },
    {
      "codeId": "A02SERVETRAVELhome",
      "addressIndex": 86
    },
    {
      "codeId": "A01A02travelHoming",
      "addressIndex": 87
    },
    {
      "codeId": "A01halfAutoSelect",
      "addressIndex": 88
    },
    {
      "codeId": "A02halfAutoSelect",
      "addressIndex": 89
    },
    {
      "codeId": "A02abortTasks",
      "addressIndex": 90
    },
    {
      "codeId": "emgHMI",
      "addressIndex": 91
    },
    {
      "codeId": "Scanningmethod",
      "addressIndex": 92
  ]
}
UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
New file
@@ -0,0 +1,51 @@
{
   "plcAddressBegin":"DB17.0",
   "plcAddressLenght":"40",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "E01id",
         "addressIndex":"0",
         "addressLenght":"14",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "E01Quest",
          "addressIndex":"16",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "E01Reply",
          "addressIndex":"18",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "J01Quest",
          "addressIndex":"20",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "J01id",
          "addressIndex":"22",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "J01TurnGo",
          "addressIndex":"38",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
   ]
}
UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
Binary files differ
UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
Binary files differ
UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
Binary files differ
UnLoadGlassModule/src/main/resources/application.yml
@@ -1,20 +1,16 @@
server:
  port: 8080
  port: 8081
  servlet:
   context-path: /mesModuleTools
spring:
  datasource:
    dynamic:
      primary: user_info #设置默认的数据源或者数据源组,默认值即为master
      primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        user_info:
          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
          username: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        hangzhoumes:
            url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
            username: root
UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json
New file
@@ -0,0 +1,371 @@
{
  "plcAddressBegin": "DB104.0.0",
  "plcAddressLenght": "91",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01VFDerror",
      "addressIndex": 0
    },
    {
      "codeId": "D02VFDerror",
      "addressIndex": 1
    },
    {
      "codeId": "D03VFDerror",
      "addressIndex": 2
    },
    {
      "codeId": "D04VFDerror",
      "addressIndex": 3
    },
    {
      "codeId": "D05VFDerror",
      "addressIndex": 4
    },
    {
      "codeId": "D06VFDerror",
      "addressIndex": 5
    },
    {
      "codeId": "B01VFDerror",
      "addressIndex": 6
    },
    {
      "codeId": "B02VFDerror",
      "addressIndex": 7
    },
    {
      "codeId": "A01VFDerror",
      "addressIndex": 8
    },
    {
      "codeId": "A02VFDerror",
      "addressIndex": 9
    },
    {
      "codeId": "A01servoturnerror",
      "addressIndex": 10
    },
    {
      "codeId": "A02servoturnerror",
      "addressIndex": 11
    },
    {
      "codeId": "A01servotravelerror",
      "addressIndex": 12
    },
    {
      "codeId": "A02servotravelerror",
      "addressIndex": 13
    },
    {
      "codeId": "B01servotravelerror",
      "addressIndex": 14
    },
    {
      "codeId": "B02servotravelerror",
      "addressIndex": 15
    },
    {
      "codeId": "D01DECerror",
      "addressIndex": 16
    },
    {
      "codeId": "D01poserror",
      "addressIndex": 17
    },
    {
      "codeId": "D02DECerror",
      "addressIndex": 18
    },
    {
      "codeId": "D02poserror",
      "addressIndex": 19
    },
    {
      "codeId": "D03DECerror",
      "addressIndex": 20
    },
    {
      "codeId": "D03poserror",
      "addressIndex": 21
    },
    {
      "codeId": "D04DECerror",
      "addressIndex": 22
    },
    {
      "codeId": "D04poserror",
      "addressIndex": 23
    },
    {
      "codeId": "D05DECerror",
      "addressIndex": 24
    },
    {
      "codeId": "D05poserror",
      "addressIndex": 25
    },
    {
      "codeId": "D06DECerror",
      "addressIndex": 26
    },
    {
      "codeId": "D06poserror",
      "addressIndex": 27
    },
    {
      "codeId": "A01DECerror",
      "addressIndex": 28
    },
    {
      "codeId": "A01poserror",
      "addressIndex": 29
    },
    {
      "codeId": "A02DECerror",
      "addressIndex": 30
    },
    {
      "codeId": "A02poserror",
      "addressIndex": 31
    },
    {
      "codeId": "B01INDECerror",
      "addressIndex": 32
    },
    {
      "codeId": "B01INposerror",
      "addressIndex": 33
    },
    {
      "codeId": "B01OUTDECerror",
      "addressIndex": 34
    },
    {
      "codeId": "B01OUTposerror",
      "addressIndex": 35
    },
    {
      "codeId": "B02INDECerror",
      "addressIndex": 36
    },
    {
      "codeId": "B02INposerror",
      "addressIndex": 37
    },
    {
      "codeId": "B02OUTDECerror",
      "addressIndex": 38
    },
    {
      "codeId": "B02OUTposerror",
      "addressIndex": 39
    },
    {
      "codeId": "D01Scanglassexceedinglimit",
      "addressIndex": 40
    },
    {
      "codeId": "emergencystopalarm",
      "addressIndex": 41
    },
    {
      "codeId": "Moreglassthanknown",
      "addressIndex": 42
    },
    {
      "codeId": "lessglassthanknown",
      "addressIndex": 43
    },
    {
      "codeId": "D01conveyortimeoutalarm",
      "addressIndex": 44
    },
    {
      "codeId": "D02conveyortimeoutalarm",
      "addressIndex": 45
    },
    {
      "codeId": "D03conveyortimeoutalarm",
      "addressIndex": 46
    },
    {
      "codeId": "D04conveyortimeoutalarm",
      "addressIndex": 47
    },
    {
      "codeId": "D05conveyortimeoutalarm",
      "addressIndex": 48
    },
    {
      "codeId": "D06conveyortimeoutalarm",
      "addressIndex": 49
    },
    {
      "codeId": "A01conveyortimeoutalarm",
      "addressIndex": 50
    },
    {
      "codeId": "A02conveyortimeoutalarm",
      "addressIndex": 51
    },
    {
      "codeId": "B01conveyortimeoutalarm",
      "addressIndex": 52
    },
    {
      "codeId": "B02conveyortimeoutalarm",
      "addressIndex": 53
    },
    {
      "codeId": "A01conveyorLeftsafetyalarm",
      "addressIndex": 54
    },
    {
      "codeId": "A01conveyorrightsafetyalarm",
      "addressIndex": 55
    },
    {
      "codeId": "A02conveyorLeftsafetyalarm",
      "addressIndex": 56
    },
    {
      "codeId": "A02conveyorrightsafetyalarm",
      "addressIndex": 57
    },
    {
      "codeId": "1#buffersafetyalarm",
      "addressIndex": 58
    },
    {
      "codeId": "2#buffersafetyalarm",
      "addressIndex": 59
    },
    {
      "codeId": "3#buffersafetyalarm",
      "addressIndex": 60
    },
    {
      "codeId": "4#buffersafetyalarm",
      "addressIndex": 61
    },
    {
      "codeId": "A01.SRrightinposerror",
      "addressIndex": 62
    },
    {
      "codeId": "A02.SRleftinposerror",
      "addressIndex": 63
    },
    {
      "codeId": "B01.SRleftinposerror",
      "addressIndex": 64
    },
    {
      "codeId": "B01.SRleftdecerror",
      "addressIndex": 65
    },
    {
      "codeId": "B01.SRrightdecerror",
      "addressIndex": 66
    },
    {
      "codeId": "B01.SRrightinposerror",
      "addressIndex": 67
    },
    {
      "codeId": "B02.SRleftinposerror",
      "addressIndex": 68
    },
    {
      "codeId": "B02.SRleftdecerror",
      "addressIndex": 69
    },
    {
      "codeId": "B02.SRrightdecerror",
      "addressIndex": 70
    },
    {
      "codeId": "B02.SRrightinposerror",
      "addressIndex": 71
    },
    {
      "codeId": "A01servoturnhomed",
      "addressIndex": 72
    },
    {
      "codeId": "A02servoturnhomed",
      "addressIndex": 73
    },
    {
      "codeId": "A01servotravelhomed",
      "addressIndex": 74
    },
    {
      "codeId": "A02servotravelhomed",
      "addressIndex": 75
    },
    {
      "codeId": "B01servotravelhomed",
      "addressIndex": 76
    },
    {
      "codeId": "B02servotravelhomed",
      "addressIndex": 77
    },
    {
      "codeId": "resetDelay",
      "addressIndex": 78
    },
    {
      "codeId": "A01travelNegativelimit",
      "addressIndex": 79
    },
    {
      "codeId": "A01travelPositivelimit",
      "addressIndex": 80
    },
    {
      "codeId": "A01turnuplimit",
      "addressIndex": 81
    },
    {
      "codeId": "A01turndownlimit",
      "addressIndex": 82
    },
    {
      "codeId": "A02travelNegativelimit",
      "addressIndex": 83
    },
    {
      "codeId": "A02travelPositivelimit",
      "addressIndex": 84
    },
    {
      "codeId": "A02turnuplimit",
      "addressIndex": 85
    },
    {
      "codeId": "A02turndownlimit",
      "addressIndex": 86
    },
    {
      "codeId": "B01travelNegativelimit",
      "addressIndex": 87
    },
    {
      "codeId": "B01travelPositivelimit",
      "addressIndex": 88
    },
    {
      "codeId": "B02travelNegativelimit",
      "addressIndex": 89
    },
    {
      "codeId": "B02travelPositivelimit",
      "addressIndex": 90
    }
  ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcMes.json
New file
@@ -0,0 +1,50 @@
{
   "plcAddressBegin":"DB105.0",
   "plcAddressLenght":"12",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "OutActivate",
         "addressIndex":"0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "Addgoal",
          "addressIndex":"2",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "AddLength",
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "AddWidth",
          "addressIndex":"6",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "AddCount",
          "addressIndex":"8",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "OutStart",
          "addressIndex":"10",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
   ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json
New file
@@ -0,0 +1,610 @@
{
   "plcAddressBegin":"DB100.0",
   "plcAddressLenght":"198",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "conveyorVelocity(Max)",
         "addressIndex":"0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "conveyorVelocity(AutoFAST)",
          "addressIndex":"2",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "conveyorVelocity(AutoSLOW)",
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "conveyorVelocity(Manual)",
          "addressIndex":"6",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TURNJOGVelocity",
          "addressIndex":"8",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TRAVELJOGVelocity",
          "addressIndex":"10",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "B01B02TRAVELJOGVelocity",
          "addressIndex":"12",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01A02TURNPOSVelocityAUTO",
          "addressIndex":"14",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "A01TURNPOSVelocitymanual",
          "addressIndex":"16",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
         "codeId": "A01A02TRAVELPOSVelocityAUTO",
         "addressIndex":"18",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },
     {
       "codeId": "A01TRAVELPOSVelocitymanual",
       "addressIndex":"20",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "B01B02TRAVELPOSVelocityAUTO",
       "addressIndex":"22",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "B01TRAVELPOSVelocitymanual",
       "addressIndex":"24",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm/S"
     },
     {
       "codeId": "A01A02conveyorVelocity(Max)",
       "addressIndex":"26",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "A01A02conveyorVelocity(AutoFAST)",
       "addressIndex":"28",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "A01A02conveyorVelocity(AutoSLOW)",
       "addressIndex":"30",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Manual)",
       "addressIndex":"32",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Max)",
       "addressIndex":"34",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(AutoFAST)",
       "addressIndex":"36",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(AutoSLOW)",
       "addressIndex":"38",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "B01B02conveyorVelocity(Manual)",
       "addressIndex":"40",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"m/min"
     },
     {
       "codeId": "gridspacing",
       "addressIndex":"42",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01Spliceaddresssetting",
       "addressIndex":"44",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02Spliceaddresssetting",
       "addressIndex":"46",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A011#gridaddress",
       "addressIndex":"48",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0122#gridaddress",
       "addressIndex":"50",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0143#gridaddress",
       "addressIndex":"52",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0164#gridaddress",
       "addressIndex":"54",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0185#gridaddress",
       "addressIndex":"56",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01106#gridaddress",
       "addressIndex":"58",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01127#gridaddress",
       "addressIndex":"60",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01148#gridaddress",
       "addressIndex":"62",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01169#gridaddress",
       "addressIndex":"64",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01190#gridaddress",
       "addressIndex":"66",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A021#gridaddress",
       "addressIndex":"68",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0222#gridaddress",
       "addressIndex":"70",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0243#gridaddress",
       "addressIndex":"72",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0264#gridaddress",
       "addressIndex":"74",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A0285#gridaddress",
       "addressIndex":"76",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02106#gridaddress",
       "addressIndex":"78",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02127#gridaddress",
       "addressIndex":"80",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02148#gridaddress",
       "addressIndex":"82",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02169#gridaddress",
       "addressIndex":"84",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A02190#gridaddress",
       "addressIndex":"86",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B011#gridaddress",
       "addressIndex":"88",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0122#gridaddress",
       "addressIndex":"90",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0143#gridaddress",
       "addressIndex":"92",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0164#gridaddress",
       "addressIndex":"94",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B0185#gridaddress",
       "addressIndex":"96",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02106#gridaddress",
       "addressIndex":"98",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02127#gridaddress",
       "addressIndex":"100",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02148#gridaddress",
       "addressIndex":"102",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02169#gridaddress",
       "addressIndex":"104",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "B02190#gridaddress",
       "addressIndex":"106",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"mm"
     },
     {
       "codeId": "A01Targetgrid(Manual)",
       "addressIndex":"108",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": " A02Targetgrid(Manual)",
       "addressIndex":"110",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B01Targetgrid(Manual)",
       "addressIndex":"112",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B02Targetgrid(Manual)",
       "addressIndex":"114",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01turnTargetAngle(Manual)",
       "addressIndex":"116",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnTargetAngle(Manual)",
       "addressIndex":"118",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle1",
       "addressIndex":"120",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle2",
       "addressIndex":"122",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle3",
       "addressIndex":"124",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A01turnAngle4",
       "addressIndex":"126",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle1",
       "addressIndex":"128",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle2",
       "addressIndex":"130",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle3",
       "addressIndex":"132",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "A02turnAngle4",
       "addressIndex":"134",
       "addressLenght":"2",
       "ratio":"1",
       "unit":"°"
     },
     {
       "codeId": "Minimumglasslength",
       "addressIndex":"136",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Minimumglassheight",
       "addressIndex":"138",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Maximumglasslength",
       "addressIndex":"140",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Maximumglassheight",
       "addressIndex":"142",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01cellsGlassNum",
       "addressIndex":"144",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A02cellsGlassNum",
       "addressIndex":"146",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "A01ID",
       "addressIndex":"148",
       "addressLenght":"14",
       "ratio":"1"
     },
     {
       "codeId": "A02ID",
       "addressIndex":"162",
       "addressLenght":"14",
       "ratio":"1"
     },
     {
       "codeId": "A02TRAVELPOSVelocitymanual",
       "addressIndex":"176",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "B02TRAVELPOSVelocitymanual",
       "addressIndex":"178",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Startingpositionofthefeedca",
       "addressIndex":"180",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Targetpositionofthefeedcar",
       "addressIndex":"182",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Lengthofincomingglass",
       "addressIndex":"184",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Widthofincomingglass",
       "addressIndex":"186",
       "addressLenght":"2",
       "ratio":"1"
     },
     {
       "codeId": "Startingpositionoftheexitcar",
       "addressIndex":"188",
       "addressLenght":"2",
       "ratio":"1"
     }, {
       "codeId": "Exitcartargetposition",
       "addressIndex":"190",
       "addressLenght":"2",
       "ratio":"1"
     }
     , {
       "codeId": "A02TURNPOSVelocitymanual",
       "addressIndex":"192",
       "addressLenght":"2",
       "ratio":"1"
     }
     , {
       "codeId": "A01delayTime",
       "addressIndex":"194",
       "addressLenght":"2",
       "ratio":"1"
     }
   ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcRead.json
New file
@@ -0,0 +1,195 @@
{
   "plcAddressBegin": "DB106.0",
   "plcAddressLenght": "66",
   "dataType": "word",
   "parameteInfor": [{
         "codeId": "A01Position",
         "addressIndex": "0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01FlipPosition",
         "addressIndex": "2",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01QuestStartPosition",
         "addressIndex": "4",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A01EndPosition",
         "addressIndex": "6",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedCarStatus",
         "addressIndex": "8",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestOver",
         "addressIndex": "10",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02Position",
         "addressIndex": "12",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02FlipPosition",
         "addressIndex": "14",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestStartPosition",
         "addressIndex": "16",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02EndPosition",
         "addressIndex": "18",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "ExitCarStatus",
         "addressIndex": "20",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "A02QuestOver",
         "addressIndex": "22",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedRequest",
         "addressIndex": "24",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "FeedID",
         "addressIndex": "26",
         "addressLenght":"14",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01Position",
         "addressIndex": "40",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01QuestPosition",
         "addressIndex": "42",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CurrentTaskMode",
         "addressIndex": "44",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CarStatus",
         "addressIndex": "46",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CarTaskStatus",
         "addressIndex": "48",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02Position",
         "addressIndex": "50",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarCurrentTask",
         "addressIndex": "52",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CurrentTaskMode",
         "addressIndex": "54",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarStatus",
         "addressIndex": "56",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CarSaskStatus",
         "addressIndex": "58",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B01CompleteTheReport",
         "addressIndex": "60",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "B02CompleteTheReport",
         "addressIndex": "62",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
         "codeId": "OutRequest",
         "addressIndex": "64",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      }
   ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcSign.json
New file
@@ -0,0 +1,460 @@
{
  "plcAddressBegin": "DB102.0.0",
  "plcAddressLenght": "112",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01.SRdec",
      "addressIndex": 0
    },
    {
      "codeId": "D01.SRinpos",
      "addressIndex": 1
    },
    {
      "codeId": "D02.SRdec",
      "addressIndex": 2
    },
    {
      "codeId": "D02.SRinpos",
      "addressIndex": 3
    },
    {
      "codeId": "D03.SRinto",
      "addressIndex": 4
    },
    {
      "codeId": "D03.SRdec",
      "addressIndex": 5
    },
    {
      "codeId": "D03.SRinpos",
      "addressIndex": 6
    },
    {
      "codeId": "D04.SRdec",
      "addressIndex": 7
    },
    {
      "codeId": "D04.SRinpos",
      "addressIndex": 8
    },
    {
      "codeId": "D05.SRdec",
      "addressIndex": 9
    },
    {
      "codeId": "D05.SRinpos",
      "addressIndex": 10
    },
    {
      "codeId": "D06.SRdec",
      "addressIndex": 11
    },
    {
      "codeId": "D06.SRinpos",
      "addressIndex": 12
    },
    {
      "codeId": "B01.SRindec",
      "addressIndex": 13
    },
    {
      "codeId": "B01.SRininpos",
      "addressIndex": 14
    },
    {
      "codeId": "B01.SRoutdec",
      "addressIndex": 15
    },
    {
      "codeId": "B01.SRoutinpos",
      "addressIndex": 16
    },
    {
      "codeId": "B01.SRturnon",
      "addressIndex": 17
    },
    {
      "codeId": "B01.SRturnoff",
      "addressIndex": 18
    },
    {
      "codeId": "B01.SRup",
      "addressIndex": 19
    },
    {
      "codeId": "B01.SRdown",
      "addressIndex": 20
    },
    {
      "codeId": "B02.SRoutdec",
      "addressIndex": 21
    },
    {
      "codeId": "B02.SRoutinpos",
      "addressIndex": 22
    },
    {
      "codeId": "B02.SRindec",
      "addressIndex": 23
    },
    {
      "codeId": "B02.SRininpos",
      "addressIndex": 24
    },
    {
      "codeId": "B02.SRturnon",
      "addressIndex": 25
    },
    {
      "codeId": "B02.SRturnoff",
      "addressIndex": 26
    },
    {
      "codeId": "B02.SRup",
      "addressIndex": 27
    },
    {
      "codeId": "B02.SRdown",
      "addressIndex": 28
    },
    {
      "codeId": "B01.SRinsafety",
      "addressIndex": 29
    },
    {
      "codeId": "B01.SRoutsafety",
      "addressIndex": 30
    },
    {
      "codeId": "B02.SRinsafety",
      "addressIndex": 31
    },
    {
      "codeId": "SB.start(+)",
      "addressIndex": 32
    },
    {
      "codeId": "SB.stop(-)",
      "addressIndex": 33
    },
    {
      "codeId": "SB.reset",
      "addressIndex": 34
    },
    {
      "codeId": "SB.auto/manul",
      "addressIndex": 35
    },
    {
      "codeId": "D01.SB.confirm",
      "addressIndex": 36
    },
    {
      "codeId": "SB.emg",
      "addressIndex": 37
    },
    {
      "codeId": "D01.SB.start",
      "addressIndex": 38
    },
    {
      "codeId": "D06.SB.start",
      "addressIndex": 39
    },
    {
      "codeId": "B02.SRoutsafety",
      "addressIndex": 40
    },
    {
      "codeId": "SafetyDoor.requset",
      "addressIndex": 41
    },
    {
      "codeId": "SafetyDoor.confirm",
      "addressIndex": 42
    },
    {
      "codeId": "SafetyDoor.reset",
      "addressIndex": 43
    },
    {
      "codeId": "Sspce",
      "addressIndex": 44
    },
    {
      "codeId": "Sspce",
      "addressIndex": 45
    },
    {
      "codeId": "Sspce",
      "addressIndex": 46
    },
    {
      "codeId": "Sspce",
      "addressIndex": 47
    },
    {
      "codeId": "A01.SRleftdec",
      "addressIndex": 48
    },
    {
      "codeId": "A01.SRleftinpos",
      "addressIndex": 49
    },
    {
      "codeId": "A01.SRleftsafety",
      "addressIndex": 50
    },
    {
      "codeId": "A01.SRrightdec",
      "addressIndex": 51
    },
    {
      "codeId": "A01.SRrightinpos",
      "addressIndex": 52
    },
    {
      "codeId": "A01.SRrightsafety",
      "addressIndex": 53
    },
    {
      "codeId": "A01.SRturnhome",
      "addressIndex": 54
    },
    {
      "codeId": "A01.SRturnup",
      "addressIndex": 55
    },
    {
      "codeId": "A01.SRturndown",
      "addressIndex": 56
    },
    {
      "codeId": "A01.SRtravelhome",
      "addressIndex": 57
    },
    {
      "codeId": "A01.SRtravelleftdec",
      "addressIndex": 58
    },
    {
      "codeId": "A01.SRtravelleftlimit",
      "addressIndex": 59
    },
    {
      "codeId": "A01.SRtravelrightdec",
      "addressIndex": 60
    },
    {
      "codeId": "A01.SRtravelrightlimit",
      "addressIndex": 61
    },
    {
      "codeId": "space",
      "addressIndex": 62
    },
    {
      "codeId": "space",
      "addressIndex": 63
    },
    {
      "codeId": "A02.SRleftdec",
      "addressIndex": 64
    },
    {
      "codeId": "A02.SRleftinpos",
      "addressIndex": 65
    },
    {
      "codeId": "A02.SRleftsafety",
      "addressIndex": 66
    },
    {
      "codeId": "A02.SRrightdec",
      "addressIndex": 67
    },
    {
      "codeId": "A02.SRrightinpos",
      "addressIndex": 68
    },
    {
      "codeId": "A02.SRrightsafety",
      "addressIndex": 69
    },
    {
      "codeId": "A02.SRturnhome",
      "addressIndex": 70
    },
    {
      "codeId": "A02.SRturnup",
      "addressIndex": 71
    },
    {
      "codeId": "A02.SRturndown",
      "addressIndex": 72
    },
    {
      "codeId": "A02.SRtravelhome",
      "addressIndex": 73
    },
    {
      "codeId": "A02.SRtravelleftdec",
      "addressIndex": 74
    },
    {
      "codeId": "A02.SRtravelleftlimit",
      "addressIndex": 75
    },
    {
      "codeId": "A02.SRtravelrightdec",
      "addressIndex": 76
    },
    {
      "codeId": "A02.SRtravelrightlimit",
      "addressIndex": 77
    },
    {
      "codeId": "space",
      "addressIndex": 78
    },
    {
      "codeId": "space",
      "addressIndex": 79
    },
    {
      "codeId": "B01.SRorigin",
      "addressIndex": 80
    },
    {
      "codeId": "B01.SRleftlimit",
      "addressIndex": 81
    },
    {
      "codeId": "B01.SRrightlimit",
      "addressIndex": 82
    },
    {
      "codeId": "B02.SRorigin",
      "addressIndex": 83
    },
    {
      "codeId": "B02.SRleftlimit",
      "addressIndex": 84
    },
    {
      "codeId": "B02.SRrightlimit",
      "addressIndex": 85
    },
    {
      "codeId": "space",
      "addressIndex": 86
    },
    {
      "codeId": "space",
      "addressIndex": 87
    },
    {
      "codeId": "LED.red",
      "addressIndex": 88
    },
    {
      "codeId": "LED.green",
      "addressIndex": 89
    },
    {
      "codeId": "LED.yellow",
      "addressIndex": 90
    },
    {
      "codeId": "D01.LED.green",
      "addressIndex": 91
    },
    {
      "codeId": "D06.LED.green",
      "addressIndex": 92
    },
    {
      "codeId": "B01.YV.turn",
      "addressIndex": 93
    },
    {
      "codeId": "B01.YV.updown",
      "addressIndex": 94
    },
    {
      "codeId": "B01.YV.gassing",
      "addressIndex": 95
    },
    {
      "codeId": "B02.YV.turn",
      "addressIndex": 96
    },
    {
      "codeId": "B02.YV.updown",
      "addressIndex": 97
    },
    {
      "codeId": "B02.YV.gassing",
      "addressIndex": 98
    },
    {
      "codeId": "SafetyDoor.Led",
      "addressIndex": 99
    },
    {
      "codeId": "SafetyDoor.open",
      "addressIndex": 100
    },
    {
      "codeId": "D01SB.confirm",
      "addressIndex": 101
    },
    {
      "codeId": "space",
      "addressIndex": 102
    },
    {
      "codeId": "space",
      "addressIndex": 103
    },
    {
      "codeId": "A01oilPump",
      "addressIndex": 104
    },
    {
      "codeId": "A01motorCtr",
      "addressIndex": 105
    },
    {
      "codeId": "space",
      "addressIndex": 106
    },
    {
      "codeId": "space",
      "addressIndex": 107
    },
    {
      "codeId": "A02oilPump",
      "addressIndex": 108
    },
    {
      "codeId": "A02motorCtr",
      "addressIndex": 109
    },
    {
      "codeId": "space",
      "addressIndex": 110
    },
    {
      "codeId": "space",
      "addressIndex": 111
    }
    ,
    {
      "codeId": "space",
      "addressIndex": 111
    }
  ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcState.json
New file
@@ -0,0 +1,285 @@
{
  "plcAddressBegin": "DB103.0",
  "plcAddressLenght": "258",
  "dataType": "word",
  "parameteInfor": [
    {
      "codeId": "D01.State",
      "addressIndex": "0",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D02.State",
      "addressIndex": "2",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01.State",
      "addressIndex": "4",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02.State",
      "addressIndex": "6",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01.State",
      "addressIndex": "8",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02.State",
      "addressIndex": "10",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D03.State",
      "addressIndex": "12",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D04.State",
      "addressIndex": "14",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D05.State",
      "addressIndex": "16",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D06.State",
      "addressIndex": "18",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01tavelActualPosition",
      "addressIndex": "20",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnActualangle",
      "addressIndex": "22",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02tavelActualPosition",
      "addressIndex": "24",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnActualangle",
      "addressIndex": "26",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01tavelActualPosition",
      "addressIndex": "28",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02tavelActualPosition",
      "addressIndex": "30",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01CurrentGrid",
      "addressIndex": "32",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02CurrentGrid",
      "addressIndex": "34",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01CurrentGrid",
      "addressIndex": "36",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01TargetGrid",
      "addressIndex": "38",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02CurrentGrid",
      "addressIndex": "40",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02TargetGrid",
      "addressIndex": "42",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D01ID",
      "addressIndex": "44",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D02ID",
      "addressIndex": "58",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D03ID",
      "addressIndex": "72",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D04ID",
      "addressIndex": "86",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D05ID",
      "addressIndex": "100",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D06ID",
      "addressIndex": "114",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID1",
      "addressIndex": "128",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID2",
      "addressIndex": "142",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID1",
      "addressIndex": "156",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID2",
      "addressIndex": "170",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID1",
      "addressIndex": "184",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID2",
      "addressIndex": "198",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID1",
      "addressIndex": "212",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID2",
      "addressIndex": "226",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01conveyorFaultcodes",
      "addressIndex": "240",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnservoFaultcodes",
      "addressIndex": "242",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01travelservoFaultcodes",
      "addressIndex": "244",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02conveyorFaultcodes",
      "addressIndex": "246",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnservoFaultcodes",
      "addressIndex": "248",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02travelservoFaultcodes",
      "addressIndex": "250",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01travelservoFaultcodes",
      "addressIndex": "252",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02travelservoFaultcodes",
      "addressIndex": "254",
      "addressLenght": "2",
      "unit": ""
    }
    ,
    {
      "codeId": "Scanningguns",
      "addressIndex": "256",
      "addressLenght": "2",
      "unit": ""
    }
    ,
    {
      "codeId": "Frameid",
      "addressIndex": "270",
      "addressLenght": "2",
      "unit": ""
    }
  ]
}
UnLoadGlassModule/target/classes/JsonFile/PlcTest.json
New file
@@ -0,0 +1,378 @@
{
  "plcAddressBegin": "DB101.0.0",
  "plcAddressLenght": "93",
  "dataType": "bit",
  "parameteInfor": [
    {
      "codeId": "D01VFDconveyor",
      "addressIndex": 0
    },
    {
      "codeId": "D02VFDconveyor",
      "addressIndex": 1
    },
    {
      "codeId": "D03VFDconveyor",
      "addressIndex": 2
    },
    {
      "codeId": "D04VFDconveyor",
      "addressIndex": 3
    },
    {
      "codeId": "D05VFDconveyor",
      "addressIndex": 4
    },
    {
      "codeId": "D06VFDconveyor",
      "addressIndex": 5
    },
    {
      "codeId": "A01VFDconveyor",
      "addressIndex": 6
    },
    {
      "codeId": "A02VFDconveyor",
      "addressIndex": 7
    },
    {
      "codeId": "B01VFDconveyor",
      "addressIndex": 8
    },
    {
      "codeId": "B02VFDconveyor",
      "addressIndex": 9
    },
    {
      "codeId": "A01SERVETURN",
      "addressIndex": 10
    },
    {
      "codeId": "A02SERVETURN",
      "addressIndex": 11
    },
    {
      "codeId": "A01SERVETRAVEL",
      "addressIndex": 12
    },
    {
      "codeId": "A02SERVETRAVEL",
      "addressIndex": 13
    },
    {
      "codeId": "B01SERVETRAVEL",
      "addressIndex": 14
    },
    {
      "codeId": "B02SERVETRAVEL",
      "addressIndex": 15
    },
    {
      "codeId": "A01SERVETURNPOS",
      "addressIndex": 16
    },
    {
      "codeId": "A02SERVETURNPOS",
      "addressIndex": 17
    },
    {
      "codeId": "A01SERVETRAVELPOS",
      "addressIndex": 18
    },
    {
      "codeId": "A02SERVETRAVELPOS",
      "addressIndex": 19
    },
    {
      "codeId": "B01SERVETRAVELPOS",
      "addressIndex": 20
    },
    {
      "codeId": "B02SERVETRAVELPOS",
      "addressIndex": 21
    },
    {
      "codeId": "B01YVTURN",
      "addressIndex": 22
    },
    {
      "codeId": "B01YVUPDOWN",
      "addressIndex": 23
    },
    {
      "codeId": "B02YVTURN",
      "addressIndex": 24
    },
    {
      "codeId": "B02YVUPDOWN",
      "addressIndex": 25
    },
    {
      "codeId": "B01YVGassing",
      "addressIndex": 26
    },
    {
      "codeId": "B02YVGassing",
      "addressIndex": 27
    },
    {
      "codeId": "A01VFDconveyorreverse",
      "addressIndex": 28
    },
    {
      "codeId": "A02VFDconveyorreverse",
      "addressIndex": 29
    },
    {
      "codeId": "A01SERVETURNreset",
      "addressIndex": 30
    },
    {
      "codeId": "A01SERVETURNhome",
      "addressIndex": 31
    },
    {
      "codeId": "A01SERVETRAVELreset",
      "addressIndex": 32
    },
    {
      "codeId": "A02SERVETURNreset",
      "addressIndex": 33
    },
    {
      "codeId": "A02SERVETURNhome",
      "addressIndex": 34
    },
    {
      "codeId": "A02SERVETRAVELreset",
      "addressIndex": 35
    },
    {
      "codeId": "B01SERVETRAVELreset",
      "addressIndex": 36
    },
    {
      "codeId": "B01SERVETRAVELhome",
      "addressIndex": 37
    },
    {
      "codeId": "B02SERVETRAVELreset",
      "addressIndex": 38
    },
    {
      "codeId": "B02SERVETRAVELhome",
      "addressIndex": 39
    },
    {
      "codeId": "Manualstoragestartup",
      "addressIndex": 40
    },
    {
      "codeId": "Manualoutputstartup",
      "addressIndex": 41
    },
    {
      "codeId": "A01oilpump",
      "addressIndex": 42
    },
    {
      "codeId": "A02oilpump",
      "addressIndex": 43
    },
    {
      "codeId": "A01get1#gridaddress",
      "addressIndex": 44
    },
    {
      "codeId": "A01get22#gridaddress",
      "addressIndex": 45
    },
    {
      "codeId": "A01get43#gridaddress",
      "addressIndex": 46
    },
    {
      "codeId": "A01get64#gridaddress",
      "addressIndex": 47
    },
    {
      "codeId": "A01get85#gridaddress",
      "addressIndex": 48
    },
    {
      "codeId": "A01get106#gridaddress",
      "addressIndex": 49
    },
    {
      "codeId": "A01get127#gridaddress",
      "addressIndex": 50
    },
    {
      "codeId": "A01get148#gridaddress",
      "addressIndex": 51
    },
    {
      "codeId": "A01get169#gridaddress",
      "addressIndex": 52
    },
    {
      "codeId": "A02get190#gridaddress",
      "addressIndex": 53
    },
    {
      "codeId": "A02get1#gridaddress",
      "addressIndex": 54
    },
    {
      "codeId": "A02get22#gridaddress",
      "addressIndex": 55
    },
    {
      "codeId": "A02get43#gridaddress",
      "addressIndex": 56
    },
    {
      "codeId": "A02get64#gridaddress",
      "addressIndex": 57
    },
    {
      "codeId": "A02get85#gridaddress",
      "addressIndex": 58
    },
    {
      "codeId": "A02get106#gridaddress",
      "addressIndex": 59
    },
    {
      "codeId": "A02get127#gridaddress",
      "addressIndex": 60
    },
    {
      "codeId": "A02get148#gridaddress",
      "addressIndex": 61
    },
    {
      "codeId": "A02get169#gridaddress",
      "addressIndex": 62
    },
    {
      "codeId": "A02get190#gridaddress",
      "addressIndex": 63
    },
    {
      "codeId": "B01get1#gridaddress",
      "addressIndex": 64
    },
    {
      "codeId": "B01get22#gridaddress",
      "addressIndex": 65
    },
    {
      "codeId": "B01get43#gridaddress",
      "addressIndex": 66
    },
    {
      "codeId": "B01get64#gridaddress",
      "addressIndex": 67
    },
    {
      "codeId": "B01get85#gridaddress",
      "addressIndex": 68
    },
    {
      "codeId": "B02get106#gridaddress",
      "addressIndex": 69
    },
    {
      "codeId": "B02get127#gridaddress",
      "addressIndex": 70
    },
    {
      "codeId": "B02get148#gridaddress",
      "addressIndex": 71
    },
    {
      "codeId": "B02get169#gridaddress",
      "addressIndex": 72
    },
    {
      "codeId": "B02get190#gridaddress",
      "addressIndex": 73
    },
    {
      "codeId": "D01IDClean",
      "addressIndex": 74
    },
    {
      "codeId": "D02IDClean",
      "addressIndex": 75
    },
    {
      "codeId": "D03IDClean",
      "addressIndex": 76
    },
    {
      "codeId": "D04IDClean",
      "addressIndex": 77
    },
    {
      "codeId": "D05IDClean",
      "addressIndex": 78
    },
    {
      "codeId": "D06IDClean",
      "addressIndex": 79
    },
    {
      "codeId": "A01IDClean",
      "addressIndex": 80
    },
    {
      "codeId": "A02IDClean",
      "addressIndex": 81
    },
    {
      "codeId": "B01IDClean",
      "addressIndex": 82
    },
    {
      "codeId": "B02IDClean",
      "addressIndex": 83
    },
    {
      "codeId": "abort/resumeTasks",
      "addressIndex": 84
    },
    {
      "codeId": "A01SERVETRAVELhome",
      "addressIndex": 85
    },
    {
      "codeId": "A02SERVETRAVELhome",
      "addressIndex": 86
    },
    {
      "codeId": "A01A02travelHoming",
      "addressIndex": 87
    },
    {
      "codeId": "A01halfAutoSelect",
      "addressIndex": 88
    },
    {
      "codeId": "A02halfAutoSelect",
      "addressIndex": 89
    },
    {
      "codeId": "A02abortTasks",
      "addressIndex": 90
    },
    {
      "codeId": "emgHMI",
      "addressIndex": 91
    },
    {
      "codeId": "Scanningmethod",
      "addressIndex": 92
  ]
}
UnLoadGlassModule/target/classes/JsonFile/Plcframe.json
New file
@@ -0,0 +1,51 @@
{
   "plcAddressBegin":"DB17.0",
   "plcAddressLenght":"40",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "E01id",
         "addressIndex":"0",
         "addressLenght":"14",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "E01Quest",
          "addressIndex":"16",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "E01Reply",
          "addressIndex":"18",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "J01Quest",
          "addressIndex":"20",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "J01id",
          "addressIndex":"22",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "J01TurnGo",
          "addressIndex":"38",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
   ]
}
UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx
Binary files differ
UnLoadGlassModule/target/classes/JsonFile/sign.xlsx
Binary files differ
UnLoadGlassModule/target/classes/JsonFile/test.xlsx
Binary files differ
UnLoadGlassModule/target/classes/application.yml
@@ -1,20 +1,16 @@
server:
  port: 8080
  port: 8081
  servlet:
   context-path: /mesModuleTools
spring:
  datasource:
    dynamic:
      primary: user_info #设置默认的数据源或者数据源组,默认值即为master
      primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        user_info:
          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
          username: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        hangzhoumes:
            url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
            username: root