From 04adb88a2ed54cdf4c2958c79972c30109b9b5b6 Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期四, 28 三月 2024 16:54:56 +0800
Subject: [PATCH] 内容调整
---
TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml | 65
UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java | 9
UI-Project/src/views/Returns/ReturnsReport.vue | 180
UI-Project/src/views/Returns/returns.vue | 426 +
UI-Project/src/views/Returns/SelectDeliveryList.vue | 205
TemperingGlassModule/MES-Module (1).iml | 139
UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx | 0
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java | 3
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java | 2
UI-Project/src/views/PurchaseReturn/purchase.vue | 49
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java | 276 +
UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json | 460 ++
UI-Project/src/views/UnLoadGlass.zip | 0
UI-Project/src/views/Caching/caching.vue | 766 +++
TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original | 0
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst | 53
UI-Project/src/views/Returns/CreateReturns.vue | 182
UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx | 0
UnLoadGlassModule/target/classes/JsonFile/PlcRead.json | 195
UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json | 378 +
UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json | 51
UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java | 5
UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx | 0
UnLoadGlassModule/target/classes/JsonFile/PlcTest.json | 378 +
UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json | 610 ++
UI-Project/package.json | 2
UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json | 195
UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java | 44
UnLoadGlassModule/target/classes/JsonFile/PlcMes.json | 50
UI-Project/src/views/StockBasicData/Return.vue | 593 ++
TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | 54
UnLoadGlassModule/target/classes/JsonFile/PlcSign.json | 460 ++
UI-Project/src/utils/unloadrequest.js | 49
UI-Project/src/views/StockBasicData/Details.vue | 453 ++
UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue | 193
UnLoadGlassModule/mockPLCData.properties | 13
UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java | 91
UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java | 139
UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java | 61
UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java | 86
UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java | 45
UnLoadGlassModule/target/classes/JsonFile/sign.xlsx | 0
UnLoadGlassModule/target/classes/JsonFile/test.xlsx | 0
UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json | 285 +
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | 90
UI-Project/src/views/StockBasicData/Payment.vue | 354 +
UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java | 96
UI-Project/src/views/StockBasicData/Select.vue | 486 ++
UI-Project/src/views/StockBasicData/Storage.vue | 603 ++
UI-Project/src/utils/webSocket.js | 2
UnLoadGlassModule/target/classes/JsonFile/Plcframe.json | 51
CacheGlassModule/src/main/resources/banner.txt | 32
UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java | 25
TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java | 2
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java | 2
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java | 9
UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java | 15
TemperingGlassModule/target/maven-archiver/pom.properties | 3
UI-Project/src/views/Identify/identify.vue | 174
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java | 2
UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java | 3
UI-Project/src/views/StockBasicData/Create.vue | 724 +++
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst | 1
UI-Project/src/assets/aaa.png | 0
UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json | 50
UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java | 3
UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java | 3
UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java | 17
UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java | 3
UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java | 40
UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java | 2
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java | 2
UnLoadGlassModule/target/classes/JsonFile/PlcState.json | 285 +
UI-Project/config.js | 3
UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json | 371 +
TemperingGlassModule/MES-Module.iml | 15
UI-Project/src/views/StockBasicData/stockBasicData.vue | 169
TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java | 2
UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java | 56
UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java | 2
UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx | 0
TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt | 4
UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json | 371 +
UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json | 610 ++
UI-Project/src/views/Slicecage/slicecage.vue | 568 ++
/dev/null | 65
UI-Project/src/views/Returns/SelectReturns.vue | 273 +
TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java | 9
TemperingGlassModule/src/main/resources/application.yml | 24
UI-Project/src/views/HomeView.vue | 28
UI-Project/package-lock.json | 4
UnLoadGlassModule/src/main/resources/application.yml | 10
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 174
UnLoadGlassModule/target/classes/application.yml | 10
TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst | 1
UI-Project/vite.config.js | 2
96 files changed, 12,884 insertions(+), 211 deletions(-)
diff --git a/CacheGlassModule/src/main/resources/banner.txt b/CacheGlassModule/src/main/resources/banner.txt
new file mode 100644
index 0000000..b4027f0
--- /dev/null
+++ b/CacheGlassModule/src/main/resources/banner.txt
@@ -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 銆�銆�//
\ No newline at end of file
diff --git "a/TemperingGlassModule/MES-Module \0501\051.iml" "b/TemperingGlassModule/MES-Module \0501\051.iml"
new file mode 100644
index 0000000..100b632
--- /dev/null
+++ "b/TemperingGlassModule/MES-Module \0501\051.iml"
@@ -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>
\ No newline at end of file
diff --git a/TemperingGlassModule/MES-Module.iml b/TemperingGlassModule/MES-Module.iml
new file mode 100644
index 0000000..ddaeab8
--- /dev/null
+++ b/TemperingGlassModule/MES-Module.iml
@@ -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>
\ No newline at end of file
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
index 0bf0923..08baad9 100644
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
+++ b/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() ;
}
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
index 53e9856..dc3b242 100644
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
+++ b/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);
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
index 004399b..9940470 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
+++ b/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;
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
index 6efd838..ee38452 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
+++ b/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;
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
index 278b057..55f8fc6 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
+++ b/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;
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
index 08fb8dd..e172f10 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
+++ b/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
diff --git a/TemperingGlassModule/src/main/resources/application.yml b/TemperingGlassModule/src/main/resources/application.yml
index d74069d..a85e82a 100644
--- a/TemperingGlassModule/src/main/resources/application.yml
+++ b/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 #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
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
\ No newline at end of file
diff --git a/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original b/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 0000000..5562d4d
--- /dev/null
+++ b/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original
Binary files differ
diff --git a/TemperingGlassModule/target/maven-archiver/pom.properties b/TemperingGlassModule/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..f4d443d
--- /dev/null
+++ b/TemperingGlassModule/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=MES-Module
+groupId=com.MES-Module
+version=0.0.1-SNAPSHOT
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..8c9427b
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -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
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..9a930c2
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -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
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..9c25a83
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+com\mes\MesApplicationTests.class
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..5b92fc7
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+D:\xm4\HangZhouMes\TemperingGlassModule\src\test\java\com\mes\MesApplicationTests.java
diff --git a/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml b/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
new file mode 100644
index 0000000..4a1f5d8
--- /dev/null
+++ b/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.mes.MesApplicationTests" time="7.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=" "/>
+ <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>
\ No newline at end of file
diff --git a/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt b/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
new file mode 100644
index 0000000..93941f7
--- /dev/null
+++ b/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.mes.MesApplicationTests
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.389 s - in com.mes.MesApplicationTests
diff --git a/UI-Project/config.js b/UI-Project/config.js
index 201fb02..ac9f2b1 100644
--- a/UI-Project/config.js
+++ b/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"
}
\ No newline at end of file
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 0acc5fd..a7386d3 100644
--- a/UI-Project/package-lock.json
+++ b/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",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index d123656..75d8054 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -1,5 +1,5 @@
{
- "name": "northglass-erp",
+ "name": "northglass-mes",
"version": "0.0.0",
"private": true,
"scripts": {
diff --git a/UI-Project/src/assets/aaa.png b/UI-Project/src/assets/aaa.png
new file mode 100644
index 0000000..be775d6
--- /dev/null
+++ b/UI-Project/src/assets/aaa.png
Binary files differ
diff --git a/UI-Project/src/utils/unloadrequest.js b/UI-Project/src/utils/unloadrequest.js
new file mode 100644
index 0000000..bdaeeb5
--- /dev/null
+++ b/UI-Project/src/utils/unloadrequest.js
@@ -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 鎷︽埅鍣�
+// 鍙互鑷姹傚彂閫佸墠瀵硅姹傚仛涓�浜涘鐞�
+// 姣斿缁熶竴鍔爐oken锛屽璇锋眰鍙傛暟缁熶竴鍔犲瘑
+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 鎷︽埅鍣�
+// 鍙互鍦ㄦ帴鍙e搷搴斿悗缁熶竴澶勭悊缁撴灉
+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
+
diff --git a/UI-Project/src/utils/webSocket.js b/UI-Project/src/utils/webSocket.js
index 779990b..51e5ede 100644
--- a/UI-Project/src/utils/webSocket.js
+++ b/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) {
diff --git a/UI-Project/src/views/Caching/caching.vue b/UI-Project/src/views/Caching/caching.vue
new file mode 100644
index 0000000..b166446
--- /dev/null
+++ b/UI-Project/src/views/Caching/caching.vue
@@ -0,0 +1,766 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+ {
+ id: '1',
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ type: '1200',
+ typea: '1',
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '1200'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '1200'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '1200'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ }
+]
+const tableDataa = [
+ {
+ ida: '3',
+ longa: '1005',
+ widea: '183.6',
+ thicka: '1991',
+ },
+ {
+ ida: '4',
+ longa: '105',
+ widea: '183',
+ thicka: '191',
+ }
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+</script>
+
+<template>
+ <div>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="鐜荤拑ID" min-width="80" />
+ <el-table-column prop="long" align="center" label="浣嶇疆" min-width="120" />
+ <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+ <el-table-column prop="type" align="center" label="闀�" min-width="120" />
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default>
+ <el-button size="mini" type="text" plain @click="dialogFormVisiblea = true">鎶ョ己</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+
+ </div>
+ <div id="awatch">
+ <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
+
+</div>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#message{
+ text-align: center;
+ align-items: center;
+ color: black;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
+}
+#awatch{
+ height: 460px;
+ /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/HomeView.vue b/UI-Project/src/views/HomeView.vue
index 075c71e..6285749 100644
--- a/UI-Project/src/views/HomeView.vue
+++ b/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>
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
new file mode 100644
index 0000000..92ec074
--- /dev/null
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -0,0 +1,174 @@
+<template>
+ <el-card style="margin-left: 10px; margin-top: 10px; margin-right: 10px;" v-loading="loading">
+ <div style="display: flex;">
+ <div style="margin-left: 400px; font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+ <div style="margin-left: 150px; font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+ </div>
+ <svg width="100%" height="690" xmlns="http://www.w3.org/2000/svg" style="margin-top: -40px;">
+ <defs>
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" viewBox="0 0 12 12" refX="6"
+ refY="6" orient="auto">
+ <path d="M2,2 L10,6 L2,10 L2,2" style="fill: #911005;" />
+ </marker>
+ </defs>
+ <g v-for="(rack, index) in racks" :key="index">
+ <rect
+ :x="rack.x"
+ :y="rack.y"
+ :width="rack.width"
+ :height="rack.height"
+ :fill="rack.fillColor"
+ :data-index="index"
+ class="rack-rect"
+ style="stroke:#c8c9cc;stroke-width:3;"
+ @click="showRectInfo(rack)"
+ />
+ <line x1='510' y1='309' x2='260' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+ </line>
+ <line x1='850' y1='309' x2='1100' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+ </line>
+ <line x1='510' y1='409' x2='260' y2='410' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+ </line>
+ <line x1='1200' y1='650' x2='1200' y2='470' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+ </line>
+ <text x="370" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-01</text>
+ <text x="370" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text>
+
+ <text x="970" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-02</text>
+ <text x="970" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text>
+
+ <text x="600" y="500" dominant-baseline="middle" text-anchor="middle">NG2024030501A-03</text>
+ <text x="600" y="520" dominant-baseline="middle" text-anchor="middle">800*450</text>
+
+
+ <text x="1280" y="520" dominant-baseline="middle" text-anchor="middle">NG2024030501A-04</text>
+ <text x="1280" y="540" dominant-baseline="middle" text-anchor="middle">400*300</text>
+ <g v-for="(item, itemIndex) in rack.items" :key="itemIndex">
+ <rect
+ :x="calculateItemXPosition(rack, item, itemIndex)"
+ :y="calculateItemYPosition(rack, item, itemIndex)"
+ :width="item.width"
+ :height="item.height"
+ :fill="item.fillColor"
+ />
+ </g>
+ </g>
+ </svg>
+ </el-card>
+</template>
+
+<script>
+import Swal from 'sweetalert2'
+export default {
+ data() {
+ return {
+ loading: false,
+ racks: [
+ {
+ x: 70, y: 126, width: 600, height: 240, fillColor: '#93d2f3',
+ items: [
+ { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456',y: '20'},
+ { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
+ { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG12345678' }
+ ]
+ },
+ {
+ x: 685, y: 126, width: 600, height: 240, fillColor: '#93d2f3',
+ items: [
+ { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
+ ]
+ },
+ {
+ x: 70, y: 380, width: 1100, height: 260, fillColor: '#81b337',
+ items: [
+ { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
+ ]
+ },
+ {
+ x: 1185, y: 380, width: 200, height: 300,fillColor: '#81b337',
+ items: [
+ { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'top-right',width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+ { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
+ ]
+ }
+
+ // Add more racks and items here as needed
+ ],
+ };
+ },
+
+ methods: {
+ calculateItemXPosition(rack, item, index) {
+ if (item.position === 'top-right' || item.position === 'bottom-right') {
+ return Math.min(rack.x + rack.width - item.width, rack.x + rack.width);
+ } else {
+ return rack.x;
+ }
+ },
+
+ calculateItemYPosition(rack, item, index) {
+ if (item.position === 'bottom-left' || item.position === 'bottom-right') {
+ return Math.min(rack.y + rack.height - item.height, rack.y + rack.height);
+ } else {
+ return rack.y;
+ }
+ },
+
+ showCustomAlert(content) {
+ Swal.fire({
+ // type: 'warning', // 寮规绫诲瀷
+ title: '璇ョ墖鐜荤拑鐘舵��', //鏍囬
+ // text: "娉ㄩ攢鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", //鏄剧ず鍐呭
+
+ confirmButtonColor: '#3085d6',// 纭畾鎸夐挳鐨� 棰滆壊
+ confirmButtonText: '浜哄伐鎷胯蛋',// 纭畾鎸夐挳鐨� 鏂囧瓧
+ showCancelButton: true, // 鏄惁鏄剧ず鍙栨秷鎸夐挳
+ cancelButtonColor: '#d33', // 鍙栨秷鎸夐挳鐨� 棰滆壊
+ cancelButtonText: "鐮存崯", // 鍙栨秷鎸夐挳鐨� 鏂囧瓧
+
+ // focusCancel: true, // 鏄惁鑱氱劍 鍙栨秷鎸夐挳
+ reverseButtons: true // 鏄惁 鍙嶈浆 涓や釜鎸夐挳鐨勪綅缃� 榛樿鏄� 宸﹁竟 纭畾 鍙宠竟 鍙栨秷
+}).then((isConfirm) => {
+ try {
+ //鍒ゆ柇 鏄惁 鐐瑰嚮鐨� 纭畾鎸夐挳
+ if (isConfirm.value) {
+ Swal.fire("浜哄伐鎷胯蛋", "鐐瑰嚮浜嗕汉宸ユ嬁璧�", "success");
+ }
+ else {
+ Swal.fire("鐮存崯", "鐐瑰嚮浜嗙牬鎹�", "error");
+ }
+ } catch (e) {
+ alert(e);
+ }
+});
+ },
+
+ showRectInfo(rectInfo) {
+ const contents = rectInfo.items.map(item => item.content).join(', ');
+ this.$nextTick(() => {
+ this.showCustomAlert(contents);
+ });
+ },
+ }
+};
+</script>
+
+<style scoped>
+.glass-rack {
+ width: 100%;
+ height: 80vh;
+}
+.rack-rect:hover {
+ cursor: pointer;
+}
+.custom-popover-class {
+ background-color: lightgrey;
+ color: black;
+ border: 1px solid black;
+}
+</style>
diff --git a/UI-Project/src/views/PurchaseReturn/purchase.vue b/UI-Project/src/views/PurchaseReturn/purchase.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchase.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+ indexFlag=index
+}
+
+</script>
+
+<template>
+ <!-- <div id="main-div"> -->
+
+
+ <div id="main-body">
+ <router-view />
+ </div>
+ <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+ width: 100%;
+ height: 100%;
+}
+#div-title{
+ height: 2%;
+ width: 100%;
+}
+#searchButton{
+ margin-top: -5px;
+ margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+ width: 100%;
+ height: 95%;
+ /* margin-top: 1%; */
+}
+#select{
+ margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+ color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
new file mode 100644
index 0000000..38963a3
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -0,0 +1,174 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+
+import { ref } from 'vue'
+
+const dialogFormVisible = ref(true)
+const dialogFormVisiblea = ref(false)
+
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ }
+ ],
+})
+</script>
+
+<template>
+ <div style="margin-top: 10px;">
+ <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false">鎽嗙墖鐗堝浘</el-button>
+ <el-button id="searchButton" type="success" @click="dialogFormVisiblea = true;dialogFormVisible = false">宸插嚭鐐夌幓鐠�</el-button>
+<div v-if="dialogFormVisible" >
+ <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+ <div style="display: flex;margin-bottom: 20px;">
+ <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+ <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+ </div>
+ <div>
+ <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
+ <div style="margin-top: 35px;"> NG202405060798A01-1</div>
+ <div> 500脳1500</div>
+ </div>
+ <div id="boxa" style="width: 400px;height: 120px;">
+ <div style="margin-top: 35px;"> NG202405060798A01-1</div>
+ <div> 500脳1500</div>
+ </div>
+ </div>
+ <div style="margin-top: 20px;">
+ <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
+ <div style="margin-top: 35px;"> NG202405060798A01-1</div>
+ <div> 500脳1500</div>
+ </div>
+ <div id="boxb" style="width: 400px;height: 120px;">
+ <div style="margin-top: 35px;"> NG202405060798A01-1</div>
+ <div> 500脳1500</div>
+ </div>
+ </div>
+ </el-card>
+ </div>
+<div v-if="dialogFormVisiblea">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+ <el-scrollbar height="630px">
+ <div id="home-card">
+ <div id="home-item" v-for="n in 20" :key="n">
+ <div id="box" style="width: 100px;height: 165px;">100*65</div>
+ <div id="box" style="width: 107px;height: 150px;">107*60</div>
+ <div id="box" style="width: 107px;height: 155px;">109*60</div>
+ </div>
+ </div>
+ </el-scrollbar>
+ </el-card>
+</div>
+ </div>
+
+</template>
+
+<style scoped>
+#boxa{
+ border: 1px solid rgb(119, 116, 116);
+ background-color: #529b2e;
+ text-align: center;
+ display: inline-block;
+ /* align-items:center; */
+ /* justify-content:center; */
+ margin-left: 20px;
+}
+#boxb{
+ border: 1px solid rgb(119, 116, 116);
+ background-color: #a0cfff;
+ /* display:flex; */
+ text-align: center;
+ display: inline-block;
+ align-items:center;
+ justify-content:center;
+ margin-left: 20px;
+}
+#box{
+ border: 1px solid black;
+ background-color: #337ecc;
+ display:flex;
+ align-items:center;
+ justify-content:center;
+}
+#home-card {
+ width: 100%;
+ overflow: hidden;
+ padding: 10px 0px;
+ display: flex;
+ flex-wrap: wrap;
+ #home-item {
+ border-style: solid;
+ border-width: 1px;
+ border-color: #E4E4E4;
+ width: calc(34% - 20px);
+ padding: 20px 0px 20px 20px;
+ margin-right: 10px;
+ margin-bottom: 10px;
+ display: flex;
+ justify-content: center;
+ /* align-items: center; */
+ background: #fff;
+ #home-img {
+ display: inline-block;
+ width: 160px;
+ height: 60px;
+ margin: 0;
+ padding: 0;
+ }
+ #home-right {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: flex-start;
+ margin-left: 10px;
+ #home-num {
+ font-size: 40px;
+ margin: 5px 0;
+ }
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
new file mode 100644
index 0000000..11f2545
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -0,0 +1,90 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+
+import { ref } from 'vue'
+
+const dialogFormVisible = ref(true)
+const dialogFormVisiblea = ref(false)
+
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ }
+ ],
+})
+</script>
+
+<template>
+ <div style="margin-top: 10px;">
+<div>
+ <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+ <div style="display: flex;margin-top: 20px;">
+ <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+ <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+ </div>
+ <div>
+ <div id="boxa" style="width: 700px;height: 220px;margin-left: 260px;">
+ <div style="margin-top: 85px;"> NG202405060798A01-1</div>
+ <div> 500脳1500</div>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </div>
+
+</template>
+
+<style scoped>
+#boxa{
+ border: 1px solid rgb(119, 116, 116);
+ background-color: #529b2e;
+ text-align: center;
+ display: inline-block;
+ margin-left: 20px;
+ margin-top: 70px;
+ margin-bottom: 50px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/CreateReturns.vue b/UI-Project/src/views/Returns/CreateReturns.vue
new file mode 100644
index 0000000..8e203da
--- /dev/null
+++ b/UI-Project/src/views/Returns/CreateReturns.vue
@@ -0,0 +1,182 @@
+<script setup>
+
+import {reactive} from "vue";
+
+
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },//琛ㄥご鍙傛暟
+ columns:[
+ {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
+ {type:'checkbox',title: '閫夊垯', width: 80,fixed:"left"},
+ {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
+ {field: '0',width:120, title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '1',width:120, title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '2',width:120, title: '鍙��鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '3',width:120, title: '宸查��鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '4',width:120, title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '5',width:120, title: '閫�璐ф暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '6',width:120, title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '7',width:120, title: '浜у搧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '8',width:120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '9',width:120, title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '10',width:120, title: '搴撳尯',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '11',width:120, title: '閲戦',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '12',width:120, title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '13',width:120, title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '14',width:120, title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '15',width:120, title: '鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '16',width:120, title: '鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '17',width:120, title: '缁撶畻鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '18',width:120, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '19',width:120, title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '20',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '21',width:120, title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '22',width:120, title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+
+
+ ],//琛ㄥご鎸夐挳
+ toolbarConfig: {
+ buttons: [
+ {'code': 'add', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
+ ],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true
+ },
+ data: [
+ ],//table body瀹為檯鏁版嵁
+ footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+ return[
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ // if (props.tableProp.footList.includes(column.field)) {
+ // return sumNum(data, column.field)
+ // }
+ return ''
+ })
+ ]
+ }
+
+})
+
+</script>
+
+<template>
+ <div class="main-div">
+ <div class="order-primary" style="background-color: white" >
+ <el-row>
+ <el-col :span="2"><el-text>瀹㈡埛缂栫爜:</el-text></el-col>
+ <el-col :span="5"><el-text style="font-size: large;color: #181818">131</el-text></el-col>
+ <el-col :span="2"><el-text>瀹㈡埛鍚嶇О:</el-text></el-col>
+ <el-col :span="5"><el-text></el-text></el-col>
+ <el-col :span="2"><el-text>椤圭洰鍚嶇О:</el-text></el-col>
+ <el-col :span="5"><el-text></el-text></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="2"><el-text>閫�璐ф柟寮�:</el-text></el-col>
+ <el-col :span="5">
+ <el-select clearable >
+ <el-option/>
+ </el-select>
+ </el-col>
+ <el-col :span="2"><el-text>閫�璐ф棩鏈�:</el-text></el-col>
+ <el-col :span="5">
+ <el-date-picker
+ type="week"
+ format="[Week] ww"
+ placeholder="閫夋嫨鏃ユ湡"/>
+ </el-col>
+ <el-col :span="2"><el-text>澶囨敞:</el-text></el-col>
+ <el-col :span="5"><el-text></el-text></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="2"><el-text>涓氬姟鍛�:</el-text></el-col>
+ <el-col :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col>
+ <el-col :span="2"><el-text>鍙戣揣鍛�:</el-text></el-col>
+ <el-col :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col>
+ </el-row>
+ </div>
+ <div class="order-detail">
+ <vxe-grid
+ max-height="97%"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+
+ >
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ <template #content="{ row}">
+ <ul class="expand-wrapper">
+ <li v-for="(item,key,index) in row">
+ <span style="font-weight: bold">{{key+': '}}</span>
+ <span>{{ item }}</span>
+ </li>
+ </ul>
+ </template>
+
+ </vxe-grid>
+ </div>
+ </div>
+
+</template>
+
+<style scoped>
+.main-div {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+}
+.el-col{
+ border: #181818 1px solid;
+}
+:deep(.el-input__wrapper) {
+ box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
+ cursor: default;
+ border: none !important;
+ background-color: transparent;
+}
+.order-primary{
+ width: 100%;
+}
+.order-detail{
+ width: 100%;
+ height: 70%;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/ReturnsReport.vue b/UI-Project/src/views/Returns/ReturnsReport.vue
new file mode 100644
index 0000000..883648d
--- /dev/null
+++ b/UI-Project/src/views/Returns/ReturnsReport.vue
@@ -0,0 +1,180 @@
+<script setup>
+
+import {Folder, Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+
+let titleList = [
+ '搴忓彿',
+ '閫�璐у崟鍙�',
+ '鍙戣揣鍗曞彿',
+ '璁㈠崟鍗曞彿',
+ '椤圭洰鍚嶇О',
+ '瀹㈡埛鍚嶇О',
+ '涓氬姟鍛�',
+ '閫佽揣鍦板潃',
+ '鍙戣揣鍛�',
+ '妤煎彿',
+ '浜у搧缂栧彿',
+ '浜у搧鍚嶇О',
+ '閫�璐ф暟閲�',
+ '鍛ㄩ暱',
+ '瀹為檯闈㈢Н',
+ '鍙戣揣闈㈢Н',
+ '鍗曚环',
+ '鍙戣揣閲戦',
+ '瀹�',
+ '楂�',
+ '褰㈢姸',
+ '纾ㄨ竟绫诲瀷',
+ '澶囨敞',
+ '鍔犲伐瑕佹眰',
+ '寤虹珛鏃堕棿'
+
+
+
+
+]
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },//琛ㄥご鍙傛暟
+ columns:[
+
+ {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
+ {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
+ {field: '0',width:120, title: '閫�璐у崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '1',width:120, title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '2',width:120, title: '璁㈠崟鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '3',width:120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '4',width:120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '5',width:120, title: '涓氬姟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '6',width:120, title: '閫佽揣鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '7',width:120, title: '鍙戣揣鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '8',width:120, title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '9',width:120, title: '浜у搧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '10',width:120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '11',width:120, title: '閫�璐ф暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '12',width:120, title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '13',width:120, title: '瀹為檯闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '14',width:120, title: '閫�璐ч潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '15',width:120, title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '16',width:120, title: '閫�璐ч噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '17',width:120, title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '18',width:120, title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '19',width:120, title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '20',width:120, title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '21',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '22',width:120, title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '22',width:120, title: '寤虹珛鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
+
+
+ ],//琛ㄥご鎸夐挳
+ toolbarConfig: {
+ buttons: [
+ ],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true
+ },
+ data: [
+ ],//table body瀹為檯鏁版嵁
+ footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+ return[
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ // if (props.tableProp.footList.includes(column.field)) {
+ // return sumNum(data, column.field)
+ // }
+ return ''
+ })
+ ]
+ }
+
+})
+
+</script>
+
+<template>
+ <div class="main-div">
+ <el-date-picker
+ v-model="value1"
+ type="daterange"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ />
+ <el-button style="margin-top: -5px" id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+ <el-button style="margin-top: -5px" id="searchButton" type="primary" :icon="Folder">瀵煎嚭</el-button>
+ <div class="order-detail">
+ <vxe-grid
+ max-height="97%"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+
+ >
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ <template #content="{ row}">
+ <ul class="expand-wrapper">
+ <li v-for="(item,key,index) in row">
+ <span style="font-weight: bold">{{key+': '}}</span>
+ <span>{{ item }}</span>
+ </li>
+ </ul>
+ </template>
+
+ </vxe-grid>
+ </div>
+ </div>
+</template>
+
+<style scoped>
+.main-div {
+ width: 100%;
+ height: 100%;
+}
+.el-col{
+ border: #181818 1px solid;
+}
+.order-primary{
+ width: 100%;
+}
+.order-detail{
+ width: 100%;
+ height: 80%;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/SelectDeliveryList.vue b/UI-Project/src/views/Returns/SelectDeliveryList.vue
new file mode 100644
index 0000000..f046fcd
--- /dev/null
+++ b/UI-Project/src/views/Returns/SelectDeliveryList.vue
@@ -0,0 +1,205 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router"
+import {reactive, ref} from "vue";
+const router = useRouter()
+
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { deliveryID: 'JG24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+const xGrid = ref()
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },//琛ㄥご鍙傛暟
+ columns:[
+
+ {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
+ {title: '鎿嶄綔',slots: { default: 'button_slot' }, width: 80,fixed:"left"},
+ {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
+
+ {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
+ {title: '鍑哄簱', width: 40, slots: { default: 'state' }},
+
+ {field: '1',width:120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '2',width:120, title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '3',width:120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '4',width:120, title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '5',width:120, title: '鍙敤搴撳瓨',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '6',width:120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '7',width:120, title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '8',width:120, title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '9',width:120, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '10',width:120, title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '11',width:120, title: '鍖呰鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '12',width:120, title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '13',width:120, title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: '14',width:120, title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
+
+
+ ],//琛ㄥご鎸夐挳
+ toolbarConfig: {
+ buttons: [
+ ],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true
+ },
+ data: [
+ {
+ '0': '1',
+ '1': 'NG23110102',
+ '2': '11',
+ '3': '涓缓',
+ '4': '534',
+ '5': '116',
+ '6': '榛勭煶鏈夎建鐢佃溅',
+ '7': '20鎵�',
+ '8': '111100.02',
+ '9': '1008.38',
+ '10': '2023-10-30',
+ '11': '鍙夎溅鏈ㄧ',
+ '12': '鏅�氳鍗�',
+ '13': '',
+ '14': '鐜嬮緳'
+ },
+ {
+ '0': '1',
+ '1': 'NG23110101',
+ '2': '11',
+ '3': '涓缓',
+ '4': '534',
+ '5': '116',
+ '6': '榛勭煶鏈夎建鐢佃溅',
+ '7': '20鎵�',
+ '8': '111100.02',
+ '9': '1008.38',
+ '10': '2023-10-30',
+ '11': '鍙夎溅鏈ㄧ',
+ '12': '鏅�氳鍗�',
+ '13': '',
+ '14': '鐜嬮緳'
+ }
+ ],//table body瀹為檯鏁版嵁
+ footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+ return[
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ // if (props.tableProp.footList.includes(column.field)) {
+ // return sumNum(data, column.field)
+ // }
+ return ''
+ })
+ ]
+ }
+
+})
+const gridEvents = {
+ toolbarButtonClick ({ code }) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'add': {
+ router.push({path: '/main/delivery/createDelivery', params: { orderID: 'NG24010101' }})
+ break
+ }
+ }
+ }
+ }
+}
+
+
+
+
+</script>
+
+<template>
+ <div style="width: 100%;height: 100%">
+ <el-date-picker
+ v-model="value1"
+ type="daterange"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ />
+ <el-button style="margin-top: -5px" id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+ <vxe-grid
+ max-height="97%"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+ v-on="gridEvents"
+
+ >
+ <template #state="{ row}">
+ <el-checkbox checked/>
+ </template>
+
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
+ <span style="font-weight: bold">{{item.title+': '}}</span>
+ <span>{{ row[item.field] }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">閫�璐�</el-button>
+ </template>
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ </vxe-grid>
+
+
+ </div>
+</template>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/SelectReturns.vue b/UI-Project/src/views/Returns/SelectReturns.vue
new file mode 100644
index 0000000..e3fce3b
--- /dev/null
+++ b/UI-Project/src/views/Returns/SelectReturns.vue
@@ -0,0 +1,273 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+
+const tableData = [
+ {
+ id: '1',
+ long: '1005',
+ wide: '183.6',
+ thick: '1991'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191'
+ }
+]
+const tableDataa = [
+ {
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ station: '1'
+ },
+ {
+ long: '105',
+ wide: '183',
+ thick: '191',
+ station: '2'
+ }
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },//琛ㄥご鍙傛暟
+ // columns:[
+ // {type:'expand',slots: { content:'content' },width: 50},
+ // // {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' }},
+ // {type: 'seq', title: '鑷簭', width: 80 },
+
+ // // {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
+ // {title: 'id', width: 140, slots: { default: 'state' }},
+ // {title: '闀�', width: 160, slots: { default: 'state' }},
+ // {title: '瀹�', width: 160, slots: { default: 'state' }},
+ // {title: '鍘�', width: 160, slots: { default: 'state' }},
+
+ // // {field: '3',width:120, title: '閫�璐у崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ // ],
+ //琛ㄥご鎸夐挳
+ // toolbarConfig: {
+ // buttons: [],
+ // import: false,
+ // export: true,
+ // print: true,
+ // zoom: true,
+ // custom: true
+ // },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+ //table body瀹為檯鏁版嵁
+ // footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+ // return[
+ // columns.map((column, columnIndex) => {
+ // if (columnIndex === 0) {
+ // return '鍚堣:'
+ // }
+ // // if (props.tableProp.footList.includes(column.field)) {
+ // // return sumNum(data, column.field)
+ // // }
+ // return ''
+ // })
+ // ]
+ // }
+})
+</script>
+
+<template>
+ <div>
+ <!-- <el-date-picker
+ v-model="value1"
+ type="daterange"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ /> -->
+ <!-- <el-button style="margin-top: -5px" id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button> -->
+ <el-button style="margin-top: -5px;margin-left: 5px;" id="searchButton" type="primary" @click="dialogFormVisible = true">涓婄墖杈撳叆</el-button>
+ <el-button style="margin-top: -5px" id="searchButton" type="primary" @click="dialogFormVisiblea = true">鍘熺墖淇℃伅</el-button>
+ <!-- <el-button style="margin-top: -5px" id="searchButton" type="danger">浜哄伐鎷胯蛋</el-button> -->
+
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+ <el-table height="100%" ref="table" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="id" min-width="80" />
+ <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+ <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+ <el-table-column prop="thick" align="center" label="鍘�" min-width="120" />
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default>
+ <el-button size="mini" type="text" plain @click="open">浜哄伐鎷�111璧�</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+ </div>
+
+
+ <el-dialog v-model="dialogFormVisible" top="21vh" width="40%" title="涓婄墖杈撳叆" >
+ <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="150px">
+ <el-form >
+ <el-row style="margin-top: -15px;margin-bottom: -2px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="宸ヤ綅锛�" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="瀹斤細" :required="true" style="width: 13.2vw;margin-left: 14px;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍘氾細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="dialogFormVisible = false">
+ 纭
+ </el-button>
+ <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" title="鍘熺墖淇℃伅">
+ <el-table height="100%" ref="table" :data="tableDataa" @row-click="handle">
+ <el-table-column
+ prop="long"
+ align="center"
+ label="闀�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="wide"
+ align="center"
+ label="瀹�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="thick"
+ align="center"
+ label="鍘�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="station"
+ align="center"
+ label="宸ヤ綅"
+ min-width="120"
+ />
+ </el-table>
+ <div style="text-align: center; height: 22px; margin-top: 30px;">
+ <el-button @click="dialogFormVisiblea = false">鍏抽棴</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
new file mode 100644
index 0000000..a0a97f9
--- /dev/null
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -0,0 +1,426 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const add = ref(false)
+const adda = ref(false)
+
+const value = ref('')
+
+interface User {
+ id: string
+ name: string
+ amount1: string
+ amount2: string
+ amount3: number
+}
+
+interface SpanMethodProps {
+ row: User
+ column: TableColumnCtx<User>
+ rowIndex: number
+ columnIndex: number
+}
+
+const objectSpanMethod = ({
+ row,
+ column,
+ rowIndex,
+ columnIndex,
+}: SpanMethodProps) => {
+ if (columnIndex === 0) {
+ if (rowIndex % 2 === 0) {
+ return {
+ rowspan: 2,
+ colspan: 1,
+ }
+ } else {
+ return {
+ rowspan: 0,
+ colspan: 0,
+ }
+ }
+ }
+}
+
+const options = [
+ {
+ value: 'Option1',
+ label: 'P202561456',
+ },
+ {
+ value: 'Option2',
+ label: 'P202561456',
+ },
+ {
+ value: 'Option3',
+ label: 'P202561456',
+ },
+ {
+ value: 'Option4',
+ label: 'P202561456',
+ },
+ {
+ value: 'Option5',
+ label: 'P202561456',
+ },
+]
+const tableData: User[] = [
+
+ {
+ id: 'P202561456',
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ },
+ {
+ id: 'P202561456',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ }
+]
+const tableDataa = [
+ {
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ station: '1'
+ },
+ {
+ long: '105',
+ wide: '183',
+ thick: '191',
+ station: '1'
+ }
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ // router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ state: true
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+</script>
+
+<template>
+ <div>
+ <div id="dotClass">
+ <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>
+ <i style="margin-top: 2px; background-color: green;width:18px; height:18px; border-radius: 50%; display: block"></i>
+ <el-button style="margin-left: 30px;margin-top: -3px;">鎵嬪姩纭</el-button>
+
+ <div style="margin-left: 70px;">鍒囧壊鏈哄氨缁姸鎬侊細</div>
+ <i style="margin-top: 2px; background-color: #911005 ;width:18px; height:18px; border-radius: 50%; display: block"></i>
+ <el-button style="margin-left: 30px;margin-top: -3px;" >鎵嬪姩纭</el-button>
+ </div>
+ <el-button style="margin-top: 5px;margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true">閫夋嫨宸ョ▼</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary">寮�濮嬩笂鐗�</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" >鏆傚仠</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" >鍋滄浠诲姟</el-button>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+ <!-- <el-table height="100%" ref="table" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="宸ョ▼鍙�" min-width="80" />
+ <el-table-column prop="long" align="center" label="鍘熺墖瀹�" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鍘熺墖闀�" min-width="120" />
+ <el-table-column prop="thick" align="center" label="鑶滅郴" min-width="120" />
+ <el-table-column prop="thick" align="center" label="鏁伴噺" min-width="120" />
+ <el-table-column
+ align="center"
+ label="鐘舵��"
+ min-width="80"
+ >
+ <el-tag type="success">灏辩华</el-tag>
+ </el-table-column>
+ </el-table> -->
+ <el-table
+ height="100%"
+ ref="table"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ :data="tableData"
+ :span-method="objectSpanMethod"
+ >
+ <el-table-column prop="id" label="宸ョ▼鍙�" width="200" align="center"/>
+ <el-table-column prop="long" label="鍘熺墖瀹�" align="center"/>
+ <el-table-column prop="wide" label="鍘熺墖闀�" align="center"/>
+ <el-table-column prop="thick" label="鑶滅郴" align="center"/>
+ <el-table-column prop="thick" label="鏁伴噺" align="center"/>
+ <el-table-column prop="wide" label="鍘氬害" align="center"/>
+ <el-table-column
+ align="center"
+ label="鐘舵��"
+ min-width="80"
+ >
+ <el-tag type="success">灏辩华</el-tag>
+ <!-- <el-tag type="danger">鏈氨缁�</el-tag> -->
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+ <div id="parent">
+ <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 130px;">
+ <el-button style="margin-top: -830px;margin-left: -40px;" size="mini" id="searchButton" @click="add = true">娣诲姞鍘熺墖</el-button>
+ <el-button style="margin-top: -10px;margin-left: -80px;" size="mini" id="searchButton" @click="adda = true">娣诲姞鍘熺墖</el-button>
+ <!-- <div id="overlay" v-show="state"></div> -->
+ <!-- <div id="overlaya" v-show="statea"></div> -->
+ </div>
+ </div>
+
+
+ <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="宸ョ▼" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <el-form-item label="宸ョ▼鍙凤細" :required="true">
+ <el-select
+ v-model="value"
+ clearable
+ placeholder="璇烽�夋嫨宸ョ▼"
+ style="width: 300px"
+ >
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="dialogFormVisible = false">
+ 纭
+ </el-button>
+ <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <el-dialog v-model="add" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
+ <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="150px">
+ <el-form label-width="70px" label-position="right">
+ <el-row style="margin-top: -15px;margin-bottom: -2px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="getTableRow('edit')">
+ 纭
+ </el-button>
+ <el-button @click="add = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <el-dialog v-model="adda" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
+ <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" >
+ <el-form label-width="70px" label-position="right">
+ <el-row style="margin-top: -15px;margin-bottom: -2px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" style="width: 180px" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" style="width: 180px" />
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
+ <el-input autocomplete="off" style="width: 180px" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" style="width: 180px" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
+ <el-input autocomplete="off" style="width: 180px" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="adda = false">
+ 纭
+ </el-button>
+ <el-button @click="adda = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#dotClass {
+ display: flex;
+ margin-left: 20px;
+ size: 50px;
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+#parent{
+ position: relative;
+}
+#overlay{
+ position: absolute;
+ z-index: 1;
+ width: 212px;
+ height: 15px;
+ background-color: #529b2e;
+ margin-top: -407px;
+ margin-left: 171px;
+}
+#overlaya{
+ position: absolute;
+ z-index: 1;
+ width: 212px;
+ height: 15px;
+ background-color: #529b2e;
+ margin-top: -40px;
+ margin-left: 167px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
new file mode 100644
index 0000000..ea231b5
--- /dev/null
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -0,0 +1,568 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+
+const currentPage4 = ref(4)
+const pageSize4 = ref(100)
+// const tableData = [
+// {
+// id: '1',
+// long: '1005',
+// wide: '183.6',
+// thick: '1991',
+// type: '1234567',
+// typea: '1',
+// },
+// ]
+// const tableDatab = [
+// {
+// idb: '2',
+// longb: '105',
+// wideb: '183',
+// typeb: '123456',
+// }
+// ]
+const tableDataa = [
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+ {
+ ida: '3',
+ typea: '1991',
+ },
+]
+
+const dialogForm = () => {
+ ElMessageBox.confirm(
+ '纭畾瑕佹�ュ仠鍚�?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍚�',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鎬ュ仠鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鎬ュ仠澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+</script>
+
+<template>
+ <div style="height: 700px;">
+ <!-- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisible = true">鎵嬪姩杩涚墖</el-button> -->
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">璁㈠崟淇℃伅</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger">缁堟杩涚墖</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger">缁堟鍑虹墖</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger" @click="dialogForm">杞�ュ仠</el-button>
+
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="鍑虹墖鐜荤拑ID" min-width="80" />
+ <el-table-column prop="long" align="center" label="绗煎瓙" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鏍煎瓙" min-width="120" />
+ <el-table-column prop="type" align="center" label="宸ョ▼鍙�" min-width="120" />
+ <el-table-column prop="type" align="center" label="娴佺▼鍗″彿" min-width="120" />
+ <el-table-column prop="type" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="120" />
+ <el-table-column prop="type" align="center" label="灏哄" min-width="120" />
+ <el-table-column prop="type" align="center" label="缁撴潫浠诲姟" min-width="120" />
+ </el-table>
+ </div>
+ </el-card>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="idb" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
+ <el-table-column prop="longb" align="center" label="绗煎瓙" min-width="120" />
+ <el-table-column prop="wideb" align="center" label="鏍煎瓙" min-width="120" />
+ <el-table-column prop="typeb" align="center" label="宸ョ▼鍙�" min-width="120" />
+ <el-table-column prop="typeb" align="center" label="娴佺▼鍗″彿" min-width="120" />
+ <el-table-column prop="typeb" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="120" />
+ <el-table-column prop="typeb" align="center" label="灏哄" min-width="120" />
+ <el-table-column prop="typeb" align="center" label="缁撴潫浠诲姟" min-width="120" />
+ </el-table>
+ </div>
+ </el-card>
+ <div style="padding: 10px;display: flex;height:110px;">
+ <div v-for="n in 9" :key="n" id="occupy">
+ <el-col style="text-align:left;font-weight: bold;">#1</el-col>
+ <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+ <span id="biao">浣跨敤鐜�</span><span id="zhi">33%</span>
+ </el-col>
+ <hr style="width:80%;margin: 0 auto;" />
+ <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+ <span id="biao">绌洪棿锛堢墖鏁帮級</span><span id="zhi">555</span>
+ </el-col>
+ </div>
+ </div>
+ <div id="awatch">
+ <img src="../../assets/xmjc.png" alt="" style="width: 70%;height: 100%;margin-left: 160px;">
+</div>
+ </div>
+<el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="璇风‘璁ょ幓鐠冧俊鎭�" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <div style="display: flex;">
+ <p style="margin-top: 4px;">纭鐘舵��:</p>
+ <el-button style="margin-left: 10px;size: mini;" type="success">鍏佽</el-button>
+ <el-button style="margin-left: 10px;size: mini;" type="danger">涓嶅厑璁�</el-button>
+ <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
+ <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
+ <el-button style="margin-left: 10px;size: mini;" type="primary">鍒囨崲</el-button>
+ <el-input placeholder="璇疯緭鍏ョ幓鐠僫d" style="width: 180px;size: mini;margin-left: 60px;"></el-input>
+ <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
+ <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
+ <el-input style="width: 180px;size: mini;margin-left: 30px;"></el-input>
+ </div>
+ <div style="display: flex;">
+ <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
+ <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
+ </div>
+ <div style="display: flex;">
+ <div style="margin-top: 20px;">
+ <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+ <el-form label-position="right" label-width="90px">
+ <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="闀匡細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="瀹斤細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div style="margin-top: 20px;">
+ <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+ <el-form label-position="right" label-width="90px">
+ <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="闀匡細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="瀹斤細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div style="margin-top: 20px;">
+ <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+ <el-form label-position="right" label-width="90px">
+ <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="闀匡細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="瀹斤細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div style="margin-top: 20px;">
+ <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+ <el-form label-position="right" label-width="90px">
+ <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="闀匡細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+ </el-form-item>
+ <el-form-item style="width: 20vw" label="瀹斤細">
+ <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+ </el-form-item>
+ </el-form>
+ </div>
+ </div>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="dialogFormVisible = false">
+ 纭
+ </el-button>
+ <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ </div>
+ </template>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="璁㈠崟淇℃伅" >
+ <el-input placeholder="璇疯緭鍏ュ伐绋嬪彿" style="width: 180px;size: mini;"></el-input>
+ <el-button style="margin-left: 10px;size: mini;" type="primary">鏌ヨ</el-button>
+ <el-table ref="table" style="margin-top: 20px;height: 500px;"
+ @selection-change="handleSelectionChange"
+ :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="ida" align="center" label="鐜荤拑id" min-width="80" />
+ <el-table-column prop="typea" align="center" label="宸ョ▼鍙�" min-width="120" />
+ <el-table-column prop="typea" align="center" label="闀�" min-width="120" />
+ <el-table-column prop="typea" align="center" label="瀹�" min-width="120" />
+ <el-table-column prop="typea" align="center" label="鍘�" min-width="120" />
+ </el-table>
+ <div id="demo-pagination-block">
+ <el-pagination
+ style="margin-left: 850px;"
+ v-model:current-page="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[100, 200, 300, 400]"
+ :small="small"
+ :disabled="disabled"
+ :background="background"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="400"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+</el-dialog>
+<el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
+ <div style="display: flex;">
+ <p style="margin-top: 4px;">闃熷垪鐘舵�侊細</p>
+ <p style="margin-top: 4px;">寮�濮�</p>
+ <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
+ <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
+ </div>
+ <el-table ref="table" style="margin-top: 20px;height: 500px;"
+ @selection-change="handleSelectionChange"
+ :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="閾濇id" min-width="80" />
+ <el-table-column prop="type" align="center" label="鐜荤拑id" min-width="120" />
+ <el-table-column prop="type" align="center" label="璁㈠崟缂栧彿" min-width="120" />
+ <el-table-column prop="type" align="center" label="鍒楄〃缂栧彿" min-width="120" />
+ <el-table-column prop="type" align="center" label="绠卞瓙缂栧彿" min-width="120" />
+ <el-table-column prop="type" align="center" label="闀�" min-width="120" />
+ <el-table-column prop="type" align="center" label="瀹�" min-width="120" />
+ <el-table-column prop="type" align="center" label="鐜荤拑鐘舵��" min-width="120" />
+ <el-table-column prop="type" align="center" label="椤哄簭" min-width="120" />
+ <el-table-column prop="type" align="center" label="瀹屾垚" min-width="120" />
+ <el-table-column prop="type" align="center" label="鎿嶄綔" min-width="120" />
+ </el-table>
+</el-dialog>
+
+</template>
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#message{
+ text-align: center;
+ align-items: center;
+ color: black;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
+}
+#awatch{
+ height: 450px;
+}
+#occupy {
+ height: 100%;
+ width: 10%;
+ background-color: white;
+ margin: 0px 8px 0px 8px;
+ border: 1px #EBEEF5 solid;
+ text-align: center;
+ padding: 5px;
+}
+#biao {
+ font-size: 12px;
+}
+#zhi {
+ font-size: 18px;
+ font-weight: bold;
+}
+#demo-pagination-block + #demo-pagination-block {
+ margin-top: 10px;
+}
+#demo-pagination-block #demonstration {
+ margin-bottom: 16px;
+}
+::-webkit-scrollbar {
+ width: 0 !important;
+ }
+ ::-webkit-scrollbar {
+ width: 0 !important;height: 0;
+ }
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Create.vue b/UI-Project/src/views/StockBasicData/Create.vue
new file mode 100644
index 0000000..0fc1826
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Create.vue
@@ -0,0 +1,724 @@
+<template>
+ <el-header height="auto">
+ <el-descriptions
+ class="margin-top"
+ title=""
+ :column="4"
+ :size="'default'"
+ border
+ :rules="rules"
+ :model="ruleForm"
+ >
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy" prop="name">
+ <template #label>
+ <span style="color:red">*</span>
+ 閲囪喘绫诲瀷
+ </template>
+<!-- <el-select v-model="form.buyType" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>-->
+ <el-select v-model="ruleForm.name" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>
+ <el-option
+ v-for="item in CGTypeOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-descriptions-item >
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ <span style="color:red">*</span>
+ 閲囪喘缁勭粐
+ </template>
+ <el-input v-model="ruleForm.name" placeholder="閲囪喘缁勭粐" clearable prop="name"></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ <span style="color:red">*</span>
+ 渚涘簲鍟�
+ </template>
+ <el-cascader
+ placeholder="閫夋嫨渚涘簲鍟�"
+ :options="buyerOptions"
+ filterable
+ clearable
+ empty-text="empty-text"
+ :v-model="form.supplier"
+ >
+ </el-cascader>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ <span style="color:red">*</span>
+ 閲囪喘閮ㄩ棬
+ </template>
+ <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
+ <el-option
+ v-for="item in CGBuMenOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-descriptions-item>
+
+
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ <span style="color:red">*</span>
+ 閲囪喘鍛�
+ </template>
+ <el-select v-model="form.buyer" class="m-2" placeholder="閫夋嫨閲囪喘鍛�" clearable>
+ <el-option
+ v-for="item in BuyerOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy"
+ >
+ <template #label>
+ <span style="color:red">*</span>
+ 鍒惰〃鏃ユ湡
+ </template>
+ <el-date-picker
+ v-model="form.date"
+ type="date"
+ placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+
+ />
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+ </el-descriptions>
+
+ </el-header>
+
+ <el-main style="padding-top: 5px;height:100%">
+ <!-- <el-button class="mt-4" style="width: 10%" @click="onAddItem"
+ >娣诲姞
+ </el-button>-->
+
+ <vxe-grid
+
+ max-height="500"
+ @filter-change="filterChanged"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+ @="gridEvents"
+ >
+
+ <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row}">
+ <ul class="expand-wrapper">
+ <li v-for="(item,key,index) in row">
+ <span style="font-weight: bold">{{ key + ': ' }}</span>
+ <span>{{ item }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+ <!-- <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+ <!-- <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+ </template>
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <el-input v-model="option.data" @input="changeFilterEvent($event, option, $panel)" />
+ </div>
+ </div>
+ </template>
+ </vxe-grid>
+
+ </el-main>
+
+</template>
+
+<script lang="ts" setup>
+import {ref, reactive} from 'vue'
+import {useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'CustomerList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ columns: [
+ //{title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+ {type: 'seq', fixed: "left", title: ' ', width: 50},
+ {type: 'checkbox', fixed: "left", title: '', width: 50},
+ //{type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
+ {
+ field: 'cgdh',
+ width: '10%',
+ title: '鐗╂枡缂栫爜',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'cgzt',
+ width: '10%',
+ title: '鐗╂枡鍚嶇О',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'gys',
+ width: '10%',
+ title: '浜у湴',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'w',
+ width: '8%',
+ title: '瀹藉害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'g',
+ width: '8%',
+ title: '楂樺害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true,
+ type: 'number'
+ },
+ {
+ field: 'h',
+ width: '8%',
+ title: '鍘氬害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'xh',
+ width: '8%',
+ title: '鍨嬪彿',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'dw',
+ width: '8%',
+ title: '鍗曚綅', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'sl',
+ width: '8%',
+ title: '鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'sl',
+ width: '8%',
+ title: '鎿嶄綔鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}}
+ },
+ {
+ field: 'sl',
+ width: '12%',
+ title: '绠辨暟', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'je',
+ width: '8%',
+ title: '鍗曠墖闈㈢Н', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'je',
+ width: '12%',
+ title: '鍗曚环', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: '6',
+ width: '8%',
+ title: '鎬绘暟閲�', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'sl',
+ width: '8%',
+ title: '鎬婚潰绉�', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'yl',
+ width: '10%',
+ title: '鎬婚噾棰�',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ },
+ {
+ field: 'yl',
+ width: '10%',
+ title: '澶囨敞', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+ editRender: {name: 'input', attrs: {placeholder: ''}},
+ sortable: true
+ }
+ ],//琛ㄥご鍙傛暟
+ toolbarConfig: {
+ buttons: [
+ {type: 'text'},
+ {
+ 'name': '鏂板',
+
+ 'code': 'Add',
+ },
+ {
+ 'name': '绉婚櫎',
+
+ 'code': 'Remove'
+ },
+ {
+ 'name': '淇濆瓨璁㈠崟',
+ status: 'primary',
+ 'code': 'Save'
+ }, {
+ 'name': '鍏ュ簱',
+ status: 'primary',
+ 'code': 'Storage'
+ }/*,
+ {
+ 'name': '閫�璐�',
+ status: 'primary',
+ 'code': 'Return'
+ },
+ {
+ 'name': '杩斿洖鏌ヨ',
+
+ 'code':'GoSelect'
+ }*/],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true,
+ tools: [],
+
+ },//琛ㄥご鎸夐挳
+ /*data: [{},{},{},{},{},{}],//table body瀹為檯鏁版嵁*/
+ data: [{}, {}, {}],//table body瀹為檯鏁版嵁
+ mergeFooterItems: [
+ {row: 0, col: 0, rowspan: 1, colspan: 3}
+ ],//鍚堝苟鑴�
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ /* if (props.tableProp.footList.includes(column.field)) {
+ return sumNum(data, column.field)
+ }*/
+ return ''
+ })
+ ]
+ },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+ toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+//鏂板
+ case 'Add': {
+ const record = {
+ checked: false
+ }
+ $grid.insertAt(record, 0).then(({row}) => {
+ $grid.setEditRow(row)
+ })
+ break
+ }
+//绉婚櫎
+ case 'Remove': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+ return
+ } else {
+
+ MessageConfirmShow('绉婚櫎','鏄惁纭绉婚櫎閫変腑鐨�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒');
+
+ }
+ break
+ }
+//淇濆瓨
+ case 'Save': {
+ /*if (form.buyItem === null || form.buyItem === '') {
+ MessageShow('閲囪喘缁勭粐涓嶅彲涓虹┖','warning');
+ return;
+ }
+*/
+ //閫変腑鏁版嵁
+ /* const $table = this.$refs.xTable
+ const selectRecords = $table.getCheckboxRecords()*/
+//+$grid.rows.number
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+ return
+ } else {
+
+
+ MessageConfirmShow('淇濆瓨璁㈠崟','鏄惁纭畾淇濆瓨褰撳墠璁㈠崟淇℃伅');
+ }
+ break
+ }
+//鍏ュ簱
+ case 'Storage': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+ return
+ } else {
+ MessageConfirmShow('鍏ュ簱','鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�')
+ }
+ break
+ }
+//閫�搴�
+ case 'Return': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+ return
+ } else {
+
+
+ }
+ break
+ }
+
+ }
+ }
+ },
+ toolbarToolClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'myPrint': {
+ $grid.print()
+ break
+ }
+ }
+ }
+ },
+}
+
+
+import type { FormInstance, FormRules } from 'element-plus'
+
+
+
+
+interface RuleForm {
+ name: string
+ region: string
+ count: string
+ date1: string
+ date2: string
+ delivery: boolean
+ type: string[]
+ resource: string
+ desc: string
+}
+const ruleFormRef = ref<FormInstance>()
+const ruleForm = reactive<RuleForm>({
+ name: '',
+ region: '',
+ count: '',
+ date1: '',
+ date2: '',
+ delivery: false,
+ type: [],
+ resource: '',
+ desc: '',
+})
+const rules = reactive<FormRules<RuleForm>>({
+ name: [
+ { required: true, message: 'Please input Activity name', trigger: 'blur' },
+ { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' },
+ ],
+ region: [
+ {
+ required: true,
+ message: 'Please select Activity zone',
+ trigger: 'change',
+ },
+ ],
+ count: [
+ {
+ required: true,
+ message: 'Please select Activity count',
+ trigger: 'change',
+ },
+ ],
+ date1: [
+ {
+ type: 'date',
+ required: true,
+ message: 'Please pick a date',
+ trigger: 'change',
+ },
+ ],
+ date2: [
+ {
+ type: 'date',
+ required: true,
+ message: 'Please pick a time',
+ trigger: 'change',
+ },
+ ],
+ type: [
+ {
+ type: 'array',
+ required: true,
+ message: 'Please select at least one activity type',
+ trigger: 'change',
+ },
+ ],
+ resource: [
+ {
+ required: true,
+ message: 'Please select activity resource',
+ trigger: 'change',
+ },
+ ],
+ desc: [
+ { required: true, message: 'Please input activity form', trigger: 'blur' },
+ ],
+})
+
+
+const form = reactive({
+ name: '',
+ region: '',
+ date: '',
+ delivery: false,
+ type: [],
+ resource: '',
+ desc: '',
+ supplier: '',
+ buyer: '',
+ buyItem: '',
+ buyType: ''
+
+})
+
+//渚涘簲鍟�
+const buyerOptions = [
+ {value: '0', label: '渚涘簲鍟�1'},
+ {value: '1', label: '渚涘簲鍟�2'},
+ {value: '2', label: '渚涘簲鍟�3'},
+ {value: '3', label: '渚涘簲鍟�4'},
+ {value: '4', label: '渚涘簲鍟�5'},
+ {value: '5', label: '渚涘簲鍟�6'},
+]
+
+
+const value = ref('')
+const cgBuMen = ref('')
+
+//閲囪喘绫诲瀷
+const CGTypeOptions = [
+ {
+ value: '1',
+ label: '鏍囧噯绫诲瀷',
+ },
+ {
+ value: '2',
+ label: '闈炴爣鍑嗙被鍨�',
+ },
+ {
+ value: '3',
+ label: '杩藉姞閲囪喘',
+ },
+
+]
+
+//閲囪喘閮ㄩ棬
+const CGBuMenOptions = [
+ {
+ value: '0',
+ label: '閲囪喘鍗庡寳閮�',
+ },
+ {
+ value: '1',
+ label: '閲囪喘涓滃崡閮�',
+ },
+ {
+ value: '2',
+ label: '閲囪喘瑗垮寳閮�',
+ },
+ {
+ value: '3',
+ label: '閲囪喘涓師閮�',
+ },
+ {
+ value: '4',
+ label: '閲囪喘澶栧浗閮�',
+ },
+
+]
+
+//閲囪喘浜�
+const BuyerOptions = [
+ {
+ value: '0',
+ label: '閲囪喘鍛�1',
+ },
+ {
+ value: '1',
+ label: '閲囪喘鍛�2',
+ },
+ {
+ value: '2',
+ label: '閲囪喘鍛�3',
+ },
+ {
+ value: '3',
+ label: '閲囪喘鍛�4',
+ },
+ {
+ value: '4',
+ label: '閲囪喘鍛�5',
+ },
+
+]
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+ const $grid = xGrid.value
+ switch (type) {
+ case '鍏ュ簱':
+ //鍏ュ簱閫昏緫浠g爜TODO
+ MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+ break;
+ case '閫�璐�':
+ //閫�璐ч�昏緫浠g爜TODO
+ MessageShow('閫�璐ф垚鍔燂紒', 'success');
+ break;
+ case '淇濆瓨璁㈠崟':
+ //淇濆瓨璁㈠崟閫昏緫浠g爜TODO
+ const submitForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ console.log('submit!')
+ } else {
+ console.log('error submit!', fields)
+ }
+ })
+ }
+ MessageShow('璁㈠崟淇濆瓨鎴愬姛锛�', 'success');
+ break;
+ case '绉婚櫎':
+ $grid.removeCheckboxRow();
+ break;
+ default:
+ MessageShow('鏈煡鎿嶄綔锛�', 'error');
+ break;
+ }
+ return true;
+
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type ) => {
+
+ ElMessage({
+ message: content,
+ type: type,
+ showClose: true,
+ })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+
+ ElMessageBox.confirm(
+ content,
+ title,
+ {
+ cancelButtonText: '鍙栨秷',
+ confirmButtonText: '纭畾',
+ type: type,
+ center: true,
+ }
+ )
+ //鐐瑰嚮浜嗙‘瀹�
+ .then(() => {
+ return logicExecute(czType);
+ })
+ //鐐瑰嚮浜嗗彇娑�
+ .catch(() => {
+ return false;
+ })
+}
+
+
+</script>
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+ text-align: center;
+ width: 100px;
+ /*font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Details.vue b/UI-Project/src/views/StockBasicData/Details.vue
new file mode 100644
index 0000000..04fa130
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Details.vue
@@ -0,0 +1,453 @@
+<template>
+ <el-header height="auto">
+ <el-descriptions
+ class="margin-top"
+ title=""
+ :column="4"
+ :size="'default'"
+ border
+ >
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 鎿嶄綔鍗曞彿
+ </template>
+ <el-input v-model="form.buyItem" placeholder="鍗曞彿" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 閲囪喘绫诲瀷
+ </template>
+ <el-input v-model="form.buyItem" placeholder="閲囪喘绫诲瀷" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 閲囪喘閮ㄩ棬
+ </template>
+ <el-input v-model="form.buyItem" placeholder="閲囪喘閮ㄩ棬" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 渚涘簲鍟�
+ </template>
+ <el-input v-model="form.buyItem" placeholder="渚涘簲鍟�" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 閲囪喘鍛�
+ </template>
+ <el-input v-model="form.buyItem" placeholder="閲囪喘鍛�" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 閲囪喘缁勭粐
+ </template>
+ <el-input v-model="form.buyItem" placeholder="閲囪喘缁勭粐" disabled></el-input>
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+ <template #label>
+ 鍒惰〃鏃ユ湡
+ </template>
+ <el-date-picker
+ v-model="form.date"
+ type="date"
+ placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+ />
+ </el-descriptions-item>
+
+ <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+
+ </el-descriptions>
+ </el-header>
+
+ <el-main style="padding-top: 5px;height:100%">
+ <vxe-grid
+ max-height="500"
+ @filter-change="filterChanged"
+ ref="xGrid"
+ v-bind="gridOptions"
+ v-on="gridEvents"
+ >
+
+ <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row}">
+ <ul class="expand-wrapper">
+ <li v-for="(item,key,index) in row">
+ <span style="font-weight: bold">{{ key + ': ' }}</span>
+ <span>{{ item }}</span>
+ </li>
+ </ul>
+ </template>
+
+ </vxe-grid>
+
+ </el-main>
+
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+
+let router = useRouter()
+import {useRouter} from "vue-router";
+import { ElMessage, ElMessageBox} from "element-plus";
+
+const value = ref('')
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'CustomerList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ //寮�鍚櫄鎷熸粴鍔�
+ scrollY: {enabled: true},
+ showOverflow: true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ //绛涢�夐厤缃」
+ filterConfig: {
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ //琛ㄥご鍙傛暟銆佸垪鍚�
+ columns: [
+ {type: 'seq', fixed: "left", title: ' ', width: 50},
+ {type: 'checkbox', fixed: "left", title: '', width: 50},
+ {
+ field: 'cgdh',
+ width: '10%',
+ title: '鐗╂枡缂栫爜',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'cgzt',
+ width: '10%',
+ title: '鐗╂枡鍚嶇О',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'gys',
+ width: '10%',
+ title: '浜у湴',
+
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'w',
+ width: '8%',
+ title: '瀹藉害',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'g',
+ width: '8%',
+ title: '楂樺害',
+ filters: [{data: ''}],
+ sortable: true,
+
+ },
+ {
+ field: 'h',
+ width: '8%',
+ title: '鍘氬害',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'xh',
+ width: '8%',
+ title: '鍨嬪彿',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'dw',
+ width: '8%',
+ title: '鍗曚綅',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'sl',
+ width: '8%',
+ title: '鏁伴噺',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'czsl',
+ width: '8%',
+ title: '鎿嶄綔鏁伴噺',
+ type: 'number',
+ editRender: {name: 'input', type: 'number', attrs: {placeholder: ''}}
+ },
+ {
+ field: 'sl',
+ width: '12%',
+ title: '绠辨暟',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'je',
+ width: '8%',
+ title: '鍗曠墖闈㈢Н',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'je',
+ width: '12%',
+ title: '鍗曚环',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'sl',
+ width: '8%',
+ title: '鎬婚潰绉�',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'yl',
+ width: '10%',
+ title: '鎬婚噾棰�',
+ filters: [{data: ''}],
+ sortable: true
+ },
+ {
+ field: 'yl',
+ width: '10%',
+ title: '澶囨敞',
+ filters: [{data: ''}],
+ sortable: true
+ }
+ ],
+ //琛ㄥご鎸夐挳
+ toolbarConfig: {
+ buttons: [
+ {type: 'text'},
+ {
+ 'name': '淇濆瓨璁㈠崟',
+ status: 'primary',
+ 'code': 'Save'
+ }, {
+ 'name': '鍏ュ簱',
+ status: 'primary',
+ 'code': 'Storage'
+ },
+ {
+ 'name': '閫�璐�',
+ status: 'primary',
+ 'code': 'Return'
+ },
+ {
+ 'name': '鍙栨秷',
+ status: '',
+ 'code': 'Cancel'
+ }],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true,
+ tools: [],
+
+ },
+ //table body瀹為檯鏁版嵁
+ data: [{}, {}, {}],
+ //鑴氬悎骞�
+ mergeFooterItems: [
+ {row: 0, col: 0, rowspan: 1, colspan: 3}
+ ],
+ //鍚堝苟鑴�
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ /* if (props.tableProp.footList.includes(column.field)) {
+ return sumNum(data, column.field)
+ }*/
+ return ''
+ })
+ ]
+ },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+ toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+//淇濆瓨
+ case 'Save': {
+ MessageAlertShow('鐐瑰嚮浜嗕繚瀛樿鍗�','鎿嶄綔鎻愮ず');
+ //MessageShow('鐐瑰嚮浜嗕繚瀛樿鍗曪紒', 'error');
+ break;
+ }
+//鍙栨秷锛岃繑鍥炴煡璇㈤〉闈�
+ case 'Cancel': {
+ // router.push({path: '/main/purchaseOrder/StoragePurchaseOrder'})
+ break
+ }
+//鍏ュ簱
+ case 'Storage': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+ return
+ } else {
+ MessageConfirmShow('鍏ュ簱', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜鍏ュ簱鎿嶄綔锛�');
+ }
+ break
+ }
+//閫�璐�
+ case 'Return': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+ return
+ } else {
+
+ MessageConfirmShow('閫�璐�', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜閫�璐ф搷浣滐紒');
+ }
+ break
+ }
+
+ }
+ }
+ },
+ toolbarToolClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'myPrint': {
+ $grid.print()
+ break
+ }
+ }
+ }
+ },
+}
+
+//琛ㄥ崟鏁版嵁
+const form = reactive({
+ name: '',
+ region: '',
+ date: '',
+ delivery: false,
+ type: [],
+ resource: '',
+ desc: '',
+ supplier: '',
+ buyer: '',
+ buyItem: '',
+ buyType: ''
+
+})
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+ const $grid = xGrid.value
+ switch (type) {
+ case '鍏ュ簱':
+ //鍏ュ簱閫昏緫浠g爜TODO
+ MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+ break;
+ case '閫�璐�':
+ //閫�璐ч�昏緫浠g爜TODO
+ MessageShow('閫�璐ф垚鍔燂紒', 'success');
+ break;
+ default:
+ MessageShow('鏈煡鎿嶄綔锛�', 'error');
+ break;
+ }
+ return true;
+}
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content,type='success') => {
+ ElMessage({
+ message: content,
+ type: type,
+ showClose: true,
+ })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+ ElMessageBox.confirm(
+ content,
+ title,
+ {
+ cancelButtonText: '鍙栨秷',
+ confirmButtonText: '纭畾',
+ type: type,
+ center: true,
+ }
+ )
+ //鐐瑰嚮浜嗙‘瀹�
+ .then(() => {
+
+ return logicExecute(czType);
+ })
+ //鐐瑰嚮浜嗗彇娑�
+ .catch(() => {
+ return false;
+ })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow=(content,title,type='info')=>{
+
+ ElMessageBox.alert(content, title, {
+ // 绂佹鑷姩瀵圭劍
+ //autofocus: false,
+ confirmButtonText: 'OK',
+ /*callback: (action: Action) => {
+ MessageShow(`action: ${action}`,type)
+ },*/
+ })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+ text-align: center;
+ width: 100px;
+ /* font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Payment.vue b/UI-Project/src/views/StockBasicData/Payment.vue
new file mode 100644
index 0000000..475da20
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Payment.vue
@@ -0,0 +1,354 @@
+<template>
+ <el-container>
+ <el-header class="m-header" style="height: auto">
+ <el-row :gutter="10" style="margin-bottom: 5px">
+ <el-col :span="7">
+ <el-date-picker
+ v-model="datevalue"
+ type="daterange"
+ unlink-panels
+ range-separator="鍒�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :shortcuts="shortcuts"
+ :size="size"
+ format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD"
+ />
+ </el-col>
+
+ <el-col :span="2">
+ <el-button
+ id="select"
+ type="primary"
+ :icon="Search"
+ @click="autoAddRow">鏌ヨ
+ </el-button>
+ </el-col>
+ </el-row>
+
+ </el-header>
+ <el-main style="padding-top: 5px">
+ <vxe-grid
+
+ max-height="600"
+ @filter-change="filterChanged"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="PayOptions"
+ @="gridEvents"
+
+ >
+
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+ <span style="font-weight: bold">{{item.title+': '}}</span>
+ <span>{{ row[item.field] }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+ <!-- <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+ <!-- <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+ </template>
+
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ </vxe-grid>
+ </el-main>
+ </el-container>
+</template>
+
+
+<script setup>
+import {ref} from 'vue'
+import {Search} from "@element-plus/icons-vue";
+import 'dayjs/locale/zh-cn'
+import {VXETable} from "vxe-table";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {ElMessage, ElMessageBox} from "element-plus";
+
+const datevalue = ref('')//鏃堕棿
+
+//缁勪欢鎺ユ敹鍙傛暟
+const PayOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'CustomerList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ columns: [
+ /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
+ {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: '5%'},//璇︽儏
+ {type: 'checkbox', fixed: "left", title: '', width: '5%'},
+ {type: 'seq', fixed: "left", title: ' ', width: '5%'},
+ {
+ field: 'cgdh',
+ width: '10%',
+ title: '閲囪喘鍗曞彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'cgzt', width: '10%', title: '鏈堜唤', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'gys',
+ width: '10%',
+ title: '渚涘簲鍟�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlbh',
+ width: '10%',
+ title: '鏈熷垵閲戦',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlmc',
+ width: '10%',
+ title: '鏈湡搴斾粯',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'w',
+ width: '10%',
+ title: '鏈湡宸蹭粯',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'g',
+ width: '10%',
+ title: '鏈熸湯浣欓',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'h', width: '9%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+ ],//琛ㄥご鍙傛暟
+ toolbarConfig: {
+ buttons: [{type: 'text'}, {
+ 'name': '搴斾粯纭',
+ status: 'primary',
+ 'code': 'Sure',
+ }],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true,
+ style: 'paddling-left:10px'
+ },//琛ㄥご鎸夐挳
+ data: [{}, {}, {}, {}],//table body瀹為檯鏁版嵁
+ mergeFooterItems: [
+ {row: 0, col: 0, rowspan: 1, colspan: 3}
+ ],//鍚堝苟鑴�
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ /* if (props.tableProp.footList.includes(column.field)) {
+ return sumNum(data, column.field)
+ }*/
+ return ''
+ })
+ ]
+ },
+
+})
+
+
+const xGrid = ref()
+const gridEvents = {
+ toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ //搴斾粯纭
+ case 'Sure': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!", 'warning');
+ return
+ } else {
+ MessageConfirmShow("纭搴斾粯", '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭搴斾粯锛�')
+ }
+ break
+ }
+ }
+ }
+ },
+ toolbarToolClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'myPrint': {
+ $grid.print()
+ break
+ }
+ }
+ }
+ },
+}
+
+
+
+const shortcuts = [
+ {
+ text: '杩戜竴鍛�',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜竴涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜笁涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+ const $grid = xGrid.value
+ switch (type) {
+ case '纭搴斾粯':
+ //鍏ュ簱閫昏緫浠g爜TODO
+ MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+ break;
+
+ default:
+ MessageShow('鏈煡鎿嶄綔锛�', 'error');
+ break;
+
+ }
+ return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+ ElMessage({
+ message: content,
+ type: type,
+ showClose: true,
+ })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+ ElMessageBox.confirm(
+ content,
+ title,
+ {
+ cancelButtonText: '鍙栨秷',
+ confirmButtonText: '纭畾',
+ type: type,
+ center: true,
+ }
+ )
+ //鐐瑰嚮浜嗙‘瀹�
+ .then(() => {
+
+ return logicExecute(czType);
+
+ })
+ //鐐瑰嚮浜嗗彇娑�
+ .catch(() => {
+ return false;
+ })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+ ElMessageBox.alert(content, title, {
+ // 绂佹鑷姩瀵圭劍
+ //autofocus: false,
+ confirmButtonText: 'OK',
+ /*callback: (action: Action) => {
+ MessageShow(`action: ${action}`,type)
+ },*/
+ })
+}
+
+</script>
+
+
+<style scoped>
+.el-row {
+ margin-bottom: 20px;
+}
+
+.el-row:last-child {
+ margin-bottom: 0;
+}
+
+.el-col {
+ border-radius: 4px;
+}
+
+.m-header {
+ height: 32px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Return.vue b/UI-Project/src/views/StockBasicData/Return.vue
new file mode 100644
index 0000000..354092d
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Return.vue
@@ -0,0 +1,593 @@
+<template>
+ <el-container>
+ <el-header class="m-header" style="height: auto">
+ <el-row :gutter="10" style="margin-bottom: 5px">
+ <el-col :span="7">
+ <el-date-picker
+ v-model="datevalue"
+ type="daterange"
+ unlink-panels
+ range-separator="鍒�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :shortcuts="shortcuts"
+ :size="size"
+ format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD"
+ />
+
+ </el-col>
+
+ <el-col :span="2">
+ <el-button
+ id="select"
+ type="primary"
+ :icon="Search"
+ @click="BtnSearchPurchaseOrder">鏌ヨ
+ </el-button>
+ </el-col>
+ </el-row>
+ </el-header>
+ <el-main style="padding-top: 5px;height:100%">
+ <vxe-grid
+
+ max-height="600"
+ @filter-change="filterChanged"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+ v-on="gridEvents"
+ @cell-dblclick="cellClickEvent"
+ >
+
+ <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+ <span style="font-weight: bold">{{ item.title + ': ' }}</span>
+ <span>{{ row[item.field] }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+ <!-- <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+ <!-- <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+ </template>
+
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ </vxe-grid>
+
+
+ <!-- 璇︽儏妗� 閮ㄥ垎1-->
+ <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+ resize>
+ <el-container>
+ <el-header height="35px"
+ style="margin: 0;padding: 0">
+
+ <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+ <template #prepend>閲囪喘鍗曞彿锛�</template>
+ </el-input>
+ </el-header>
+ <el-main>
+ <template #default>
+ <vxe-table
+ border="default"
+ auto-resize
+ show-overflow
+ max-height="400"
+ :row-config="{isHover: true}"
+ :show-header="false"
+ :sync-resize="showDetails"
+ :data="detailData"
+
+ >
+ <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+ <vxe-column field="value"></vxe-column>
+ </vxe-table>
+ </template>
+ </el-main>
+ <el-footer height="40px">
+ <el-row>
+ <el-col :offset="20" :span="4">
+ <el-button
+ id="Sure"
+ type="primary"
+ @click="SureReturn"
+ >纭閫�璐�
+ </el-button>
+ </el-col>
+
+ </el-row>
+ </el-footer>
+ </el-container>
+ </vxe-modal>
+ <!-- 璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+ </el-main>
+ </el-container>
+</template>
+
+
+<script setup>
+
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+
+let router = useRouter()
+const getTableRow = (row, type) => {
+ switch (type) {
+ case 'edit' : {
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ // router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}})
+ break
+ }
+ case 'delete': {
+
+
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+ break
+ }
+ }
+}
+
+const xGrid = ref()
+
+const gridEvents = {
+ toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'Sure': {
+ if ($grid.getCheckboxRecords().length === 0) {
+
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!', 'warning');
+
+ return
+ } else {
+
+ MessageConfirmShow('纭畾', '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵')
+ }
+ break
+ }
+ case 'Log': {
+ MessageAlertShow('鐐瑰嚮浜嗛��璐ц褰�!', '鎿嶄綔鎻愮ず');
+ break
+ }
+ }
+ }
+ },
+ toolbarToolClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'myPrint': {
+ $grid.print()
+ break
+ }
+ }
+ }
+ },
+}
+
+
+//鏌ヨ鎸夐挳鏂规硶
+const BtnSearchPurchaseOrder = () => {
+
+ //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+ //MessageShow("寮�濮嬫椂闂�"+datevalue._rawValue[0]+"\r\n缁撴潫鏃堕棿\r\n"+datevalue._rawValue[1]);
+
+ for (let i = 1; i < 6; i++) {
+ const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+ const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+ const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+ const t = i % 2 === 0 ? 5 : 6;
+ const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '閫�璐�' : '閮ㄥ垎鍏ュ簱';
+ const thdh = i % 2 === 0 ? '' : i % 3 === 0 ? 'THID' + randomOrderInt : '';
+ const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+ const wlNo = 'NGWL1000' + randomInt;
+ const xh = 'NGXH' + randomSumInt;
+ const wlmc = 'WLMC' + randomInt;
+ const gys = '渚涘簲鍟�' + randomSumInt;
+ const xhdh = 'NG231200' + randomOrderInt;
+ const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+ const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+ const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+ now.setDate(now.getDate() + 1);
+ gridOptions.data.push({
+ cgdh: CGNo,
+ thdh: thdh,
+ h: t,
+ xh: xh,
+ wlbh: wlNo,
+ wlmc: wlmc,
+ gys: gys,
+ w: w,
+ g: h,
+ dw: dw,
+ cgzt: s,
+ rq: dayjs(now).format('YYYY-MM-DD'),
+ yl: randomSumInt,
+ sl: randomOrderInt,
+ xsdh: xhdh,
+ je: randomInt,
+ 6: '139xxxxxxxx',
+
+ })
+ }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'CustomerList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ columns: [
+ {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+ {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+ {type: 'checkbox', fixed: "left", title: '', width: 50},
+ {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+ {
+ field: 'thdh',
+ width: '10%',
+ title: '閫�璐у崟鍙�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'cgdh',
+ width: '10%',
+ title: '閲囪喘鍗曞彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'gys',
+ width: '10%',
+ title: '渚涘簲鍟�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlbh',
+ width: '10%',
+ title: '鐗╂枡缂栧彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlmc',
+ width: '10%',
+ title: '鐗╂枡鍚嶇О',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: '6',
+ width: '12%',
+ title: '涓嶅惈绋庡崟浠�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'sl',
+ width: '12%',
+ title: '宸查噰璐暟閲�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'je',
+ width: '12%',
+ title: '涓嶅惈绋庨噾棰�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'cgzt',
+ width: '10%',
+ title: '鍗曟嵁鐘舵��',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'xsdh',
+ width: '10%',
+ title: '閿�鍞崟鍙�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'rq',
+ width: '10%',
+ title: '鍒跺崟鏃ユ湡',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: '6',
+ width: '10%',
+ title: '閲囪喘閮ㄩ棬',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: '6',
+ width: '10%',
+ title: '閲囪喘缁勭粐',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+ ],//琛ㄥご鍙傛暟
+ toolbarConfig: {
+ buttons: [{type: 'text'}, {
+ 'name': '閫�璐ц褰�',
+
+ 'code': 'Log'
+ },
+ {
+ 'name': '纭閫�璐�',
+ status: 'primary',
+ 'code': 'Sure'
+ }],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true,
+ style: 'paddling-left:10px'
+ },//琛ㄥご鎸夐挳
+ data: [],//table body瀹為檯鏁版嵁
+ mergeFooterItems: [
+ {row: 0, col: 0, rowspan: 1, colspan: 4}
+ ],//鍚堝苟鑴�
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ /* if (props.tableProp.footList.includes(column.field)) {
+ return sumNum(data, column.field)
+ }*/
+ return ''
+ })
+ ]
+ },
+
+})
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+ if (isQueryColumnId === false) {
+ queryColumnId();
+ }
+
+ detailData = list.map(field => {
+ return {label: queryColumnsTitle(field), value: row[field]}
+ })
+ showDetails.value = true;
+ showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+
+ while (columnIndex < gridOptions.columns.length) {
+ list.push(gridOptions.columns[columnIndex].field);
+ columnIndex++;
+ }
+ isQueryColumnId = true;
+ return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+ let i = 0;
+ while (i < gridOptions.columns.length + 1) {
+ if (gridOptions.columns[i].field === cn) {
+ return gridOptions.columns[i].title;
+ }
+ i++;
+ }
+}
+
+// 璇︽儏妗嗛儴鍒�2 缁撴潫
+
+const SureReturn = () => {
+
+ MessageConfirmShow('閫�璐�', '鏄惁纭閫�璐э紵')
+
+}
+
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+ {
+ text: '杩戜竴鍛�',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜竴涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜笁涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+ const $grid = xGrid.value
+ switch (type) {
+ case '纭畾':
+ //澶氶�夐��璐ч�昏緫浠g爜TODO
+ MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+ break;
+ case '閫�璐�':
+ //鍗曢��璐ч�昏緫浠g爜TODO
+ MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+ break;
+ default:
+ MessageShow('鏈煡鎿嶄綔锛�', 'error');
+ break;
+ }
+ return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+ ElMessage({
+ message: content,
+ type: type,
+ showClose: true,
+ })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+ ElMessageBox.confirm(
+ content,
+ title,
+ {
+ cancelButtonText: '鍙栨秷',
+ confirmButtonText: '纭畾',
+ type: type,
+ center: true,
+ }
+ )
+ //鐐瑰嚮浜嗙‘瀹�
+ .then(() => {
+
+ logicExecute(czType);
+
+ return true;
+ })
+ //鐐瑰嚮浜嗗彇娑�
+ .catch(() => {
+ return false;
+ })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+ ElMessageBox.alert(content, title, {
+ // 绂佹鑷姩瀵圭劍
+ //autofocus: false,
+ confirmButtonText: 'OK',
+ /*callback: (action: Action) => {
+ MessageShow(`action: ${action}`,type)
+ },*/
+ })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+ font-weight: bold;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Select.vue b/UI-Project/src/views/StockBasicData/Select.vue
new file mode 100644
index 0000000..b7539d3
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Select.vue
@@ -0,0 +1,486 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const box = ref(true)
+const boxa = ref(false)
+const boxb = ref(false)
+// const tableData = [
+// {
+// id: '1',
+// long: '1005',
+// wide: '183.6',
+// thick: '1991',
+// type: '5',
+// typea: '1',
+// },
+// {
+// id: '2',
+// long: '105',
+// wide: '183',
+// thick: '191',
+// typea: '1',
+// type: '5'
+// },
+// {
+// id: '2',
+// long: '105',
+// wide: '183',
+// thick: '191',
+// typea: '1',
+// type: '5'
+// },
+// ]
+const tableData = ref([
+{
+ id: '2',
+ ida: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ typeb: '1',
+ typec: '1',
+ type: '5'
+ },
+ {
+ id: '12',
+ ida: '12',
+ long: '1105',
+ wide: '1183',
+ thick: '1911',
+ typea: '11',
+ typeb: '11',
+ typec: '11',
+ type: '15'
+ },
+])
+// 鏂板涓�琛�
+const addTableData = ()=>{
+ const newRow = {
+ id: null,
+ id: null,
+ long: null,
+ wide: null,
+ thick: null,
+ typea: null,
+ type: null,
+ typeb: null,
+ typec: null,
+ }
+ tableData.value.push(newRow)
+}
+// 鍒犻櫎
+const deleteTableData = (row) =>{
+ const index = tableData.value.indexOf(row);
+ if (index !== -1) {
+ tableData.value.splice(index, 1);
+ }
+}
+const tableDataa = [
+ {
+ ida: '3',
+ longa: '1005',
+ widea: '183.6',
+ thicka: '1991',
+ },
+ {
+ ida: '4',
+ longa: '105',
+ widea: '183',
+ thicka: '191',
+ }
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const selectedRows = ref([]);
+const handleSelectionChange = (selection) => {
+ selectedRows.value = selection;
+};
+const showMessage = () => {
+ if (selectedRows.value.length === 0) {
+ ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+ } else{
+ ElMessage({
+ message: '鍑虹墖鎴愬姛锛�',
+ type: 'success',
+ })
+
+ }
+};
+const pick = () => {
+ if (selectedRows.value.length === 0) {
+ ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+ } else{
+ ElMessage({
+ message: '鐮存崯鎴愬姛锛�',
+ type: 'success',
+ })
+
+ }
+};
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+</script>
+
+<template>
+ <div>
+ <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" @click="showMessage">鍑虹墖</el-button>
+ <el-button style="margin-top: 5px" id="searchButton" type="primary" @click="pick">鐮存崯</el-button>
+ <!-- <el-button style="margin-top: 5px" id="searchButton" type="primary" @click="dialogFormVisible = true">娣诲姞</el-button> -->
+ <el-button style="margin-top: 5px" id="searchButton" type="primary" @click="addTableData" >娣诲姞</el-button>
+ <el-button style="margin-top: 5px" id="searchButton" @click="boxb = true;box = false" >鍚堝苟</el-button>
+ <el-button style="margin-top: 5px" id="searchButton" @click="box = true;boxb = false" >鍗曠墖</el-button>
+
+ <div v-if="box">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column type="selection" width="55" />
+ <el-table-column prop="id" align="center" label="鏍呮牸鍙�" min-width="80" >
+ <template #default="scope">
+ <el-input v-model="scope.row.id" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ida" align="center" label="id" min-width="80">
+ <template #default="scope">
+ <el-input v-model="scope.row.ida" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="long" align="center" label="闀�" min-width="100" >
+ <template #default="scope">
+ <el-input v-model="scope.row.long" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="wide" align="center" label="瀹�" min-width="100">
+ <template #default="scope">
+ <el-input v-model="scope.row.wide" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="type" align="center" label="鍘氬害" min-width="100">
+ <template #default="scope">
+ <el-input v-model="scope.row.type" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typea" align="center" label="鑶滅郴" min-width="100" >
+ <template #default="scope">
+ <el-input v-model="scope.row.typea" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typeb" align="center" label="鍑虹墖椤哄簭" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.typeb" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typec" align="center" label="娴佺▼鍗″彿" min-width="150">
+ <template #default="scope">
+ <el-input v-model="scope.row.typec" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.thick" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="dialogFormVisiblea = true">璇︽儏</el-button>
+ <el-button @click="deleteTableData(scope.row)" link icon="Delete" type="primary">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+</div>
+
+ </el-card>
+ </div>
+ <div v-if="boxb">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column type="selection" width="55" />
+ <el-table-column prop="id" align="center" label="鏍呮牸" min-width="80">
+ <template #default="scope">
+ <el-input v-model="scope.row.id" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ida" align="center" label="id" min-width="80">
+ <template #default="scope">
+ <el-input v-model="scope.row.ida" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="long" align="center" label="闀�" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.long" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="wide" align="center" label="瀹�" min-width="120">
+ <template #default="scope">
+ <el-input v-model="scope.row.wide" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="type" align="center" label="鍘氬害" min-width="120">
+ <template #default="scope">
+ <el-input v-model="scope.row.type" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typea" align="center" label="鑶滅郴" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.typea" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typeb" align="center" label="鍑虹墖椤哄簭" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.typeb" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typec" align="center" label="娴佺▼鍗″彿" min-width="120">
+ <template #default="scope">
+ <el-input v-model="scope.row.typec" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" >
+ <template #default="scope">
+ <el-input v-model="scope.row.thick" size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="dialogFormVisiblea = true">璇︽儏</el-button>
+ <el-button @click="deleteTableData(scope.row)" link icon="Delete" type="primary">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+ </div>
+ </div>
+ <el-dialog v-model="dialogFormVisible" top="21vh" width="40%" title="娣诲姞" >
+ <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="150px">
+ <el-form >
+ <el-row style="margin-top: -15px;margin-bottom: -2px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鏍呮牸鍙凤細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="id锛�" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="闀匡細" :required="true" style="width: 13.2vw;margin-left: 14px;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍘氬害锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍑虹墖椤哄簭锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item label="娴佺▼鍗″彿" :required="true" style="width: 14vw">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item label="鍏朵粬锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+ <el-input autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="dialogFormVisible = false">
+ 纭
+ </el-button>
+ <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" title="鍘熺墖淇℃伅">
+ <el-table height="100%" ref="table" :data="tableDataa" @row-click="handle">
+ <el-table-column
+ prop="long"
+ align="center"
+ label="闀�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="wide"
+ align="center"
+ label="瀹�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="thick"
+ align="center"
+ label="鍘�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="station"
+ align="center"
+ label="宸ヤ綅"
+ min-width="120"
+ />
+ </el-table>
+ <div style="text-align: center; height: 22px; margin-top: 30px;">
+ <el-button @click="dialogFormVisiblea = false">鍏抽棴</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#message{
+ text-align: center;
+ align-items: center;
+ color: black;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
+}
+#box{
+ position: relative;
+
+ #icon{
+ position: absolute;
+ bottom:10px;
+ right: 19px;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Storage.vue b/UI-Project/src/views/StockBasicData/Storage.vue
new file mode 100644
index 0000000..98a9156
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Storage.vue
@@ -0,0 +1,603 @@
+<template>
+ <el-container>
+ <el-header class="m-header" style="height: auto">
+ <el-row :gutter="10" style="margin-bottom: 5px">
+ <el-col :span="7">
+ <el-date-picker
+ v-model="datevalue"
+ type="daterange"
+ unlink-panels
+ range-separator="鍒�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :shortcuts="shortcuts"
+
+ format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD"
+ />
+
+ </el-col>
+ <el-col :span="2">
+ <el-button
+ id="select"
+ type="primary"
+ :icon="Search"
+ @click="BtnSearchPurchaseOrder">鏌ヨ
+ </el-button>
+ </el-col>
+
+ </el-row>
+
+
+ </el-header>
+ <el-main style="padding-top: 5px;height:100%">
+ <vxe-grid
+
+ max-height="600"
+ @filter-change="filterChanged"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+ v-on="gridEvents"
+
+ @cell-dblclick="cellClickEvent"
+
+ >
+
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+ <span style="font-weight: bold">{{ item.title + ': ' }}</span>
+ <span>{{ row[item.field] }}</span>
+ </li>
+ </ul>
+ </template>
+
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+ <el-button @click="getTableRow(row,'look')" link type="primary" size="small">鏌ョ湅</el-button>
+ <!-- <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+ <!-- <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+ </template>
+
+
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+ </vxe-grid>
+
+ <!-- 璇︽儏妗� 閮ㄥ垎1-->
+ <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+ resize>
+ <el-container>
+ <el-header height="35px"
+ style="margin: 0;padding: 0">
+
+ <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+ <template #prepend>閲囪喘鍗曞彿锛�</template>
+ </el-input>
+ </el-header>
+ <el-main>
+ <template #default>
+ <vxe-table
+ border="inner"
+ auto-resize
+ show-overflow
+ max-height="400"
+ :row-config="{isHover: true}"
+ :show-header="false"
+ :sync-resize="showDetails"
+ :data="detailData">
+ <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+ <vxe-column field="value"></vxe-column>
+ </vxe-table>
+ </template>
+ </el-main>
+ <el-footer height="40px">
+ <el-row>
+ <el-col :offset="20" :span="4">
+ <el-button
+ id="Sure"
+ type="primary"
+ @click="SureStorage"
+ >纭鍏ュ簱
+ </el-button>
+ </el-col>
+
+ </el-row>
+ </el-footer>
+ </el-container>
+ </vxe-modal>
+ <!-- 璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+
+
+ </el-main>
+ </el-container>
+
+
+</template>
+
+
+<script setup>
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {VXETable} from "vxe-table";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+
+const getTableRow = (row, type) => {
+ switch (type) {
+ case 'edit' : {
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}});
+
+ break
+ }
+ case 'look': {
+ /*this.detailData = ['name', 'nickname', 'role', 'sex', 'age', 'amount', 'address'].map(field => {
+ return { label: field, value: row[field] }
+ })*/
+ //this.showDetails = true
+ break
+ }
+ case 'delete': {
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+ break
+ }
+ }
+}
+
+const xGrid = ref()
+const gridEvents = {
+ toolbarButtonClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'Sure': {
+ if ($grid.getCheckboxRecords().length === 0) {
+ MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', 'warning');
+ //openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
+ //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+ return
+ } else {
+ const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
+ //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
+ //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+ return
+ }
+ break
+ }
+ case 'Log': {
+
+ //openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+ MessageConfirmShow("閫�璐ц褰�", "鐐瑰嚮浜嗛��璐ц褰�", "", 'success')
+ break
+ }
+ }
+ }
+ },
+ toolbarToolClick({code}) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (code) {
+ case 'myPrint': {
+ $grid.print()
+ break
+ }
+ }
+ }
+ },
+}
+
+const openAlert = (options) => {
+ if (options.type === 'message') {
+ VXETable.modal.message(options)
+ } else {
+ VXETable.modal.alert(options)
+ }
+
+}
+const closeAlert = (id) => {
+ VXETable.modal.close(id)
+}
+
+
+//鏌ヨ璋冪敤浜嬩欢
+const BtnSearchPurchaseOrder = () => {
+ //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+ //MessageShow(datevalue._rawValue[0]+"\r\n鏃堕棿2\r\n"+datevalue._rawValue[1]);
+
+ for (let i = 1; i < 6; i++) {
+ const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+ const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+ const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+ const t = i % 2 === 0 ? 5 : 6;
+ const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : '宸查噰璐�';
+ const rkdh = i % 2 === 0 ? 'RKID' + randomOrderInt : i % 3 === 0 ? '' : '';
+ const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+ const wlNo = 'NGWL1000' + randomInt;
+ const xh = 'NGXH' + randomSumInt;
+ const wlmc = 'WLMC' + randomInt;
+ const gys = '渚涘簲鍟�' + randomSumInt;
+ const xhdh = 'NG231200' + randomOrderInt;
+ const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+ const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+ const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+ now.setDate(now.getDate() + 1);
+ gridOptions.data.push({
+ cgdh: CGNo,
+ rkdh: rkdh,
+ h: t,
+ xh: xh,
+ wlbh: wlNo,
+ wlmc: wlmc,
+ gys: gys,
+ w: w,
+ g: h,
+ dw: dw,
+ cgzt: s,
+ rq: dayjs(now).format('YYYY-MM-DD'),
+ yl: randomSumInt,
+ sl: randomOrderInt,
+ xsdh: xhdh,
+ je: randomInt,
+ 6: '139xxxxxxxx',
+
+ })
+ }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'CustomerList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
+ //showDetails: false,//寮圭獥 鏄惁鏄剧ず
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ columns: [
+ {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+ {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+ {type: 'checkbox', fixed: "left", title: '', width: 50},
+ {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+ {
+ field: 'rkdh',
+ width: '10%',
+ title: '鍏ュ簱鍗曞彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'cgdh',
+ width: '10%',
+ title: '閲囪喘鍗曞彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'gys',
+ width: '10%',
+ title: '渚涘簲鍟�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlbh',
+ width: '10%',
+ title: '鐗╂枡缂栧彿',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'wlmc',
+ width: '10%',
+ title: '鐗╂枡鍚嶇О',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: '6',
+ width: '12%',
+ title: '涓嶅惈绋庡崟浠�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'sl',
+ width: '12%',
+ title: '宸查噰璐暟閲�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'je',
+ width: '12%',
+ title: '涓嶅惈绋庨噾棰�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: 'cgzt',
+ width: '10%',
+ title: '鍗曟嵁鐘舵��',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'xsdh',
+ width: '10%',
+ title: '閿�鍞崟鍙�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'rq',
+ width: '10%',
+ title: '鍒跺崟鏃ユ湡',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+ {
+ field: '6',
+ width: '10%',
+ title: '閲囪喘閮ㄩ棬',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: '7',
+ width: '10%',
+ title: '閲囪喘缁勭粐',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: '8', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+ ],//琛ㄥご鍙傛暟
+ toolbarConfig: {
+ buttons: [{type: 'text'/*,name:'璁㈠崟鍏ュ簱'*/}, {
+ 'name': '鍏ュ簱璁板綍',
+
+ 'code': 'Log'
+ },
+ {
+ 'name': '纭鍏ュ簱',
+ status: 'primary',
+ 'code': 'Sure'
+ }],
+ import: false,
+ export: true,
+ print: true,
+ zoom: true,
+ custom: true,
+ style: 'paddling-left:10px'
+ },//琛ㄥご鎸夐挳
+ data: [],//table body瀹為檯鏁版嵁
+ mergeFooterItems: [
+ {row: 0, col: 0, rowspan: 1, colspan: 4}
+ ],//鍚堝苟鑴�
+ footerMethod({columns, data}) {//椤佃剼鍑芥暟
+ return [
+ columns.map((column, columnIndex) => {
+ if (columnIndex === 0) {
+ return '鍚堣:'
+ }
+ /* if (props.tableProp.footList.includes(column.field)) {
+ return sumNum(data, column.field)
+ }*/
+ return ''
+ })
+ ]
+ },
+
+})
+
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+ if(isQueryColumnId===false){
+ queryColumnId();
+ }
+
+ detailData = list.map(field => {
+ return {label: queryColumnsTitle(field), value: row[field]}
+ })
+
+ showDetails.value = true;
+ showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+ while (columnIndex < gridOptions.columns.length) {
+ list.push(gridOptions.columns[columnIndex].field);
+ columnIndex++;
+ }
+ isQueryColumnId = true;
+ return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+ let i = 0;
+ while (i < gridOptions.columns.length + 1) {
+ if (gridOptions.columns[i].field === cn) {
+ return gridOptions.columns[i].title;
+ }
+ i++;
+ }
+}
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const SureStorage = () => {
+ MessageShow('纭鍏ュ簱鎴愬姛');
+
+}
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+ {
+ text: '杩戜竴鍛�',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜竴涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '杩戜笁涓湀',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+ const $grid = xGrid.value
+ switch (type) {
+ case '鍏ュ簱':
+ //鍏ュ簱閫昏緫浠g爜TODO
+ MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+ break;
+ case '閫�璐�':
+ //閫�璐ч�昏緫浠g爜TODO
+ MessageShow('閫�璐ф垚鍔燂紒', 'success');
+ break;
+ default:
+ MessageShow('鏈煡鎿嶄綔锛�', 'error');
+ break;
+ }
+ return true;
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type = 'success') => {
+ ElMessage({
+ message: content,
+ type: type,
+ showClose: true,
+ })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+ ElMessageBox.confirm(
+ content,
+ title,
+ {
+ cancelButtonText: '鍙栨秷',
+ confirmButtonText: '纭畾',
+ type: type,
+ center: true,
+ }
+ )
+ //鐐瑰嚮浜嗙‘瀹�
+ .then(() => {
+ return logicExecute(czType);
+
+ })
+ //鐐瑰嚮浜嗗彇娑�
+ .catch(() => {
+ return false;
+ })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+ font-weight: bold;
+}
+
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
new file mode 100644
index 0000000..cf2dab3
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -0,0 +1,169 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+ {
+ id: '1',
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ type: '寰呰瘑鍒�',
+ typea: '1',
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ typea: '1',
+ type: '寰呰瘑鍒�'
+ },
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+
+</script>
+
+<template>
+ <div>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="id" min-width="80" />
+ <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+ <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鍘氬害" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鑶滅郴" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鍑虹墖椤哄簭" min-width="120" />
+ <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鍏朵粬" min-width="120" />
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default>
+ <el-button size="mini" type="text" plain @click="dialogFormVisiblea = true">鐮存崯</el-button>
+ <el-button size="mini" type="text" plain @click="dialogFormVisiblea = true">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+
+ </div>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#message{
+ text-align: center;
+ align-items: center;
+ color: black;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
+}
+#awatch{
+ height: 450px;
+}
+#main-body{
+ margin-top: -20px;
+ margin-left: 300px;
+}
+#main-bodya{
+ margin-top: -10px;
+ margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass.zip b/UI-Project/src/views/UnLoadGlass.zip
new file mode 100644
index 0000000..6435317
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass.zip
Binary files differ
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
new file mode 100644
index 0000000..cd181fc
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
@@ -0,0 +1,193 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+const dialogFormVisiblea = ref(false)
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+// import Landingindication from "./Landingindication.vue";
+import Landingindicationtwo from "./Landingindicationtwo.vue";
+
+const tableData = [
+ {
+ id: '1',
+ long: '1005',
+ wide: '183.6',
+ thick: '1991',
+ state: '鏈惎鐢�',
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ state: '鏈惎鐢�'
+ },
+ {
+ id: '2',
+ long: '105',
+ wide: '183',
+ thick: '191',
+ state: '鏈惎鐢�'
+ },
+]
+const open = () => {
+ ElMessageBox.confirm(
+ '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ '鎻愮ず',
+ {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ ElMessage({
+ type: 'success',
+ message: '鍒犻櫎鎴愬姛锛�',
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '鍒犻櫎澶辫触',
+ })
+ })
+}
+const getTableRow = (row,type) =>{
+ switch (type) {
+ case 'edit' :{
+ //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+ router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+ break
+ }
+ case 'delete':{
+ alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+ break
+ }
+ }
+}
+
+const gridOptions = reactive({
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ id: 'OrderList',
+ showFooter: true,//鏄剧ず鑴�
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ showOverflow:true,
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+ filterConfig: { //绛涢�夐厤缃」
+ remote: true
+ },
+ customConfig: {
+ storage: true
+ },
+ editConfig: {
+ trigger: 'click',
+ mode: 'row',
+ showStatus: true
+ },
+ data: [
+ {
+ 'id': '1',
+ 'long': '5',
+ 'wide': '1005',
+ 'thick': '183.6',
+ }
+ ],
+})
+
+</script>
+
+<template>
+ <div>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+ <el-table height="100%" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" label="涓嬬墖浣�" min-width="80" />
+ <el-table-column prop="long" align="center" label="鏋跺彿" min-width="120" />
+ <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+ <el-table-column prop="wide" align="center" label="鎬绘暟閲�" min-width="120" />
+ <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
+ <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
+ <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <template #default>
+ <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
+ <el-button size="mini" type="text" plain @click="dialogFormVisible = true">娓呯┖</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+
+ </div>
+ <div style="display: flex;">
+ <!-- <div id="main-body">
+ <Landingindication></Landingindication>
+ </div> -->
+ <div id="main-body">
+ <Landingindicationtwo></Landingindicationtwo>
+ </div>
+ </div>
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
+ <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="150px">
+ <el-form label-width="100px" label-position="right">
+ <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+ <el-input autocomplete="off"/>
+ </el-form-item>
+ <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
+ <el-input autocomplete="off" />
+ </el-form-item>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="dialogFormVisiblea = false">
+ 纭
+ </el-button>
+ <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+ text-align: center;
+ margin-top: -15px;
+}
+#message{
+ text-align: center;
+ align-items: center;
+ color: black;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
+}
+#awatch{
+ height: 450px;
+}
+#main-body{
+ margin-top: -10px;
+ margin-left: 450px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index c5cc368..b0685b2 100644
--- a/UI-Project/vite.config.js
+++ b/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"),
},
}
}
diff --git a/UnLoadGlassModule/mockPLCData.properties b/UnLoadGlassModule/mockPLCData.properties
new file mode 100644
index 0000000..56514ef
--- /dev/null
+++ b/UnLoadGlassModule/mockPLCData.properties
@@ -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
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java
new file mode 100644
index 0000000..86d7a0b
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java
@@ -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;
+ }
+
+ // 鏍规嵁闇�瑕侊紝鎮ㄥ彲浠ユ坊鍔犳洿澶氭ā鎷烶LC鎿嶄綔鐨勬柟娉�
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java
new file mode 100644
index 0000000..2d0905d
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java
@@ -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);
+ // 鍋囪杩欓噷浣跨敤鍐呭瓨鏄犲皠鏉ユā鎷烶LC鍐欏叆鎿嶄綔
+ 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); // 鍚屼笂锛屾瘡涓獁ord鍗犱袱涓湴鍧�鍗曚綅
+
+ //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);
+
+ // 灏嗗瓧绗︿覆杞崲鎴恠hort绫诲瀷锛屽苟娣诲姞鍒扮粨鏋滃垪琛ㄤ腑
+ // 杩欓噷鍋囪鏁版嵁宸茬粡浠ラ�傚綋鐨勬柟寮忓瓨鍌紙渚嬪锛屼綔涓虹煭鏁村瀷鐨勫瓧绗︿覆琛ㄧず锛�
+ // 濡傛灉璇诲彇鐨勬暟鎹负绌烘垨杞崲澶辫触锛屼綘鍙兘闇�瑕佸鐞嗚繖浜涙儏鍐�
+ 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); // 鍚屼笂锛屾瘡涓猙it鍗犱竴涓湴鍧�鍗曚綅
+ 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);
+ }
+ }
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java b/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
index 1da8717..f381270 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
+++ b/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 {
diff --git a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
index f6ecf3f..ab753f3 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ b/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();
}
-}
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java b/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java
new file mode 100644
index 0000000..085e400
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java
@@ -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鐨凞ownGlassInfo淇℃伅
+ @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(); // 杩斿洖娑堟伅鍒楄〃鐨勫瓧绗︿覆琛ㄧず褰㈠紡
+// }
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java b/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
index 9a8eea0..e3be9dc 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
+++ b/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){
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
index 6630735..206e72d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
+++ b/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;//鑶滅郴
+
}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
index d9a2dfd..524d865 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ b/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; // 鎬绘暟閲�
+
}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
index 5355db5..af3536c 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
+++ b/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 @@
}
+
}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
index 95ef927..dbd519c 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
+++ b/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);
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
index c48a549..163348d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
+++ b/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鍜岃澶嘔D鏇存柊宸ヤ綅鐘舵��
+ @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);
+
+
+
+
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
index 0bf0923..bdb183e 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
+++ b/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() ;
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
index 5f69be8..2cf4210 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
+++ b/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);
}
+
+
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java b/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
deleted file mode 100644
index 0909523..0000000
--- a/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.mes.service;
-
-import com.mes.entity.DownGlassInfo;
-import com.mes.entity.DownStorageCageDetails;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class GlassHandler {
-
- private List<DownGlassInfo> glassList; // 瀛樻斁寰呭鐞嗙殑鐜荤拑淇℃伅
- private List<DownStorageCageDetails> cageDetailsList; // 瀛樻斁鐜荤拑鏀剧疆鍦ㄧ紦瀛樼涓殑璇︾粏淇℃伅
-
- public void processGlass() {
- // 鍒濆鍖栦袱涓満鍣ㄦ墜
- MachineHand hand1 = new MachineHand();
- MachineHand hand2 = new MachineHand();
-
- for (DownGlassInfo glass : glassList) {
- // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
- DownStorageCageDetails cageDetails = findCageDetailsByGlassSpec(glass);
-
- if (cageDetails != null) {
- // 浠庣紦瀛樼涓彇鍑虹幓鐠冩斁鍒版満鍣ㄦ墜涓�
- hand1.placeGlass(cageDetails);
- hand2.placeGlass(cageDetails);
- }
-
- // 鍒ゆ柇涓や釜鏈哄櫒鎵嬫槸鍚﹂兘宸茬粡鎽嗘弧
- if (hand1.isFull() && hand2.isFull()) {
- // 鎵ц鍏朵粬鎿嶄綔锛屾瘮濡傚彂閫佹寚浠ょ瓑
- break;
- }
- }
- }
-
- private DownStorageCageDetails findCageDetailsByGlassSpec(DownGlassInfo glass) {
- // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
- for (DownStorageCageDetails details : cageDetailsList) {
- if (details.getWidth() == glass.getWidth() &&
- details.getHeight() == glass.getHeight() &&
- details.getThickness() == glass.getThickness()) {
- return details;
- }
- }
- return null;
- }
-
- private class MachineHand {
- private List<DownStorageCageDetails> rack; // 瀛樻斁鐜荤拑鐨勬灦瀛�
-
- public MachineHand() {
- rack = new ArrayList<>();
- }
-
- public void placeGlass(DownStorageCageDetails details) {
- rack.add(details);
- }
-
- public boolean isFull() {
- return rack.size() >= 50; // 鍒ゆ柇鏋跺瓙鏄惁宸茬粡鏀炬弧
- }
- }
-}
-
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
index 889bd32..40af511 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
+++ b/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"); // 杩欐潯娑堟伅浼氭墦鍗伴噸澶嶆秷鎭殑閿欒淇℃伅
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
index 75c2e16..2cd57e4 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
+++ b/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();
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java b/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java
new file mode 100644
index 0000000..66e4cc9
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java
@@ -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));
+
+ }
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
new file mode 100644
index 0000000..581cfe8
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
@@ -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();
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
index 5c39775..4268c38 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
+++ b/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("璇诲彇鐨剋ord鍊�: " + data3);
+ System.out.println("璇诲彇鐨剋ord鍊�: " + data4);
+// System.out.println("璇诲彇鐨刡it鍊�: " + data4);
+// System.out.println("璇诲彇鐨刡it鍊�: " + data6);
+
+
+ // System.out.println("璇诲彇鐨剋ord鍊�: " + MockS7PLCtwo.getInstance().readInt16("DB5.0.0"));
}
}
}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
new file mode 100644
index 0000000..eba16ae
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
@@ -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 鏇存柊宸茬粡钀芥灦鏁伴噺锛屽苟涓旀妸涓嬬墖浠诲姟琛ㄧ殑閭f潯璁板綍鍒犳帀 宸ヤ綅琛ㄦ祦绋嬪崱缁戝畾浜嗘灦瀛�
+ plcService.down_workstation();
+
+
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
index 004399b..9940470 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
+++ b/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;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
index 6efd838..ee38452 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
+++ b/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;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
index 278b057..55f8fc6 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
+++ b/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;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
index 08fb8dd..e172f10 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
+++ b/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
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java b/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
index 90c8a30..30d75ae 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
+++ b/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);
}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
new file mode 100644
index 0000000..a840092
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
@@ -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
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
new file mode 100644
index 0000000..ab5d4cd
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
@@ -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"
+ }
+
+ ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
new file mode 100644
index 0000000..afbe090
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
@@ -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"
+
+ }
+
+
+ ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
new file mode 100644
index 0000000..f3ebb33
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
@@ -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"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
new file mode 100644
index 0000000..8f9295a
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
@@ -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
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
new file mode 100644
index 0000000..dfdbaec
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
@@ -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": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
new file mode 100644
index 0000000..263c782
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
@@ -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
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json b/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
new file mode 100644
index 0000000..c270227
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
@@ -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"
+ }
+
+
+ ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
new file mode 100644
index 0000000..50b26dc
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
new file mode 100644
index 0000000..3922301
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
new file mode 100644
index 0000000..9862cf5
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/application.yml b/UnLoadGlassModule/src/main/resources/application.yml
index 7a2e2be..8ba75c8 100644
--- a/UnLoadGlassModule/src/main/resources/application.yml
+++ b/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 #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
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
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json b/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json
new file mode 100644
index 0000000..a840092
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json
@@ -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
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json b/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json
new file mode 100644
index 0000000..ab5d4cd
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json
@@ -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"
+ }
+
+ ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json b/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json
new file mode 100644
index 0000000..afbe090
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json
@@ -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"
+
+ }
+
+
+ ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json b/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json
new file mode 100644
index 0000000..f3ebb33
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json
@@ -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"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json b/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json
new file mode 100644
index 0000000..8f9295a
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json
@@ -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
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcState.json b/UnLoadGlassModule/target/classes/JsonFile/PlcState.json
new file mode 100644
index 0000000..dfdbaec
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcState.json
@@ -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": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json b/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json
new file mode 100644
index 0000000..263c782
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json
@@ -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
+ ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json b/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json
new file mode 100644
index 0000000..c270227
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json
@@ -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"
+ }
+
+
+ ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx b/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx
new file mode 100644
index 0000000..50b26dc
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx b/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx
new file mode 100644
index 0000000..3922301
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/JsonFile/test.xlsx b/UnLoadGlassModule/target/classes/JsonFile/test.xlsx
new file mode 100644
index 0000000..9862cf5
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/test.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/application.yml b/UnLoadGlassModule/target/classes/application.yml
index 7a2e2be..8ba75c8 100644
--- a/UnLoadGlassModule/target/classes/application.yml
+++ b/UnLoadGlassModule/target/classes/application.yml
@@ -1,20 +1,16 @@
server:
- port: 8080
+ port: 8081
servlet:
context-path: /mesModuleTools
spring:
datasource:
dynamic:
- primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
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
--
Gitblit v1.8.0